Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-17 15:15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教各位前輩一下:* E$ Z" e6 f. G7 w
小弟目前要在 t5  的狀態機下做六次的話,1 k4 w2 \6 N* o" Y
讓它在t6 的地方判斷,如果大於六就做 t7,
6 ^; Z" t1 `. {4 G5 K9 c不然就一直跳回 t5,這種寫法是否有誤呀?9 |5 M/ v2 M9 S: D+ |; E% c
因為他一直狂讀n筆資料進來,不受我的t6控制?
8 i. p- ?; V% t5 |# y, h. e9 D1 B! T& Q, [2 Z- e
麻請前輩們不吝指導一下,這個問題困擾小弟好久了,
7 k; }% O, w/ m& H' T試了好多天,都是一樣的結果,感謝再感謝。
2 u& c: n+ l: y0 O+ }+ @$ [" `( {' D5 i0 s" [! d  L
when t5 => -- read LSB (lo-byte), send acknowledge, sent stop- V$ Y/ f9 A0 B2 s! X# K
      if (cmd_ack = '1') then  I( \# A1 {) E% {
        nxt_state :=t6;7 h) e4 E' t3 S) m! F2 Z/ j
      if (lack = '1') then
. S2 _$ A( A+ L        ierr := '1'; -- no acknowledge received from last command, expected ACK( f" T* j' u" h5 ?. {; }) }! {& G
      end if;; @3 r7 l: z  F$ f
        istart := '0';
2 P0 H7 i# O! K3 o        iread := '1';. h2 D. U" w% E& K$ j
        iwrite := '0';
2 W8 m! G' B+ w4 Z& }        iack := '0'; --NACK4 ?; w5 t' Q  G1 e* h7 x7 b; ^
        istop := '0';
6 O4 _% m2 Y  Z: O5 c     END IF;
9 \* u/ t9 z$ C; m5 c( q    when t6 =>        ' j1 K! g- L% Q' Q# M- F
     if (counter_i >= 6) then3 M- K1 u4 u3 @5 Z0 p/ a; k
         counter_i <= 0;   
8 O( j1 ^+ Y1 M; n- [3 N) `          nxt_state :=t7; 6 h' f7 J4 Q5 q, E
      else    $ A; `+ ]' F& D3 v- a4 `9 t
          counter_i <= counter_i + 1 ;
( x, G2 p* H! S7 a9 \      end if;  `6 q  U4 e! K/ [1 P- o  I
      if (counter_i < 6 ) then    ; s; L, G: ?9 p2 U
         nxt_state := t5;. ]2 }3 e% n$ y3 j. b
      end if;

* @0 j! I" Z% D* o  P5 o            
8 O5 F5 {; H8 [    when t7 => -- read LSB (lo-byte), send acknowledge, sent stop. E) N! b2 f* M) ?
      istart := '0';
$ X2 e/ Q" S- B; v      iread := '1';( H& x1 a  T& c1 W3 H& c! q0 J
      iwrite := '0';9 H; L  s$ B# ?0 Q" C! G- l
      iack := '1'; --NACK* q% g6 v: H& ]4 i
      istop := '1';  5 E, p. m: R9 u; @6 V- Y
      istore_dout := '1';
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2008-11-18 11:22:57 | 只看該作者
有前輩能抽空指教一下嗎 >"< ,困擾好久想不出解決方法呢。
3#
發表於 2008-12-15 16:36:55 | 只看該作者

改成這樣如何?

when t6 =>        
& U) o7 ]. @  s, K6 _     if (counter_i >= 6) then
& ~1 g3 R7 O3 p2 M/ t         counter_i <= 0;   
/ g& B8 h5 l& L! {2 q$ a          nxt_state :=t7;
3 L, \% A5 Q: B: {      else   
9 B# x6 U# {! C) W& j* b          counter_i <= counter_i + 1 ; 0 Z% v/ P1 A; Y4 v
           nxt_state := t5;. O5 u0 `3 @" I% B3 }
      end if;
4#
 樓主| 發表於 2008-12-21 12:51:42 | 只看該作者
感謝板大指導^^,似乎寫了有點多餘的部份
5 G( A& K: R& f3 f. M& h
. D+ H9 s4 L& m, L3 T/ R
) D* z9 X* q3 t' I  O
- c8 @: }6 V8 d. V
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-25 11:08 PM , Processed in 0.153008 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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