Chip123 科技應用創新平台
標題:
請問 VHDL case state 如何宣告成output pot
[打印本頁]
作者:
DavidCha
時間:
2009-10-6 06:22 PM
標題:
請問 VHDL case state 如何宣告成output pot
如題.....
^, U7 `* j/ u# r( ?: g
先前都是使用verilog再寫code
# P- v5 k1 d% }# L- j. X
最近拿到前人的code是使用VHDL
2 P+ L+ U3 g: A2 m, q, E# X
遇到一個問題我不知道如何將case 的state 宣告成 output port
4 @: ?' Y/ a( W6 h
想請各位大大 幫忙解惑一下
! I8 O+ {: Q7 D2 f1 p
謝謝
) J8 f f4 p: b' X5 o
0 {& \1 S. o! k* A* l3 V
code 如下
7 Q$ F6 _* V# n( ?2 e2 T) Z
2 m% ~! u. N$ \6 S q. l/ O
type state_s is (s0,s1,s2,s3 );
+ S# _! j0 ^! {( q' n& F
signal state : state_s ;
) f& L2 r& {! l( E' _
case state is
6 L; I6 g6 U: p! I
when s0 =>
/ P+ p* o% ~- h$ v
if (***) then
# P2 o( q4 H- b
state <= s1;
3 z2 S2 v5 b8 Q7 i9 \
when s1 =>
" W1 ^# S* q1 J) C" @
.
' u+ |$ ?0 P% Q
.
2 J+ K; k2 L+ T) G; X5 w
.
' I5 i6 [4 ?4 C& t9 C4 i# H
.
作者:
addn
時間:
2009-10-7 09:53 PM
您好
$ [6 k" u+ |3 R% |9 _1 E1 Q
, O0 B+ d3 N* S- o( o
有一個方法,你的state狀態有四個,
/ [' v( b2 Z6 ^ \* d
用SIGNAL state :STD_LOGIC_VECTOR(1 DOWNTO 0);
# _6 Q' a- Y B
來取代你的狀態機宣告type state_s is (s0,s1,s2,s3 );
! i3 i+ f q }! g3 I$ V- r
signal state : state_s ;
+ n$ X$ H; `4 U; z) R* s6 K7 X
0 R* |# A! L6 `
然後就可以 state_output<=state;
- B0 a2 I9 f, z$ O$ R) p6 q
假設state_output宣告為輸出OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
2 l, }" j6 w1 K1 N/ d
% p6 R% C) y. j* M. b
不過此法可讀性不佳,因為你要自己定義state={00,01,10,11}分別代
' h$ k7 q* @4 ^! @* X, U
表甚麼狀態
5 z/ w3 t9 ^+ i6 w/ O
- |6 f) h7 Y1 q, }5 K G+ ^' I
請問你的state為甚需要輸出?
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2