Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 3691|回復: 3
打印 上一主題 下一主題

[問題求助] 請問vhdl 的case中能否加入計數器?

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-17 15:15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教各位前輩一下:
  o8 R" G2 }! b3 l小弟目前要在 t5  的狀態機下做六次的話,+ v/ R+ [+ Q+ |8 D$ V/ O
讓它在t6 的地方判斷,如果大於六就做 t7,
* W% s9 s5 K0 P9 ~& w不然就一直跳回 t5,這種寫法是否有誤呀?
0 w, }7 R% t9 D0 F, l因為他一直狂讀n筆資料進來,不受我的t6控制?) G5 i8 f* _; R, b# D  I7 ^

: ?2 L( d+ }2 B麻請前輩們不吝指導一下,這個問題困擾小弟好久了,
; ?$ o$ f7 J7 V  y1 {( ]試了好多天,都是一樣的結果,感謝再感謝。
/ v( p% Y- E4 U* V& x; g) V7 Z
- k1 A9 q9 E& v4 ]9 gwhen t5 => -- read LSB (lo-byte), send acknowledge, sent stop! `  t% j4 l/ G$ z
      if (cmd_ack = '1') then
* \9 H# {5 h0 h7 e% J$ t        nxt_state :=t6;
0 I( y0 f* d1 G      if (lack = '1') then
/ H* G. p8 Z2 h        ierr := '1'; -- no acknowledge received from last command, expected ACK
2 a9 g# q' {' R" V7 q      end if;
$ @# q! k: z. y, S' h6 [        istart := '0';. q: ^: i1 p/ A/ x, S% t. a
        iread := '1';) U* j: @% v6 P& T6 t' ^
        iwrite := '0';
/ h8 j& }0 V) {, }9 q! C, k        iack := '0'; --NACK
( x' A# u* Z1 z. r8 m0 K        istop := '0';
7 ^; G* a3 b4 J2 [0 I     END IF; 8 k* s5 K" K3 M8 v0 a
    when t6 =>        
: }4 C) L% ?$ n      if (counter_i >= 6) then
% p, |( J' S0 j$ P/ S         counter_i <= 0;   
* c; o1 [$ T, ^2 B% a          nxt_state :=t7; 1 Z4 F5 A# `  _
      else    0 a! ]7 p+ L, u6 {, r, z5 F
          counter_i <= counter_i + 1 ;
! f; d8 G; r) I% K& X3 g      end if;
. ]" S  ?3 D5 J) H      if (counter_i < 6 ) then    4 v( u7 ]5 D& }- \8 O% B
         nxt_state := t5;
# v, B1 \- E- _1 g9 H  w      end if;

, F1 e4 J" R1 T5 U7 R            ) L9 J, ^9 p8 \  P2 J8 _. J. I
    when t7 => -- read LSB (lo-byte), send acknowledge, sent stop/ M- s2 R9 @4 D, \: K9 a+ f8 v
      istart := '0';
" ~3 D! r0 m' ^" s8 K      iread := '1';
6 x' t6 S; _5 P2 m2 O8 t      iwrite := '0';
, S/ W% t2 |' g. M; z      iack := '1'; --NACK
: N' f4 }0 D9 P/ g      istop := '1';  7 ~" X. `1 F3 e6 f8 q) x( }3 j- d/ m
      istore_dout := '1';
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2008-11-18 11:22:57 | 只看該作者
有前輩能抽空指教一下嗎 >"< ,困擾好久想不出解決方法呢。
3#
發表於 2008-12-15 16:36:55 | 只看該作者

改成這樣如何?

when t6 =>        
$ q. D; l* I. S$ i* Y7 m5 v1 c+ g     if (counter_i >= 6) then
, U# X5 ^, Z" O         counter_i <= 0;   9 R* q! \- E: f1 X, `
          nxt_state :=t7;
5 f, G1 B! n! }      else   
9 |+ `7 R9 S8 [( i6 v  b          counter_i <= counter_i + 1 ;
% P9 ?1 E+ E4 H) F1 k, b           nxt_state := t5;; A1 {; d+ s9 U8 {- |! g+ M' x
      end if;
4#
 樓主| 發表於 2008-12-21 12:51:42 | 只看該作者
感謝板大指導^^,似乎寫了有點多餘的部份
+ ]3 w& w" c- W  A
1 a( j0 y7 X  V- }; Q% W' L
9 O- J3 H1 M6 }; }6 [) f; a7 T# {5 t" w
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2024-6-15 09:50 PM , Processed in 0.120016 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表