Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。
- c$ x$ }+ A: `# Rentity sedg7 is
$ {! x- c/ O9 q# |    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);0 M, D$ ^2 r+ X' R6 J6 i* q; h
           Y : out  STD_LOGIC_VECTOR (7 downto 0);5 k' T( `( I7 f! o! F
           a,b,c,d,e,f,g,p : out  STD_LOGIC);; T" o2 g- t' }  Z! L
end sedg7;' A4 s  Z3 W& M' D; ]

6 z8 S* i& W0 \8 ~architecture Behavioral of sedg7 is. \* ~( T. L  X
8 f( x0 E( q& b2 X' J5 x
begin9 ]9 ?4 s: j; R* o2 ~
        Y<=        "00000011" when S= "0000" else               
. l* P3 e( p; T* q4 F4 e9 r+ y                        "10011111" when S= "0001" else        $ u) I  z: Q: n( l
                        "00100101" when S= "0010" else       
+ ^4 ~# [0 k5 n& K. d4 o0 u                        "00001101" when S= "0011" else       
+ _  Y  q5 {: H3 J" O6 A                        "10011001" when S= "0100" else       
0 G2 h* }) y5 F4 O) v! A                        "01001001" when S= "0101" else       
, e$ A" @  d& ]) ]! p                        "01000001" when S= "0110" else        0 d. T+ O/ h/ v" ^( H; T' I
                        "00011011" when S= "0111" else        6 C# f+ H# i  t
                        "00000001" when S= "1000" else       
! Y( e0 W: v6 x* C+ w% z/ j$ K                        "00001001" when S= "1001" else          9 N1 _- b3 X9 ~
                        "00010001" when S= "1010" else        6 a+ V: C5 ]6 h* r0 B$ w% @
                        "11000001" when S= "1011" else        6 B. T) p3 T) z; B# D# B2 U) S1 }
                        "01100011" when S= "1100" else       
# o8 _! _$ @& c7 W* X2 i                        "10000101" when S= "1101" else        . W! I1 `7 w) h7 t: B( X! H
                        "01100001" when S= "1110" else        / j' A1 u! M6 q# B, s) ~9 s
                        "01110001" when others ;   
+ U7 T9 S/ y( j* R; Q                       
& A, E& f0 w. K- o% z( V0 s                        a:= Y(7);
( E1 \4 E# R" V' H0 n# u9 t0 ^                        b:= Y(6);
) [- K* A. c! U' y# n                        c:= Y(5);- B7 j4 {" A* ]8 }, `; Y
                        d:= Y(4);
) b9 r% M8 z+ I* O) k                        e:= Y(3);7 v4 k0 W7 V7 v( L
                        f:= Y(2);+ N: k5 z6 c, s2 A6 R
                        g:= Y(1);) A; g' z" W+ ]2 \, r' T: S
                        p:= Y(0);  c0 U  S3 D1 G/ T: x
                SEL0<= '0';3 {9 v; m# u5 `& B
end Behavioral;3 N9 w8 q/ o4 O4 O6 [/ A3 Z- Y. X  S
  m7 s9 Y: h+ y# Q% V
ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS  Z7 ^4 K& y  b5 i- }
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
: a9 H7 m2 ~* U, \' C4 ?7 `  E, y一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好
( W6 f  I9 b8 Q8 B; w9 \) l2 I1.
0 a8 x$ c0 A6 S, T+ h Y : out  STD_LOGIC_VECTOR (7 downto 0);
4 Y0 A3 [- Q) k: q: W6 e Y宣告為out 怎還可以指定給abcdefgp3 e7 \0 L, @& j: f% `: d4 ~. h
9 {0 Y( T, ~' c4 I- J9 |
2.
- G7 f6 N! Y" f$ K! Ja,b,c,d,e,f,g,p不能用":="要改成"<="" [- Y, c2 q9 P! p' R2 w2 l* J: [) m1 I: l
( J+ J3 f& V  @+ r; x8 N: B, i
3.) k% ]: _3 D  }3 u7 M  E  O
SEL0沒宣告,怎會冒出SEL0<= '0';來呢1 _$ Q6 w. A2 W4 L

9 b- [! t4 d9 S8 @[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了
& u8 y" m6 j7 O. Z
( T3 D- H" `8 c8 r/ N3 w* D6 t7 Uentity segment_7 is
6 Q/ `$ T2 K, U/ ~    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
+ C9 R$ M, P& M( n           Y : out  STD_LOGIC_VECTOR (7 downto 0));$ Q! I9 t. r6 `: G0 ?
end segment_7;
4 y7 E" Q: l- ~4 n" ]2 B( T% U# F
architecture Behavioral of segment_7 is9 p  S) T  ~6 Q1 E. f. w

3 ^6 U- L3 m3 u: V$ G- [begin
: C. b) ^# _/ g" J; P# M8 O+ w        Y<=        "00000011" when S= "0000" else                & {2 g' J+ s8 w6 K+ E& W9 n6 z
                        "10011111" when S= "0001" else        5 ?1 y- B  a3 ]8 g' l
                        "00100101" when S= "0010" else        7 e3 C  m2 W: I$ r% W3 k
                        "00001101" when S= "0011" else        0 [* b0 g0 c6 [; o% d& ]- K
                        "10011001" when S= "0100" else        
- O+ w; _# ?, F8 Q* Z# r                        "01001001" when S= "0101" else        : D3 b, X- @0 n$ P
                        "01000001" when S= "0110" else        6 L+ {5 _( `. d
                        "00011011" when S= "0111" else        1 k1 ^* X% N5 D1 R$ k
                        "00000001" when S= "1000" else        
" z# @8 ^' u" ~8 P8 [/ l5 E: e/ a3 o                        "00001001" when S= "1001" else          % m, k/ q. L, t6 c  n
                        "00010001" when S= "1010" else          v$ ~2 g' c: t$ X+ k1 Y, M
                        "11000001" when S= "1011" else        
* A. I% E7 c% R' h  x; L: Q8 \+ y                        "01100011" when S= "1100" else        & J: x: c4 }0 E4 P0 @
                        "10000101" when S= "1101" else        
. G5 p5 h& T- z                        "01100001" when S= "1110" else        $ I$ }: V8 h. \
                        "01110001";    3 F  n- v/ Q1 q( Y! F' ~7 P/ g
                        / L. f; a2 j, L  @  @3 D6 E
end Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣
( s6 B+ k6 U0 \4 \entity sedg7 is
, y: f) f0 r5 n4 e" W1 B    Port ( Enable : in  STD_LOGIC;! `: O  W1 \7 ]
           X : in  STD_LOGIC_VECTOR (3 downto 0);
/ n8 P  F+ f- K3 |6 h  |$ a                          a,b,c,d,e,f,g,p : out STD_LOGIC;
* r$ W1 E8 x5 E                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));! J% }/ ^$ P# Y* v7 q- \1 A
                          / a/ y' [+ a$ E' q* Z
                          $ V; R( h- a  ]+ s' R8 t; ~' F/ b
8 u( Q8 T0 M' o1 M+ M4 ^( b$ R5 B/ M
end sedg7;1 [; P5 K, g+ q' u! f7 \  W
, q7 s! a& k' U. P/ h
architecture Behavioral of sedg7 is, y0 |( F% a  x2 T
SIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);$ V: `3 L. |8 M! A2 r3 e+ S, a& B
begin
0 S5 d8 p4 x) P* T( A                Y<=                "11111111" WHEN Enable= '1' ELSE6 A9 u& H% [, c: P
                                        "00000011" WHEN X="0000" ELSE
) W8 z# ?& l; J5 [# f3 t                                        "10011111" WHEN X="0001" ELSE  u; @( q) |9 [! s4 w: d8 u, V7 ?
                                        "00100101" WHEN X="0010" ELSE; `4 b1 c7 O& {7 J) y
                                        "00001101" WHEN X="0011" ELSE4 o* j; Z7 d( t+ o) p
                                        "10011001" WHEN X="0100" ELSE
+ E5 r2 q1 @" t. L1 m4 e                                        "01001001" WHEN X="0101" ELSE* h& A5 \3 B9 }, i, \3 ?' o
                                        "01000001" WHEN X="0110" ELSE7 D& m9 m& C  q+ @3 T5 x( K
                                        "00011011" WHEN X="0111" ELSE3 s- R/ @5 q$ |" j
                                        "00000001" WHEN X="1000" ELSE; b0 Q, _: {9 ~$ X/ w8 O
                                        "00001001" WHEN X="1001" ELSE
8 W2 \: t3 s  Y6 g4 M+ D  x                                        "00010001" WHEN X="1010" ELSE
& F7 ?! X3 H: q0 t: S- r: P% d                                        "11000001" WHEN X="1011" ELSE$ c9 X% F+ R; y8 r3 e4 ?& I7 H
                                        "01100011" WHEN X="1100" ELSE+ u. W; J; @+ E' ]
                                        "10000101" WHEN X="1101" ELSE
% _+ ?- U$ ?4 x0 D, m                                        "01100001" WHEN X="1110" ELSE
2 o3 W- S6 B7 _/ M                                        "01110001" ;
% h5 j' `1 O' J+ ?; \1 o        a<= Y(7);
" y+ E7 Q8 ?; o: ^        b<= Y(6);
) C. C# f3 j  T        c<= Y(5);
% o9 h) Y, z% S* g: i# O" }6 i) u        d<= Y(4);
" w& `5 @( a# T' I% s+ k& h        e<= Y(3);
. I& u9 @0 y/ M9 P  \        f<= Y(2);/ H0 Q. g3 s2 Y1 Y* ?- A+ `! i
        g<= Y(1);
3 D9 b  u1 g: D        p<= Y(0);  t1 H6 l3 n$ D& S$ F
        SEL<= "111110" ;
9 [$ |% k1 V, d4 k* bend Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 06:50 PM , Processed in 0.166010 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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