Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。! R8 N$ |( Q3 g3 v$ p6 ?
entity sedg7 is
4 Q4 E+ x$ m: B    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);4 V% }  t1 E) C( D: `+ z  ?2 Q
           Y : out  STD_LOGIC_VECTOR (7 downto 0);
6 U+ T9 `/ L" X6 b- @4 v           a,b,c,d,e,f,g,p : out  STD_LOGIC);/ p0 _" E7 V5 \; L
end sedg7;( u$ }+ U" U: y  r
3 a  T4 H; n+ W! J+ ?- ?/ {# K
architecture Behavioral of sedg7 is9 M. I% M: b) p" Z

( A4 U' P5 @5 ^/ u; sbegin
9 \8 u7 x( e# Z) F7 E/ A        Y<=        "00000011" when S= "0000" else                * {' ~& p& _# ?8 L( H/ p5 L
                        "10011111" when S= "0001" else       
- a% e& C, ~  x+ X( f8 k* }2 X7 u                        "00100101" when S= "0010" else       
. C$ {0 r6 @- i) v+ i                        "00001101" when S= "0011" else       
1 l/ a5 ]  p' C  D* j                        "10011001" when S= "0100" else       
5 M1 b" h1 W: P                        "01001001" when S= "0101" else       
8 C$ Q2 d) Y5 s                        "01000001" when S= "0110" else       
, B0 O' j+ ~3 s3 u- K                        "00011011" when S= "0111" else        . B, y9 X: p  _, y& @& b
                        "00000001" when S= "1000" else        $ j) B' T" Z! f: ?
                        "00001001" when S= "1001" else          6 h: z* Y' }8 ^* k2 D& _
                        "00010001" when S= "1010" else       
# V7 N: b! i4 s5 L$ z, {                        "11000001" when S= "1011" else        6 S& @% ~5 A1 {# {; K
                        "01100011" when S= "1100" else        9 E  J2 x' z: n/ x2 N
                        "10000101" when S= "1101" else       
" G, x4 i4 `$ R                        "01100001" when S= "1110" else       
1 u+ T/ E1 _, L$ U* j                        "01110001" when others ;    % b$ d0 T% Q. ?2 s  |
                        # F* e3 Q* m# G" h
                        a:= Y(7);
  f- _' `9 j- @                        b:= Y(6);; x( b- A6 b; A2 R" V
                        c:= Y(5);
6 Y2 S$ A: K) F7 z; m8 @& g                        d:= Y(4);
2 O& {; T1 J* }, R8 c) S! f                        e:= Y(3);
) D  r( d0 G8 c6 f* p9 L  y) r6 K                        f:= Y(2);
5 V' m* [3 ~9 n/ ]9 _$ i. b6 H                        g:= Y(1);8 }# ?! V8 n4 S& B
                        p:= Y(0);
, v. O3 |& c% J! U                SEL0<= '0';
; ?2 i# w/ g+ D' Oend Behavioral;
  i. [' [- K' u) b, V" W: d( ~& C% O/ P, Y+ ~) K2 U0 G4 ?9 b1 l
ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS+ T/ c- E, B$ Z( D  X6 K; L0 f
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
3 x% B% e+ e" h% s5 f8 B一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好
& w; W# R# z- @2 S; ~# l; y$ h1.! i# a, y# U8 d# C9 A8 l9 b
Y : out  STD_LOGIC_VECTOR (7 downto 0);
9 j. V* Q7 A# E8 V1 l/ L* i Y宣告為out 怎還可以指定給abcdefgp
( c$ _: a5 ?# g0 j# J& ^; P4 X, {5 a
2 o' j4 Q4 w% P( h. ]6 A% ~  E/ H2 U2.
1 ], u; s6 b1 ?+ B  j% S0 za,b,c,d,e,f,g,p不能用":="要改成"<="1 X* o7 M  h- z! ^5 f+ n) |
) Z) D, Z! e3 B5 y
3.. P$ H  [7 r) P
SEL0沒宣告,怎會冒出SEL0<= '0';來呢8 D9 p" d% s. I4 }3 d( [* A: `
& ~% P4 Q8 K, U6 Z7 f4 g  l: L( k
[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了* A5 O; g# T) w; g: |( p; g

9 b/ o8 o, m1 r) qentity segment_7 is
" Y+ f" ^2 `+ i( u4 |$ u( |' r    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);" S3 M$ g* f& O  n
           Y : out  STD_LOGIC_VECTOR (7 downto 0));
2 Z' |) |' C; W! j$ A5 ~end segment_7;
5 N, a( ~3 X# X% i$ _) U: i5 f8 e. T# k; s; R
architecture Behavioral of segment_7 is1 g; [' E  r+ |! s8 |

+ T: q* v. F# ^7 d  cbegin
$ H5 A+ g4 Z4 v- Q$ w% P5 R        Y<=        "00000011" when S= "0000" else                7 O" v5 A8 v" s. o; j
                        "10011111" when S= "0001" else        
$ m* K; B3 s  G+ S                        "00100101" when S= "0010" else        
) W$ V9 r9 i4 ~- ~                        "00001101" when S= "0011" else        ! B. [0 u/ C7 M8 z2 r
                        "10011001" when S= "0100" else        & I4 R2 A/ t4 O9 K* w. G3 }1 @
                        "01001001" when S= "0101" else        
/ }3 @! P4 J6 Q& n7 g                        "01000001" when S= "0110" else          X/ u5 t& H6 r. I# ?( S7 |! n
                        "00011011" when S= "0111" else        7 Z6 G% t- p; w% `, Z
                        "00000001" when S= "1000" else        ; ^" I3 q1 k2 ^
                        "00001001" when S= "1001" else         
; e+ |% q' O; ~* b( K8 y* W) c' v5 z                        "00010001" when S= "1010" else        
7 s( m( I; G2 j) y5 e/ M# P0 A                        "11000001" when S= "1011" else        
) ]" c' e( {6 `1 S! H( Q+ p                        "01100011" when S= "1100" else          ]% Y1 e5 R3 i( r+ P* r
                        "10000101" when S= "1101" else        
$ b. H  x' K1 y) y2 r' ^                        "01100001" when S= "1110" else        
8 i) W! \$ s, h' S6 k# {                        "01110001";   
2 Y6 C' i3 x6 ~; M/ ]                        . W& }/ i8 Q' {
end Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣* G& k5 x8 I7 X) R: y& k  u0 q
entity sedg7 is
* S  b! R+ C( e2 A    Port ( Enable : in  STD_LOGIC;
: j1 I: w, X7 Q8 F/ E) [           X : in  STD_LOGIC_VECTOR (3 downto 0);* m1 D9 @& _. P# G7 Z$ l, J& e
                          a,b,c,d,e,f,g,p : out STD_LOGIC;. \9 m7 e1 |; c& w6 ]0 G2 `/ J
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
+ o9 R4 i8 z0 A; g7 B                          ; K; k% b: t# Z
                          : k) b5 w. p; u* Y, X4 Y  [

! h% e% u. d- |end sedg7;4 U5 ?  u/ B+ ~; B1 K* x5 b

+ e0 x- P- A. barchitecture Behavioral of sedg7 is
' I2 X9 z- C, b, e$ D  rSIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);
0 w2 @# @- P$ x$ Q5 gbegin( z# Z" p% c4 b- @9 k+ q: v
                Y<=                "11111111" WHEN Enable= '1' ELSE, }0 V% C# k- E6 `8 i3 U
                                        "00000011" WHEN X="0000" ELSE8 A+ _% D$ H9 R& P
                                        "10011111" WHEN X="0001" ELSE
& B) ~! u  n3 V" a0 k! H                                        "00100101" WHEN X="0010" ELSE- h7 }; O$ M; r% E/ v: r
                                        "00001101" WHEN X="0011" ELSE
6 s, D# T9 ]( r& P$ n                                        "10011001" WHEN X="0100" ELSE1 E0 ~; _+ }( T( w
                                        "01001001" WHEN X="0101" ELSE" X1 A+ K! n% `9 ~4 q) ^3 g
                                        "01000001" WHEN X="0110" ELSE  p# C) A, T# n0 {* F
                                        "00011011" WHEN X="0111" ELSE
. ?! t, I4 b" ~, B. g. W                                        "00000001" WHEN X="1000" ELSE* z2 b, Q. D1 t8 H, l  L- ~: F; `
                                        "00001001" WHEN X="1001" ELSE1 q/ `, O$ f/ |* A+ @! Z2 O% g$ h
                                        "00010001" WHEN X="1010" ELSE/ N  H4 h; A. A3 c
                                        "11000001" WHEN X="1011" ELSE
1 t, I+ I, P% s; J' b& _: b                                        "01100011" WHEN X="1100" ELSE
. t; B8 b7 e" _5 M                                        "10000101" WHEN X="1101" ELSE( J! z) S& h2 _1 k+ Y, N
                                        "01100001" WHEN X="1110" ELSE
3 |  ^6 Q' Q) k+ [* K                                        "01110001" ;! n( f2 h/ W, ?+ F8 T3 x
        a<= Y(7);7 T% l! q, I$ \* a9 m
        b<= Y(6);; |5 \) K! b4 p0 g9 f
        c<= Y(5);
7 D' d( ?. [6 F& M0 e5 B5 ~        d<= Y(4);
/ C& t; h' y5 G/ D4 a        e<= Y(3);
9 W! y9 v4 W3 K" ^! ?' e        f<= Y(2);
7 }4 s& l9 X; t2 [& z; x        g<= Y(1);
! V6 P8 f9 I' E8 r1 T        p<= Y(0);
" p! G" p4 q" l/ e! A        SEL<= "111110" ;6 z5 T) `- v) O5 {, r4 K& ^
end Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-1-6 07:36 PM , Processed in 0.172010 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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