Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。/ Z5 f; q/ ?% J3 v9 n
entity sedg7 is5 T6 S$ J) }& l4 H& u+ l2 \* F: b
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
: S: L6 f6 b* c+ [+ y           Y : out  STD_LOGIC_VECTOR (7 downto 0);
$ V; B. D6 w# A8 u           a,b,c,d,e,f,g,p : out  STD_LOGIC);' L4 ]5 m$ b4 e& u7 L
end sedg7;3 k+ W! _: a: Q1 J. _5 r8 R' B
4 V1 t6 q' y; e0 }& n7 D8 ~
architecture Behavioral of sedg7 is+ i. x7 y% g6 u# _

1 I- |: M$ K: O7 E+ _; T  `begin
' Y" V" R; w" q( O        Y<=        "00000011" when S= "0000" else               
2 e5 F( I, _/ z2 o' r                        "10011111" when S= "0001" else       
9 ?5 M7 ]- v$ w5 e                        "00100101" when S= "0010" else       
+ K3 ^& o7 [6 F* p; r- s) x                        "00001101" when S= "0011" else        % w+ x8 n3 A8 z7 n/ j2 T! V
                        "10011001" when S= "0100" else       
9 v# p9 H5 O. S# S0 y6 w                        "01001001" when S= "0101" else        ! u" c7 T' N4 O0 X+ @4 u8 z" Q
                        "01000001" when S= "0110" else       
3 J% k, [: H! @+ P                        "00011011" when S= "0111" else        ( y* H& x1 u! Z* Z) T
                        "00000001" when S= "1000" else        , D% a1 F5 ~+ l) ^' |& i
                        "00001001" when S= "1001" else          " [+ ~; Q. G  a, _7 ^7 y- d% }
                        "00010001" when S= "1010" else       
$ p) h" A8 z5 s                        "11000001" when S= "1011" else        $ k0 e+ X1 R1 v% d2 l9 J% e5 J
                        "01100011" when S= "1100" else       
# b7 T$ S6 T" X  F% U, i                        "10000101" when S= "1101" else       
# u2 h" r- v6 B. }* p8 A  O                        "01100001" when S= "1110" else        9 @0 q5 A$ m3 N. L8 Q2 L& I
                        "01110001" when others ;   
+ @. }* X0 E7 g; A2 F                       
/ z# x. R9 {% }) F                        a:= Y(7);* K# X) k  J- \0 X& A
                        b:= Y(6);
1 G1 W# M- l' G; z- g, R$ `6 h                        c:= Y(5);! B5 `+ j6 t$ ~! S8 T' y
                        d:= Y(4);  }5 w7 _, [2 p. Y% s% J
                        e:= Y(3);# G7 S4 ^1 P/ u# F$ \1 N
                        f:= Y(2);% C$ ^1 W8 R& J' }8 |
                        g:= Y(1);
# K4 e$ q/ s, m2 ?9 w& `7 \+ ~                        p:= Y(0);# F7 w9 g& M- Z( G- k( S: m
                SEL0<= '0';
4 Y, ]7 o# q" T5 D8 |: U/ ~end Behavioral;) }; M, o/ `* v

+ N. `) e$ L, n1 Y, ~ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS  w' P$ F3 n/ Q2 y. ^1 }# ?1 d! ]3 t
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
! t! b' v( A) v( ~一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好
& B: v& U# k( P* X) [3 @1./ n  l1 n: T  ^3 [* N- Z( [
Y : out  STD_LOGIC_VECTOR (7 downto 0);
# [% R" v" p& w3 c& B+ T Y宣告為out 怎還可以指定給abcdefgp& r! n& P4 r* _: c( s$ G2 h6 O3 {

  W: I1 ^7 z6 _% V( ^' z2.( S; q9 x' ^$ d# k+ e1 f1 t
a,b,c,d,e,f,g,p不能用":="要改成"<="
( ~8 R6 V  P4 g8 ]& ~# x- E6 T8 B3 U8 j: z. C* x# m7 A
3.
7 \/ n0 E+ V7 G, P" F* G: mSEL0沒宣告,怎會冒出SEL0<= '0';來呢
5 @4 h8 j, ?8 T; T& C+ l
3 m  a+ P3 z# W2 J. j[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了9 A! C& @: f# P8 R) M7 E7 L. ]
' P- h: v. n! T4 k* v+ g
entity segment_7 is
. W% b5 [/ J# d! ~    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);( F" x) G# y; K# _4 x- u
           Y : out  STD_LOGIC_VECTOR (7 downto 0));, l& e& N4 E- q* f' K9 @
end segment_7;; j  F, H8 z, Y1 ~

$ O% M3 Q$ l: varchitecture Behavioral of segment_7 is9 g8 a9 t  U- B% J6 o6 }# X4 ?

4 ^. K$ g2 c- o) g) |begin% g# F; A& A/ r) _1 b
        Y<=        "00000011" when S= "0000" else               
, s7 Z% s7 d' K) @9 |7 j! h: I6 F                        "10011111" when S= "0001" else        2 L( j1 D6 r; t9 f8 _
                        "00100101" when S= "0010" else        6 C; T- d1 z! z
                        "00001101" when S= "0011" else        
& w1 m6 F' e3 s+ O: P1 W9 S. ?' O; X                        "10011001" when S= "0100" else        0 z6 |7 V' T3 I+ W, J# [2 E
                        "01001001" when S= "0101" else        + x) Z; A2 T8 t2 D* j
                        "01000001" when S= "0110" else        
6 Z, _2 D" `1 L                        "00011011" when S= "0111" else        5 g) K& d/ k4 t: \+ j+ x
                        "00000001" when S= "1000" else        * b' Y1 E: d3 k$ c
                        "00001001" when S= "1001" else          " |. b1 F7 o1 ^; D
                        "00010001" when S= "1010" else        4 [$ {; y3 Z* x9 C( x
                        "11000001" when S= "1011" else        1 I$ N0 q  n) i0 |0 ^+ H$ a
                        "01100011" when S= "1100" else        $ }2 u2 m) [( ]1 W. P' Y8 }  r2 |& h3 n) M
                        "10000101" when S= "1101" else        
4 [8 l8 q8 p: G& l                        "01100001" when S= "1110" else        2 g/ a& S; n, t# H) k0 L4 ?
                        "01110001";   
( h1 {! i8 p% u" g* H2 d! Y7 B                        
7 I: ~  ^( f- \  |$ [4 @! Jend Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣4 R6 i. J- O' I5 E/ r
entity sedg7 is( _+ \. [( o) c4 r
    Port ( Enable : in  STD_LOGIC;  C/ Z7 ^  F; ]% B+ X" L
           X : in  STD_LOGIC_VECTOR (3 downto 0);
) L4 d% s, X1 l5 g                          a,b,c,d,e,f,g,p : out STD_LOGIC;
# u' q1 U6 t2 i# I- H  r                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
! o6 ~7 o* Z2 [7 S% l% _                          
8 v+ U, Q' [4 e* x7 q                          ; a. t7 J: J- R3 {$ X9 i

4 m* l" P7 q! X/ rend sedg7;, n; s1 S1 Q0 |2 C

# R( Y' |8 }0 i& q3 Iarchitecture Behavioral of sedg7 is
# c, G1 c6 |8 F9 jSIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);
% `! `; g% |: V% j! sbegin5 Q! _* t2 F0 F; {7 [' C
                Y<=                "11111111" WHEN Enable= '1' ELSE3 O0 x/ X7 _9 A7 x8 [0 f( Z
                                        "00000011" WHEN X="0000" ELSE
& X# q! H$ ^' `- u; Z                                        "10011111" WHEN X="0001" ELSE
$ @$ `; {0 Q& @  v# ~                                        "00100101" WHEN X="0010" ELSE
, \  e8 o; O0 c                                        "00001101" WHEN X="0011" ELSE0 ~) P6 }3 l% G7 t; x) O
                                        "10011001" WHEN X="0100" ELSE
2 F7 ~  r+ |& z" ^3 }                                        "01001001" WHEN X="0101" ELSE+ }6 P+ t  n) C. Q2 R+ G
                                        "01000001" WHEN X="0110" ELSE+ [$ }1 O7 m  D
                                        "00011011" WHEN X="0111" ELSE
0 Y' r* |! X) b3 w$ C5 E                                        "00000001" WHEN X="1000" ELSE2 e6 G+ v/ D- Q* h4 O' T$ y
                                        "00001001" WHEN X="1001" ELSE( K, f% s$ R1 Y* \  N. W  N
                                        "00010001" WHEN X="1010" ELSE) c0 X9 n; u5 i
                                        "11000001" WHEN X="1011" ELSE* E( x+ {; g; X
                                        "01100011" WHEN X="1100" ELSE  k- f0 g# @3 G( J, b6 F
                                        "10000101" WHEN X="1101" ELSE
4 V3 U6 e# ^# T  z2 p, R                                        "01100001" WHEN X="1110" ELSE
  @0 E) H0 }( R; a( x4 s' e9 N- l; h                                        "01110001" ;
; m: [& k7 P0 Q& q        a<= Y(7);
- t+ R* R; N$ [: i+ `$ f9 C- e9 n        b<= Y(6);# L) j+ ~1 g; h; R: V9 b( [
        c<= Y(5);
0 w0 V* |3 v, O' W' K( E        d<= Y(4);
+ ?9 V/ v$ P- `  y0 R; x$ t6 o        e<= Y(3);
' E0 G2 ?: ^8 |2 d        f<= Y(2);( j+ o4 Z2 F- m/ E0 a$ F
        g<= Y(1);- f( l# y7 Q. p
        p<= Y(0);
. J& H9 G% |" K1 @3 R        SEL<= "111110" ;, [, T) K) O8 z. X# h8 W
end Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-3 12:24 AM , Processed in 0.118007 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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