Chip123 科技應用創新平台
標題:
請問 VHDL case state 如何宣告成output pot
[打印本頁]
作者:
DavidCha
時間:
2009-10-6 06:22 PM
標題:
請問 VHDL case state 如何宣告成output pot
如題.....
7 M D4 S$ }) M. p! K
先前都是使用verilog再寫code
9 O& S2 ?$ H0 n* o
最近拿到前人的code是使用VHDL
" Y( v# _! B" B9 D1 H s
遇到一個問題我不知道如何將case 的state 宣告成 output port
$ A ^2 l5 R3 y: b! @( J# B% q* j
想請各位大大 幫忙解惑一下
; N" H5 ^3 c: K; Z
謝謝
5 f: T$ Z7 q8 c2 r
) L3 t1 @! k# s3 l3 m) m
code 如下
6 z# @8 a R% m8 A( r4 \ n* L
( T* W. `; K3 F2 c
type state_s is (s0,s1,s2,s3 );
) a9 D" U- P6 M5 @
signal state : state_s ;
, P" y4 k& g+ c% ^# R+ a- C. N
case state is
6 g @6 [6 v: |& n3 [1 @8 V f# g( b
when s0 =>
* z! q) W* L; |4 T
if (***) then
/ u6 R" m( y( o% k, Y6 |2 i3 T
state <= s1;
. |3 h$ {$ t' s4 R3 L
when s1 =>
, Q D! H: Z7 r6 g/ `" s
.
- ]7 @" k; u! l% g" `
.
. i2 L+ y# V! e
.
% v9 |) H6 m$ H8 P) {; j
.
作者:
addn
時間:
2009-10-7 09:53 PM
您好
( `8 z2 H7 I/ P% y8 K' E
( \( j) f' k" e1 _1 |
有一個方法,你的state狀態有四個,
3 \, ]& i: C, H( w4 I( Q
用SIGNAL state :STD_LOGIC_VECTOR(1 DOWNTO 0);
) W% X* h, e5 A9 X; K; U9 Z9 C
來取代你的狀態機宣告type state_s is (s0,s1,s2,s3 );
( i) y6 @) i% I8 ~
signal state : state_s ;
, C% T& d$ p; G0 r5 l: y
% l' m# O( g, K8 |: V- J( B
然後就可以 state_output<=state;
( {/ L4 ^, K: x
假設state_output宣告為輸出OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
; f8 Q: H+ ^: _3 Z2 U
$ H; k1 Q$ V, h8 d& ]
不過此法可讀性不佳,因為你要自己定義state={00,01,10,11}分別代
& I+ a% r7 i3 S% V7 V0 d
表甚麼狀態
9 | s$ C6 @1 a6 G: b7 O
; e7 ?* ?3 ^* q
請問你的state為甚需要輸出?
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2