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再寫code9 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