Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-10-6 18:22:21 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
如題.....
6 I# r4 X, D1 k$ y4 b先前都是使用verilog再寫code, r8 U$ [$ q- Z/ k
最近拿到前人的code是使用VHDL
' B$ n0 {, d. o. ~' F# Y遇到一個問題我不知道如何將case 的state 宣告成 output port
) i2 ?; f, v0 ~' j0 `想請各位大大 幫忙解惑一下0 T' b# e4 h. S/ X/ O
謝謝
# F, b: |& v) u' `/ [! i2 C8 e4 P3 C: b. x' ~
code 如下
* d  ?) @' V9 r5 w
" ~7 I& m/ Q- a% [ type state_s is (s0,s1,s2,s3 );  ) r/ `6 E2 j+ f' k6 ?, N" K! [# U
  signal state : state_s ;
& f& u7 O6 n/ n   case    state is                   
/ Z) C, j5 y8 r. T* ]           when s0 =>8 l2 R+ b8 F7 ^
             if (***)     then
7 W+ U5 q/ A1 [8 B1 R* Z# E               state <= s1;1 O7 O7 D1 x' W5 X+ V: v
                       when s1 =>: A+ S1 f) P3 _" T" K, l: |
                                 .7 }* J% |8 \2 z
                                 .
  Y5 V  ?; _+ G                                 .
3 B( H. W& p+ L( K1 o& S4 @* i                                 .
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-10-7 21:53:44 | 只看該作者
您好
% s7 s2 y8 w1 [4 y# R% Z4 N' V8 O+ I7 w# C) R3 V: t) Y
  有一個方法,你的state狀態有四個,9 t6 O: P6 E) G1 ^* e# Y
用SIGNAL  state :STD_LOGIC_VECTOR(1  DOWNTO 0);
7 @$ U' Z' X; ], Z% k來取代你的狀態機宣告type state_s is (s0,s1,s2,s3 );  
0 d$ T3 W, `) i" }  signal state : state_s ;9 L  t: T2 e* R7 }, j! q

2 w3 ~# x! G0 k. T然後就可以 state_output<=state;
/ B. \& b& D+ w& ?假設state_output宣告為輸出OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
/ `' p* b" D0 s# h0 \* E3 S9 @3 E/ E- o5 ?
不過此法可讀性不佳,因為你要自己定義state={00,01,10,11}分別代
& |( F( R: k- \5 a表甚麼狀態
& a# G7 }" x6 \0 u6 h$ b& L2 ~
請問你的state為甚需要輸出?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-19 12:29 PM , Processed in 0.103013 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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