Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。
% E1 T( A, W  p3 m/ Kentity sedg7 is- u/ [8 ]# \/ t( E2 }9 g
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
( b6 X% p5 t) ?           Y : out  STD_LOGIC_VECTOR (7 downto 0);
5 M) x  p1 M+ c" b% }           a,b,c,d,e,f,g,p : out  STD_LOGIC);) V$ _, d- ^4 i" O* k# k8 z
end sedg7;6 ?* F- {6 o0 a2 Q

1 N& P! v& U* z3 T, karchitecture Behavioral of sedg7 is: V- _0 [% l5 e/ O6 j( [3 P+ c# O
) ~8 O5 Z$ c- v$ u
begin8 M, Q6 t. e' C# z
        Y<=        "00000011" when S= "0000" else               
6 w* H6 S( z  g2 A$ e( _                        "10011111" when S= "0001" else       
8 E9 }) v* U& x( E2 Q" B  t8 r                        "00100101" when S= "0010" else       
7 P6 a, f' i2 S! C5 f, I$ B; R                        "00001101" when S= "0011" else        ' d+ l; S$ C  Z  b2 k
                        "10011001" when S= "0100" else       
6 C( M: }! F+ J7 q                        "01001001" when S= "0101" else        5 J$ U& [7 ?: x1 q3 e7 Q  N
                        "01000001" when S= "0110" else       
, G" B+ W. {6 ~( y7 ?/ g5 [( z                        "00011011" when S= "0111" else       
; [+ }  E; {3 M) K/ n, R+ m                        "00000001" when S= "1000" else        6 Q' m+ e: p- s+ ]' Z
                        "00001001" when S= "1001" else         
* ~: }: {' d+ M% ]) e2 U( {3 f5 }9 P                        "00010001" when S= "1010" else        , Y+ ^/ F5 v* U% j: e$ h6 f
                        "11000001" when S= "1011" else       
0 N) b) _, f! L7 K3 y                        "01100011" when S= "1100" else       
4 @% Q1 P$ E; E0 X6 }, w                        "10000101" when S= "1101" else       
5 o5 y. H+ W' P6 i& i/ V; e                        "01100001" when S= "1110" else        ! H& l# v( z5 I$ e
                        "01110001" when others ;    * S4 d7 U! X' _+ \9 w
                       
5 l8 a. q( z4 g' ~2 l* u                        a:= Y(7);
5 Z' ^" L% x6 ]8 H                        b:= Y(6);+ \7 @: P7 h1 C4 _, B2 ^
                        c:= Y(5);- j0 d. G+ ~$ V: F8 X
                        d:= Y(4);
! W6 E1 r( B" }& k0 e8 P                        e:= Y(3);7 V0 C1 m8 J% O/ j5 i5 J# E
                        f:= Y(2);0 b- B9 C% I8 w
                        g:= Y(1);8 h& D3 L* ?' K# k% K
                        p:= Y(0);
5 [9 ]$ f4 A7 Y. H7 d5 f                SEL0<= '0';
  u) A: `, s' `* h. y$ Z  Cend Behavioral;  T1 X6 M% J* b0 _8 g, b) K

, A; ^& l1 f1 a$ P6 T' zERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS
% O- P! `3 f& m) F; V+ RERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.4 _: F3 \, O. A
一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好
! a/ e- ^. J, [* X+ d% y. g1.
9 n* R3 b( Z: F* e. @: x, a Y : out  STD_LOGIC_VECTOR (7 downto 0);' G! |8 v" n% [" }* R( k( [
Y宣告為out 怎還可以指定給abcdefgp
- O/ I0 _+ [# r3 D' I, y" d; L: N. D
* N; ?7 {+ n; U2.) g4 z  m0 p% I3 g2 g( \9 e0 R0 j5 B0 f
a,b,c,d,e,f,g,p不能用":="要改成"<="
% ]+ ~' W6 E0 ]/ S
" g% \5 u. C( E: z7 [: D% h7 J  L3.  e- y. V1 a" p- f
SEL0沒宣告,怎會冒出SEL0<= '0';來呢
' w6 Q/ ]: r9 L, R1 V8 Z& |, R3 d, u( ?; E0 j. {8 w
[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了
' Z7 [8 C5 u8 j2 W" |, G
( s# E6 [7 y# B$ Fentity segment_7 is
$ u- C5 P( c, G* Z% o    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
( H4 c9 `. e" u4 y; @. I           Y : out  STD_LOGIC_VECTOR (7 downto 0));
. l! V% m& V- i& d  m( v, bend segment_7;8 L! J: J0 E" N$ y3 |
( n/ q& J* }2 A' K1 {" ~& h
architecture Behavioral of segment_7 is
" R' ^" O! i0 K/ R6 u, I# H, |1 O# \1 P* P
begin
3 o) L1 n. n, J9 e% Z        Y<=        "00000011" when S= "0000" else               
3 y- F1 G% ^8 ]7 j                        "10011111" when S= "0001" else        $ y5 F1 }) u  C3 Z9 ]" \  r  _3 N
                        "00100101" when S= "0010" else        & D  O7 e( Y; f8 D0 J) [( h" ?
                        "00001101" when S= "0011" else        
6 \! o' Z0 K8 `8 x2 h                        "10011001" when S= "0100" else        
# G; q" _1 w0 r                        "01001001" when S= "0101" else        , P/ h0 g* P, W7 o7 }
                        "01000001" when S= "0110" else        ; n" M6 q& J: ^8 u
                        "00011011" when S= "0111" else        7 ]/ G; @5 J) X5 N, o; r
                        "00000001" when S= "1000" else        
: P* ]' `; k* v/ `3 c) m6 u$ n                        "00001001" when S= "1001" else         
3 G( x4 [9 m9 `+ ~                        "00010001" when S= "1010" else        0 q1 E2 L" r6 K, K
                        "11000001" when S= "1011" else        
* s6 \  y4 B' M2 L. m9 Z7 Q                        "01100011" when S= "1100" else        4 O: e4 `% W4 G3 q" A* @5 C3 X" i
                        "10000101" when S= "1101" else        
2 j' X8 u* R# v/ f: D! U' q. D+ x                        "01100001" when S= "1110" else        , H+ ^4 I) ~" u6 n9 n# c; }& @
                        "01110001";   
# e- q; _" W% R5 T1 f" L9 ~4 o                        
& t' B9 n- o6 ], c6 N. Yend Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣
2 v6 I; h5 y, D, ^entity sedg7 is
$ t5 `: }# [$ s$ \0 w. `    Port ( Enable : in  STD_LOGIC;
( @: Z: b. x4 \/ X. p8 [           X : in  STD_LOGIC_VECTOR (3 downto 0);9 K6 c! ?% {4 h( h1 m' N
                          a,b,c,d,e,f,g,p : out STD_LOGIC;
/ S$ j( j% J5 J  S                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));& u" L: D) `; `' U* n9 u
                          * s$ J/ b" |8 L
                          ; ?/ j& Z3 T7 Y! c" q
) R9 v& r, i& c8 @$ k7 i, x+ |
end sedg7;8 w. k7 D) y  z& }3 H
2 [* [7 a$ S* [9 K. Y
architecture Behavioral of sedg7 is
* z, \* z8 z/ `SIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);7 P, P. k! v8 j# Y. [+ B
begin+ ~& t1 s0 b- @$ Q0 T9 G& y% v( Y
                Y<=                "11111111" WHEN Enable= '1' ELSE
3 p0 l# L. @0 \( i6 @4 A, ^  o                                        "00000011" WHEN X="0000" ELSE
7 V8 c% K" c, G3 I" L                                        "10011111" WHEN X="0001" ELSE
9 w* l1 `) A; {$ P: O7 i                                        "00100101" WHEN X="0010" ELSE1 T# l0 P. a% j& r
                                        "00001101" WHEN X="0011" ELSE' X3 J; k: W* o9 _; s( @" A
                                        "10011001" WHEN X="0100" ELSE
8 w  \& g7 ^8 @8 k, O                                        "01001001" WHEN X="0101" ELSE
( N8 f2 ^! Q4 Q, U" ]                                        "01000001" WHEN X="0110" ELSE, l1 \1 x4 g7 Y* B- w  S3 A
                                        "00011011" WHEN X="0111" ELSE
) A' |0 |* y4 n/ C                                        "00000001" WHEN X="1000" ELSE& B# P, j( ~0 T; q- j
                                        "00001001" WHEN X="1001" ELSE
& e- f/ Y* H3 K6 _# z8 a% u4 e/ x                                        "00010001" WHEN X="1010" ELSE" U( v* m( L; [8 P0 y+ u, B  g9 I) `
                                        "11000001" WHEN X="1011" ELSE
/ r7 M9 X: m, `% F3 T  h7 M                                        "01100011" WHEN X="1100" ELSE
" i! M5 M- n8 D' g1 F0 r                                        "10000101" WHEN X="1101" ELSE2 {. A8 P4 ?% z6 F5 _1 F, Z, M
                                        "01100001" WHEN X="1110" ELSE
8 d( m8 Z+ y" h4 C+ x' C3 p$ Y                                        "01110001" ;
! ~5 U! M* O: x3 e7 _  c        a<= Y(7);; {9 S  J: v+ a) u4 A
        b<= Y(6);
: f# T! R" X, z9 P) b0 D. \: j        c<= Y(5);/ Z+ S- o5 h! G# _, X
        d<= Y(4);
5 j! [% }; V# x; R0 I0 h        e<= Y(3);% M  d9 y" N+ g2 I* \
        f<= Y(2);
* }+ b( j  f7 n, ?' T        g<= Y(1);
! J& x1 j& q; G  W5 q) @: g% k        p<= Y(0);; N- A9 I+ k, u) T' p
        SEL<= "111110" ;
* @: Y! y) @  ?2 O$ S  aend Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-25 01:10 AM , Processed in 0.111006 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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