Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-11-17 15:15:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教各位前輩一下:& Y4 J+ M; x. [- `7 Z1 J( A
小弟目前要在 t5  的狀態機下做六次的話,7 D# r6 ~- c: V# [0 j
讓它在t6 的地方判斷,如果大於六就做 t7,
( \5 `4 M3 h4 f; J+ t不然就一直跳回 t5,這種寫法是否有誤呀?
/ o" h$ q3 Y5 u4 x$ g' {因為他一直狂讀n筆資料進來,不受我的t6控制?
" m* S5 M. u) A
2 ]% d! z; b" d+ C6 U麻請前輩們不吝指導一下,這個問題困擾小弟好久了,5 S, @" f1 \  f$ M  y7 z" q
試了好多天,都是一樣的結果,感謝再感謝。
# L4 D3 K1 ^- d+ v# Q
& a. J! \& r* ?/ C; m) Pwhen t5 => -- read LSB (lo-byte), send acknowledge, sent stop
4 w  |2 K* o# d1 S; M      if (cmd_ack = '1') then
- c7 J0 A5 t# ]        nxt_state :=t6;
& v% g2 y, l3 A      if (lack = '1') then$ K8 c1 o9 v. @! S5 W9 |
        ierr := '1'; -- no acknowledge received from last command, expected ACK
  w9 j- g8 G; s6 m      end if;- E7 \: K2 g0 g) U% ~! R
        istart := '0';, ^4 x: Z( X# |  }3 ?- j! e' q
        iread := '1';  T* ?' K# y! S) L0 n) n) }. S
        iwrite := '0';
( g- Z" u5 w9 ]  g; @; s        iack := '0'; --NACK
; m7 Y% u, k! z3 U7 y/ l* S        istop := '0';
- q4 M  A! e. {8 I& B# \: y     END IF; , a" {4 K# ~6 Z) {7 I
    when t6 =>        
3 e3 x& g2 J0 s8 Z      if (counter_i >= 6) then; ], `- F3 u7 ~- K
         counter_i <= 0;   
4 B# ]5 A, o* \* |          nxt_state :=t7;
/ M% X: q! j( U6 O2 a. `      else    / ~, G4 P0 n3 y9 Q! N- w6 L
          counter_i <= counter_i + 1 ;
  r" [5 T9 U5 D      end if;+ |& o3 ~; T4 L
      if (counter_i < 6 ) then    8 [- f9 k, ]1 N% T
         nxt_state := t5;' C2 w  G3 F( p; R  J" c
      end if;
3 ?% S2 K# _* ^4 F
            
* Q/ A4 i$ I8 u    when t7 => -- read LSB (lo-byte), send acknowledge, sent stop
9 C4 _. `4 `: \/ m- I/ `      istart := '0';
, ]0 b! S- }% Q/ i9 Z4 \* m! }      iread := '1';8 u# V( v2 N; a
      iwrite := '0';. F: ]/ j2 ~, F0 X) B: `
      iack := '1'; --NACK' }0 M: U4 d" d% J
      istop := '1';  
! t1 ]  ]2 `9 e8 A+ y/ I      istore_dout := '1';
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
 樓主| 發表於 2008-11-18 11:22:57 | 只看該作者
有前輩能抽空指教一下嗎 >"< ,困擾好久想不出解決方法呢。
3#
發表於 2008-12-15 16:36:55 | 只看該作者

改成這樣如何?

when t6 =>        
+ `/ D  R: ~' b6 a- d3 g     if (counter_i >= 6) then0 E! g6 b7 Q# D! F5 W8 P  g
         counter_i <= 0;   , [3 U5 m1 M" B
          nxt_state :=t7; " l# P/ [# z2 C- w# R7 P
      else   
% L: Q9 N% E. b          counter_i <= counter_i + 1 ; , \9 y( Y  S, d" H: ~
           nxt_state := t5;
- Q0 ]+ e0 W7 O      end if;
4#
 樓主| 發表於 2008-12-21 12:51:42 | 只看該作者
感謝板大指導^^,似乎寫了有點多餘的部份1 _# M% ]) k* l  H: Q' S5 e
( i/ c: M$ F9 c2 ^, B: `6 g& B
* g9 N; \" Z$ E5 f( A
/ R5 \$ U$ t8 ?9 e+ ]: a
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-25 10:29 PM , Processed in 0.165009 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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