Chip123 科技應用創新平台
標題:
請問vhdl 的case中能否加入計數器?
[打印本頁]
作者:
spring69393
時間:
2008-11-17 03:15 PM
標題:
請問vhdl 的case中能否加入計數器?
請教各位前輩一下:
@" k/ O8 u" Q% R
小弟目前要在 t5 的狀態機下做六次的話,
8 B8 M0 r- Y/ `
讓它在t6 的地方判斷,如果大於六就做 t7,
. o. w1 q+ @3 e% f& j+ O0 D
不然就一直跳回 t5,這種寫法是否有誤呀?
: H7 B! g/ n; b4 l
因為他一直狂讀n筆資料進來,不受我的t6控制?
0 P& |( ?. g: `( N+ I" K. V$ ~+ l
+ c8 s1 P) j8 N: i q2 P& [
麻請前輩們不吝指導一下,這個問題困擾小弟好久了,
8 a; `$ T1 G2 [8 G) m
試了好多天,都是一樣的結果,感謝再感謝。
# Z& v0 y7 x3 v
3 a% H6 Z- I1 ]3 o8 c* z) x
when
t5
=> -- read LSB (lo-byte), send acknowledge, sent stop
6 [2 I9 O0 {1 E
if (cmd_ack = '1') then
& `$ G; d1 n3 m- }. C
nxt_state :=t6;
8 H' c9 ]+ R) R j* W$ k
if (lack = '1') then
6 ~$ f5 l4 d: s' d
ierr := '1'; -- no acknowledge received from last command, expected ACK
7 ~2 }+ V0 z& F5 {- D. k
end if;
, S( ~4 {" R- c
istart := '0';
8 ~# [/ ]6 x! ]. X6 `
iread := '1';
+ W) v2 G& [4 r5 K! e K$ I
iwrite := '0';
7 J) j8 C& Z" ^2 M) ]
iack := '0'; --NACK
: {8 q1 }! C9 l# a3 B6 h8 [1 O
istop := '0';
5 d: a$ s# ^9 t
END IF;
- e; t1 A& v- J) l- V% N
when
t6
=>
3 W" |# w# J5 I
if (counter_i >= 6) then
' C5 F/ P8 L+ d' |+ J0 T
counter_i <= 0;
& q2 X/ E, w! q2 ^3 Q
nxt_state :=t7;
# n$ H5 f4 b5 M; y/ {, t9 j
else
. x( [7 V* R! @- A1 U8 d
counter_i <= counter_i + 1 ;
- [; E0 @8 W% i9 p7 R+ U( q& Y+ \9 ]
end if;
' t3 A. p# U/ b
if (counter_i < 6 ) then
+ ~/ h6 M0 z) @# G4 O
nxt_state := t5;
2 _1 Q& `) d( H( K- N' j5 \
end if;
# N' u: ^# Y% Q6 ^- s2 Y; L" `
" C( U! c$ X% O5 A- |9 d3 F
when
t7
=> -- read LSB (lo-byte), send acknowledge, sent stop
' B0 J3 H v, q% ~. }- Y; o
istart := '0';
1 E* \) Y2 V1 a, v5 m3 a
iread := '1';
0 u6 U3 ]3 u# D: U
iwrite := '0';
) _" D: c- F, ?2 _) j4 y6 L! Q& j
iack := '1'; --NACK
7 E j) e) W1 f
istop := '1';
, w+ O( B6 A6 K9 E1 C% t. a8 ^
istore_dout := '1';
作者:
spring69393
時間:
2008-11-18 11:22 AM
有前輩能抽空指教一下嗎 >"< ,困擾好久想不出解決方法呢。
作者:
tommywgt
時間:
2008-12-15 04:36 PM
標題:
改成這樣如何?
when t6 =>
; Z+ p D- M- f4 v
if (counter_i >= 6) then
) }0 S( Y- W5 s
counter_i <= 0;
9 o% |3 F* I5 W6 J
nxt_state :=t7;
/ N. v) W1 [. h8 L( A
else
0 z1 |' E# C5 ^7 [9 t$ X
counter_i <= counter_i + 1 ;
2 Q! H2 J3 `1 ~/ Q6 h
nxt_state := t5;
7 D1 b( y. n- ^! ^5 z
end if;
作者:
spring69393
時間:
2008-12-21 12:51 PM
感謝板大指導^^,似乎寫了有點多餘的部份
/ r3 _. z h+ ?& J0 m
9 c& C _6 s* t3 T8 D* E3 n
- c4 D" i6 k' T! S; X! ]- _
9 I/ b% B# S* V9 [
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2