Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 7段顯示器用when else 寫法

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。9 d/ _4 y3 j6 X; p$ g, S' H
entity sedg7 is
: D" Y6 R" ~/ h* T/ A# q    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);# E9 Y9 E8 X) W0 `% p# [
           Y : out  STD_LOGIC_VECTOR (7 downto 0);1 u* u( B' w8 V) H  i
           a,b,c,d,e,f,g,p : out  STD_LOGIC);* r( Q7 b. Q" Q  ]* T: J
end sedg7;( \- Z4 A3 V8 d( _# E& t  H

" ^* H1 @2 `7 f: b* |architecture Behavioral of sedg7 is' L$ T- \9 C0 f* g

: ]2 Q8 e% h& S$ b1 A) a9 @. jbegin
# t' K9 j" u) D" W        Y<=        "00000011" when S= "0000" else               
" P. F' r, g' _3 f                        "10011111" when S= "0001" else        : @, g% C" f' ^7 A, c
                        "00100101" when S= "0010" else       
( x3 F( a0 c  u  F8 B/ l9 h                        "00001101" when S= "0011" else       
6 G$ K9 }' I! e) P                        "10011001" when S= "0100" else       
& z& V8 f, z+ C* k4 E7 w                        "01001001" when S= "0101" else          i, B& _. I' @/ ^- M5 Z1 t5 ~4 z* f
                        "01000001" when S= "0110" else        ' B% I) E: a4 k6 ^) {
                        "00011011" when S= "0111" else        3 c) v6 S$ G3 Q
                        "00000001" when S= "1000" else        4 }2 r1 V( O. Y5 k% o
                        "00001001" when S= "1001" else          # n3 W4 ^# z/ u5 C/ M
                        "00010001" when S= "1010" else        % L' t$ z: |" ]6 X" i  g8 E. V" R
                        "11000001" when S= "1011" else       
) F( B9 z- E8 T) `% \0 Z                        "01100011" when S= "1100" else       
5 G! c/ d, O1 q: U, G8 v                        "10000101" when S= "1101" else        9 W. ]/ T6 X% F1 L! C
                        "01100001" when S= "1110" else        2 w5 t$ z/ v9 ]; y0 @- y. _$ K- s
                        "01110001" when others ;   
) q) J/ ^% E0 ^2 G* R                        + \- C, u2 i( Q+ j, s! G; w: u
                        a:= Y(7);
! C4 }; Y' j+ c( H                        b:= Y(6);
5 X6 h  [& U5 X, y                        c:= Y(5);2 ]; L6 g+ u. a+ f( |2 {( M
                        d:= Y(4);
/ A: a7 s4 r8 t( q, _                        e:= Y(3);
; C. f1 K" N. f4 d# G                        f:= Y(2);
  L* q3 e) u& h9 }/ n# @                        g:= Y(1);8 W' ^1 M! n- x
                        p:= Y(0);1 X9 i1 ]9 n. }, K: M0 s, J
                SEL0<= '0';
  U7 e1 T) U4 D# Z/ K3 g7 E4 \* b* s8 cend Behavioral;
6 y) R0 y1 [1 ~" i4 ?3 r- p3 ^2 H$ o8 Z) `; Q8 P/ R: j: C0 d2 S/ ^
ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS) P1 b2 p: S) f. S: T. k' f
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.  S3 Z2 C$ Z% @' k  C4 I
一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣
) W# ~$ N; v& [1 Jentity sedg7 is, Z# e, q& G* m$ i
    Port ( Enable : in  STD_LOGIC;1 w+ f$ ^" h1 m) [8 S5 I7 O
           X : in  STD_LOGIC_VECTOR (3 downto 0);/ J! D& Q! E+ K% M# L% |% I
                          a,b,c,d,e,f,g,p : out STD_LOGIC;. I  v+ E) s& j/ d
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
4 l; p! t6 P; a7 a                          ) K; ?& G* W0 \9 I/ p
                          ! k/ r& I4 ~7 g9 ]. }. A3 B* y+ ?; v, T
( B. L- z& @% P9 x# g+ e
end sedg7;
- s+ b* d' }, S) v5 y/ O4 K
5 Q8 t( V& l8 darchitecture Behavioral of sedg7 is: o. b2 l# D1 F7 D
SIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);* v1 i% J, H) j* Z3 Y
begin! l  e  l% r) y; G4 M, j. A
                Y<=                "11111111" WHEN Enable= '1' ELSE% [4 h7 K; f- C& X4 C
                                        "00000011" WHEN X="0000" ELSE) I0 Y( ^  a% `( W2 P/ b
                                        "10011111" WHEN X="0001" ELSE& v5 ?, Z0 ~4 X3 D
                                        "00100101" WHEN X="0010" ELSE
( X$ @& f7 w- E: z                                        "00001101" WHEN X="0011" ELSE& v9 k+ C+ P6 ~. c5 t: \7 T
                                        "10011001" WHEN X="0100" ELSE6 }; V+ e: _  C" M, i
                                        "01001001" WHEN X="0101" ELSE4 o/ u2 |- e% R6 a
                                        "01000001" WHEN X="0110" ELSE& O9 Q9 S' p) ]( {( }2 d
                                        "00011011" WHEN X="0111" ELSE' o; S6 i: r& J$ S3 @' e8 }
                                        "00000001" WHEN X="1000" ELSE
3 A9 f; \6 Q. {* r; E                                        "00001001" WHEN X="1001" ELSE2 Q7 G$ V2 m) X8 y
                                        "00010001" WHEN X="1010" ELSE; \8 F# Q; O' c3 X
                                        "11000001" WHEN X="1011" ELSE4 o# y4 r. U/ |' t0 D, D& w
                                        "01100011" WHEN X="1100" ELSE/ [. i+ V# q/ W9 d+ o, R& n2 E- W
                                        "10000101" WHEN X="1101" ELSE
! W  q3 j5 N* j2 B: G1 K- ]  d+ _                                        "01100001" WHEN X="1110" ELSE5 l; ?2 L% p( q; V* W
                                        "01110001" ;6 m3 ?0 U$ `7 f6 ~( ^3 H3 H, y
        a<= Y(7);
& G" x/ y& P' p$ p/ i1 ^        b<= Y(6);! a* a" E; o  c! R5 i
        c<= Y(5);0 t1 A8 ~* p% l# x% E0 Q
        d<= Y(4);
* b1 Y7 H" F8 f" e        e<= Y(3);
- A% |1 j4 j" l* e9 D/ R        f<= Y(2);
- K5 ?  t* T8 P- d; ~. t7 I9 @' A        g<= Y(1);, `' F$ j- i1 D3 R. P
        p<= Y(0);
; @! {8 g! g5 E        SEL<= "111110" ;% J. P4 Y( o( q- M! _! F5 P
end Behavioral;
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了
/ m' k: j$ h0 q7 I( y! v
. i- b7 ~$ N5 B5 c8 C' d& ]1 p% a( Lentity segment_7 is5 q9 Y+ l2 u, `6 i! z5 y
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
2 d& I( ~% H5 x% N$ U0 I; u( Z           Y : out  STD_LOGIC_VECTOR (7 downto 0));1 }' e* S7 E9 p3 \1 }% Y
end segment_7;, `8 v. h1 `" [  w- k! [2 U: Y+ E: A

- J; D5 z4 u' U) Warchitecture Behavioral of segment_7 is
0 L3 B2 H% ?% ]/ k1 O
5 s3 D- u9 I2 ]begin
; }; z4 f5 _1 ^3 R1 e        Y<=        "00000011" when S= "0000" else               
4 J5 J5 p$ X. t& w7 }9 P                        "10011111" when S= "0001" else        * P. M3 R. C) g8 k* d3 L4 O
                        "00100101" when S= "0010" else        & I. p- w+ a, `4 l* o, S  p' k+ y
                        "00001101" when S= "0011" else        
& z% _. g' C2 A9 b# Y1 f. E4 K' e6 e                        "10011001" when S= "0100" else        
: ^, F- p" ~  z. ~( F* \2 t                        "01001001" when S= "0101" else        
* ?- W; _! |" h/ @" M4 }; J                        "01000001" when S= "0110" else        : {+ u3 N$ U7 H& Y% [2 E  V
                        "00011011" when S= "0111" else        
/ t$ d- e, W% C6 r; b& t                        "00000001" when S= "1000" else        / D& A$ _# ~$ l5 U5 @0 S8 T  p
                        "00001001" when S= "1001" else          2 U( Q2 B% K6 v) o
                        "00010001" when S= "1010" else        
! |) L! P1 D5 {% v  l* ?                        "11000001" when S= "1011" else        
' e! }, `* g+ R                        "01100011" when S= "1100" else        # P8 y* H- |; N/ \
                        "10000101" when S= "1101" else        
* T$ N, }4 K: M4 W/ S                        "01100001" when S= "1110" else        0 N% c/ i+ A( \5 Q( d& z
                        "01110001";   
5 X0 \% y, r/ r5 a                        $ Q; ]) x8 F; O* T0 `7 \  u
end Behavioral;

評分

參與人數 1 +5 收起 理由
gto10620 + 5 兩個都是你回覆的!!感謝!!

查看全部評分

2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好/ x9 x+ r1 C4 ]/ v( L
1.1 \( J% n' i" f0 b% z& w0 Q$ d
Y : out  STD_LOGIC_VECTOR (7 downto 0);" O) H0 r6 j# `+ }, d1 u8 j, f
Y宣告為out 怎還可以指定給abcdefgp
5 E1 H/ f7 f& s% b0 u* [+ N
/ j7 H( l4 H) \7 w8 r2.. T3 T. w# ]3 y
a,b,c,d,e,f,g,p不能用":="要改成"<="9 O, q7 u  X8 z

8 V% ]% V" ^* E8 b2 g( M4 z) p/ \3.
+ p* H+ f. B% v, K- S% J" jSEL0沒宣告,怎會冒出SEL0<= '0';來呢
' a# L& n" d# b' V5 y" K2 V; Z5 l% Y3 G+ }% ~. \6 F2 l
[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 12:01 PM , Processed in 0.107006 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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