Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-17 15:15:42 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
請教各位前輩一下:
( K4 d  ~1 D+ U. J: T1 Q# @) p小弟目前要在 t5  的狀態機下做六次的話,) i7 t* c3 u: |/ h
讓它在t6 的地方判斷,如果大於六就做 t7,
+ Z) c" H4 c! w# W; h- r不然就一直跳回 t5,這種寫法是否有誤呀?' m* X9 c/ l3 T3 X
因為他一直狂讀n筆資料進來,不受我的t6控制?
" E+ H: W) Q0 C  V5 D7 a# h  l4 E( R) c
麻請前輩們不吝指導一下,這個問題困擾小弟好久了,
# {" N" Y) Z' L. ?- B試了好多天,都是一樣的結果,感謝再感謝。2 ]* C+ K$ X# ^7 F7 T
4 q# t- ~1 R( b/ G, [, m6 V: D
when t5 => -- read LSB (lo-byte), send acknowledge, sent stop+ u7 P& y, I' {2 m
      if (cmd_ack = '1') then
' T3 P3 G6 a  q5 |0 o. r0 E3 o        nxt_state :=t6;
4 X  X( |0 b2 q" }1 X/ q8 }      if (lack = '1') then& Y' P6 m* Y2 d! Y8 H, e
        ierr := '1'; -- no acknowledge received from last command, expected ACK
; h0 b4 L3 h9 p' t      end if;
1 P3 N5 G8 t9 {/ k2 i6 M        istart := '0';" a2 \# l. d% l7 K
        iread := '1';( n+ f8 I. `. I. m
        iwrite := '0';
9 ]' `; L9 I1 h% E* I* V        iack := '0'; --NACK: E2 Q' v6 J# ~
        istop := '0';
9 @/ s" k8 p7 a; F- }2 b5 ^     END IF;
2 \, C# ]2 L8 f& b0 m# f. B) K    when t6 =>        2 E& L4 Z0 t8 ~7 z% C- c* v' @
     if (counter_i >= 6) then* X; R# C) F% n$ i( h. B, n* T" N) i
         counter_i <= 0;   + u' }! S/ v$ Q1 V; k1 u7 |  p
          nxt_state :=t7; $ _$ l& T3 e0 \1 H$ M
      else    8 w6 G6 A2 ?$ }9 O9 v6 k
          counter_i <= counter_i + 1 ; ( o( C9 o1 x- T6 N* o& f3 g+ N, V2 ^
      end if;
& M' Q" f5 Z% \8 U' G      if (counter_i < 6 ) then    ; O% x! I( y! j! I. S9 ]4 P, O
         nxt_state := t5;9 ?5 ?3 M; g; l$ {* q; d+ {( {/ L
      end if;
0 o( p' ]5 z& L; {- p* B7 j
            
" m. R1 k( `2 ~7 c$ ~& M    when t7 => -- read LSB (lo-byte), send acknowledge, sent stop
+ [. j2 M1 t" D      istart := '0';; h6 W/ w* I# s
      iread := '1';
3 Q' ?8 i: }0 S      iwrite := '0';
" Y9 m' Z# n" `2 t1 M  q& B9 {% F      iack := '1'; --NACK$ h2 ~  Y; N( d& c0 Q: Z& d
      istop := '1';  & y4 \7 \$ v' {7 R. w+ D
      istore_dout := '1';
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
4#
 樓主| 發表於 2008-12-21 12:51:42 | 只看該作者
感謝板大指導^^,似乎寫了有點多餘的部份
0 J' V4 H* w% @! w9 M$ R: A- _& X: A% a- w6 m1 e# L/ w; ]
; y5 i# K: c+ u

+ t; w$ h, g8 @: \% [. \
3#
發表於 2008-12-15 16:36:55 | 只看該作者

改成這樣如何?

when t6 =>        
) a9 Q. {+ K: q1 C" S     if (counter_i >= 6) then- Q  l7 h" x1 |8 g- b2 {$ Q
         counter_i <= 0;   9 n, N1 x5 ?( k7 }2 M1 C- P- B
          nxt_state :=t7;
; T! F/ @4 @1 }  Y! E  Z# i      else   
' t$ o2 _! ?# S0 W          counter_i <= counter_i + 1 ; 1 v3 m, M, D4 u5 H  \3 k' V: l
           nxt_state := t5;- ?! I- z# {# T5 W7 S$ k- b
      end if;
2#
 樓主| 發表於 2008-11-18 11:22:57 | 只看該作者
有前輩能抽空指教一下嗎 >"< ,困擾好久想不出解決方法呢。
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-25 08:49 PM , Processed in 0.171010 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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