Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-10-6 18:22:21 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
如題...... O/ C' f9 S9 \3 S0 M7 u7 G- m- S
先前都是使用verilog再寫code6 `$ W7 p2 S& n* h
最近拿到前人的code是使用VHDL1 j& L% C+ v4 P" i
遇到一個問題我不知道如何將case 的state 宣告成 output port * ?  B& o  f. P; R5 a
想請各位大大 幫忙解惑一下% z& V. b# @" v# K& p
謝謝' T5 r, ?6 q7 P: e
8 s( ], z. f2 _; v) ^
code 如下! I0 ]4 ^0 w5 z& U" u: i

, A8 A2 `9 m5 C" w1 p/ \) D type state_s is (s0,s1,s2,s3 );  ; A( H; Y2 I% E( q* U2 i2 H
  signal state : state_s ;
/ }3 e5 i7 F: ^. B6 ~   case    state is                   
% t! U& L$ N& P3 e# j# I" Z           when s0 =>
$ d- @0 t& J' J1 U             if (***)     then" Z& V. U  s3 S" C3 x
               state <= s1;
4 O: i, B3 P1 e+ g                       when s1 =>
8 f/ ]$ D: {) |3 z; g                                 ." t, {( I, n1 {
                                 .
( l, u" U* K3 g6 P0 g2 o4 S                                 .
7 v& Z+ e5 I% d, ^. A# S                                 .
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-10-7 21:53:44 | 只看該作者
您好0 Q) U% X* |1 L4 c- s9 c5 B
5 M" M: [/ w( y3 L
  有一個方法,你的state狀態有四個,
/ y1 ?* g& _: t- ~8 x% }6 k用SIGNAL  state :STD_LOGIC_VECTOR(1  DOWNTO 0);
( A% O# R% A& x來取代你的狀態機宣告type state_s is (s0,s1,s2,s3 );  : B( M# F0 N# D7 l2 A  e7 u
  signal state : state_s ;2 s1 D* M4 R* z0 L" n% Z
/ B  o% V2 N& R3 q) e) t( H
然後就可以 state_output<=state;0 u. Y# R+ v. R
假設state_output宣告為輸出OUT STD_LOGIC_VECTOR(1 DOWNTO 0);
4 J7 X% m5 A4 ]: `* T- {# k# s# J/ Z7 n8 e7 ~6 V6 Z  \! D
不過此法可讀性不佳,因為你要自己定義state={00,01,10,11}分別代
- V1 N* S! d7 |  j& x3 \表甚麼狀態
0 t2 e- c! J) q6 f" E* X0 U! ^1 m  t: m+ U+ f/ [
請問你的state為甚需要輸出?
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-1 10:06 AM , Processed in 0.156009 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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