Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 請問 VHDL case state 如何宣告成output pot

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-10-6 18:22:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
如題.....
2 ~( X2 |' E4 l8 c: n# g先前都是使用verilog再寫code
+ c; ?1 [3 z7 M最近拿到前人的code是使用VHDL
# Y. N- Z3 y7 f( \6 h0 |遇到一個問題我不知道如何將case 的state 宣告成 output port
& y/ g( q) F6 a6 l想請各位大大 幫忙解惑一下
" h; h  ~( {6 R: f謝謝% J4 @. ^, }( v# z
4 U) m' b% Y+ W$ ]" Q! S
code 如下
% B  q6 i8 \  B
* H9 G1 ~) `1 ~, T2 x type state_s is (s0,s1,s2,s3 );  
2 g* n& f9 z1 L* n1 H. K  signal state : state_s ;
( M; L1 s4 w4 ~- w   case    state is                   2 Y% @; ?- Z1 q4 U( |
           when s0 =>
2 M' A7 T) V5 d. T, R( q             if (***)     then
* @. W3 G; x2 F" B7 _; f: Q               state <= s1;" j9 x# }1 _* @- i; w: w5 Q9 u
                       when s1 =>
" j& I9 m, _8 Y% h/ w* }  V                                 .4 A  t) m: P. k( Q
                                 .
$ G0 n' d, _% m3 T4 a8 Q0 ^3 Q& {                                 .6 E% H4 I' f( t
                                 .
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-10-7 21:53:44 | 只看該作者
您好0 e( B$ w2 d* M! }
+ {8 Q- t7 @3 L2 D( ~2 ~% u
  有一個方法,你的state狀態有四個,/ t- Z, c4 Y5 |! c. F
用SIGNAL  state :STD_LOGIC_VECTOR(1  DOWNTO 0);% ]) r9 P+ D: @0 q# B( e( p* b
來取代你的狀態機宣告type state_s is (s0,s1,s2,s3 );  , O, ]3 _- S1 Q5 ?
  signal state : state_s ;5 m6 B( e' @8 i# Y" W
7 F' w; v; _  w5 K5 \
然後就可以 state_output<=state;
# E% s( ~  _; q) t% O* {假設state_output宣告為輸出OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
7 Y8 N  b1 X2 C( l/ `3 a: [/ q  z, H" ?2 K
不過此法可讀性不佳,因為你要自己定義state={00,01,10,11}分別代
6 n+ s$ x0 f. A- s) q表甚麼狀態
& G( M" ~7 D! L
5 R9 t  O0 G  ^- y+ Z( ]2 {# o  N請問你的state為甚需要輸出?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-1 07:02 AM , Processed in 0.171010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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