Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。' g1 C7 U( N: [* |0 D3 _8 E
entity sedg7 is/ p5 ^( T2 h" C4 \+ V- }, w7 _
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
& a9 [1 V  j4 W% l2 R5 \           Y : out  STD_LOGIC_VECTOR (7 downto 0);
# z" M+ ^0 F( _  d7 K  D, L           a,b,c,d,e,f,g,p : out  STD_LOGIC);
' z1 _# j8 Y1 n( g5 a5 ~3 ~end sedg7;
$ T! p& x( J) {% y: F$ I5 Y) t' y+ h. I! p
architecture Behavioral of sedg7 is- S/ t; d) b6 o* M3 ]9 j. {! r! F' P
1 j: X9 G8 @: t% p9 M( b- r1 y
begin9 q+ G7 ~* h& T8 p# a- q& V! i
        Y<=        "00000011" when S= "0000" else               
. h# D  P  x9 c1 G7 t- n                        "10011111" when S= "0001" else       
7 D: S2 ~' K) m) x  p: I, x                        "00100101" when S= "0010" else       
6 O# f( L0 F6 B0 R9 y. Q# j( O% [                        "00001101" when S= "0011" else        , d8 o) L2 m: `& D, {, \  a
                        "10011001" when S= "0100" else       
5 t/ [0 o& @/ O1 Y                        "01001001" when S= "0101" else       
2 e& H4 G; o% x1 G- W                        "01000001" when S= "0110" else        # s9 m6 k  z/ P0 k. `/ `; Z% z- O
                        "00011011" when S= "0111" else       
4 G' @7 y* L- f% y8 |7 g$ E$ i8 l                        "00000001" when S= "1000" else        ( A/ X1 v% X( W2 d8 y7 @
                        "00001001" when S= "1001" else          ' c2 O: J& L% q! [; H' N- h
                        "00010001" when S= "1010" else       
' `/ B/ c( g8 d3 q                        "11000001" when S= "1011" else        - p5 W' C% D1 p8 ?
                        "01100011" when S= "1100" else        ( z' a5 R1 d4 [' }: N' _
                        "10000101" when S= "1101" else        ' H3 _# D" {& }$ T% Q4 R8 ]8 G
                        "01100001" when S= "1110" else        + ?' u/ X3 H: H  H
                        "01110001" when others ;   
5 _% e4 P1 ~# M7 Z, ~- Q' H                       
; Q" p: ~5 E& y7 B2 v                        a:= Y(7);
8 S! J1 V, s$ e1 G                        b:= Y(6);$ U8 h; w' x  }5 P4 g
                        c:= Y(5);
% E' s2 l$ F0 E+ n                        d:= Y(4);* T) U& Z( `1 O  B5 D: o
                        e:= Y(3);
( Y% g  f& s3 ?# E" \' H8 j% d- m0 Z6 `( _# n                        f:= Y(2);4 t- [' e# w, \8 `5 T0 h
                        g:= Y(1);/ o3 G/ U3 o4 N; ?/ \, Z- J6 U
                        p:= Y(0);3 L3 L6 y& m) @. ^! _& u
                SEL0<= '0';
% r: z, |. C' W5 P8 B) }7 y; Jend Behavioral;
& s. w9 J+ |! |8 }& s
& m8 p; x* m6 EERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS0 F! Z" R' i* c1 q3 n% R: v5 V5 K" v
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
. }, }0 W1 D7 @3 C一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好' U: X/ [% `5 U5 X- U
1.9 b+ \* _" O1 p& P, O: T" A0 a2 n
Y : out  STD_LOGIC_VECTOR (7 downto 0);
$ u/ I; s$ R8 }3 u5 H# H4 W Y宣告為out 怎還可以指定給abcdefgp
5 C% @1 ?3 E& U: x7 u" l6 a" s0 V, g5 }: ~
2.! X7 N& X0 p0 m$ u; z
a,b,c,d,e,f,g,p不能用":="要改成"<="
9 f" U" j9 m" w- ?5 j
  C! k6 o3 u: f2 }. N! g! G$ Q3.9 Z' j2 s; ~6 e: U
SEL0沒宣告,怎會冒出SEL0<= '0';來呢, [; f  H( `: L# [) [8 D

) y1 i! m) M" u' a* A" c[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了: m$ j, z0 O0 R# j7 e& L/ k: {

) b6 N  n8 S' l* D; q/ fentity segment_7 is2 C* Q, D" _7 t
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
& X2 x7 T% U1 a/ D           Y : out  STD_LOGIC_VECTOR (7 downto 0));
" b; ]2 i- X- P4 eend segment_7;
: z  e; [) o, Y& ~( l$ b+ G  [) U9 t% g# `
architecture Behavioral of segment_7 is; ^# u4 D0 s9 [/ X7 w7 H  A
4 w: ?& ~/ s; o" R% P
begin
; ~# U+ @) Y3 D4 \" @        Y<=        "00000011" when S= "0000" else               
9 j. S% a) B$ X3 Z& W; N0 ]) e                        "10011111" when S= "0001" else        
' o7 p2 w" S8 a& V/ o3 r                        "00100101" when S= "0010" else        
+ M' ^" Q1 s& o6 f$ c0 ^                        "00001101" when S= "0011" else        3 v$ K! o' V7 H( l
                        "10011001" when S= "0100" else        : g$ M) s6 i% l; b
                        "01001001" when S= "0101" else        
1 U  q/ X2 n% [( @3 d+ b; t, M- z# l                        "01000001" when S= "0110" else        9 n) x) J+ {; x: ^
                        "00011011" when S= "0111" else        
0 [& A6 \6 a" o3 m  Q! Y- o                        "00000001" when S= "1000" else        
! m# G3 P/ Y7 ?2 i9 V                        "00001001" when S= "1001" else         
1 L/ w9 G4 y  s/ `3 S& Q$ I6 J9 i! V, i                        "00010001" when S= "1010" else        
# z- h0 Y7 J0 ?2 x                        "11000001" when S= "1011" else        + U( m. l$ @. p, T
                        "01100011" when S= "1100" else        1 M& g) x  ?1 [8 Z
                        "10000101" when S= "1101" else        3 G7 \* L4 @$ p$ B! m% H+ \
                        "01100001" when S= "1110" else        
# S, Q5 q0 L0 l5 W' G) D0 ?                        "01110001";    5 q9 _" k. _/ H# D
                        ) N! ]$ k% I: Y* `* w
end Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣8 g9 C. Y" w8 Y7 x7 u
entity sedg7 is& H8 @% n* P9 x' S
    Port ( Enable : in  STD_LOGIC;
: R! X) G9 x) ^           X : in  STD_LOGIC_VECTOR (3 downto 0);. {) {+ _% ]9 X" O4 x
                          a,b,c,d,e,f,g,p : out STD_LOGIC;9 ]% z$ x8 z9 K% p7 u
                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
+ h. e: r+ {# [9 ?* g4 |; f                          7 G7 w8 o" l6 w
                          
: @0 P5 r: a0 {7 W" z' y( |1 q6 Z5 g6 G& M! A& h/ W: Q# S
end sedg7;
1 y) o9 y% H) O  o) S- \# `+ M: @1 z; E' E8 @6 d* N! e
architecture Behavioral of sedg7 is9 ^5 z! W! E8 ?* Z
SIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);
8 x7 V" X% }; q3 a, m8 T- obegin# P, F- o* q# P! t  G8 ^& q3 F, S
                Y<=                "11111111" WHEN Enable= '1' ELSE% b1 f" J2 M; m9 L
                                        "00000011" WHEN X="0000" ELSE' c/ U: p+ \5 m; t7 [2 k
                                        "10011111" WHEN X="0001" ELSE2 s7 b5 M8 ^) a) ^6 k# t' a
                                        "00100101" WHEN X="0010" ELSE
3 w& W0 }& D3 j  w+ e( c                                        "00001101" WHEN X="0011" ELSE+ B, O4 w# e0 o5 V" `% L
                                        "10011001" WHEN X="0100" ELSE2 R9 Z  f/ l% d0 R
                                        "01001001" WHEN X="0101" ELSE/ ~0 Z, H6 [: R6 C" A& k! X
                                        "01000001" WHEN X="0110" ELSE, B1 g: Y; v. Z6 k1 {
                                        "00011011" WHEN X="0111" ELSE
# n9 r% m0 o# {8 g+ {* w                                        "00000001" WHEN X="1000" ELSE
" d* p0 H5 a1 h2 R* H5 I                                        "00001001" WHEN X="1001" ELSE1 Z: N; [" m6 {" C
                                        "00010001" WHEN X="1010" ELSE8 Q2 L% G6 p5 u$ n3 ^
                                        "11000001" WHEN X="1011" ELSE
& A3 c* V$ Z6 @: |8 A1 T4 R; e                                        "01100011" WHEN X="1100" ELSE
$ `/ d, ]! j% y6 S4 z6 x                                        "10000101" WHEN X="1101" ELSE! J3 C. a" A6 O  J/ U
                                        "01100001" WHEN X="1110" ELSE. Z' H8 {: F$ Q; E/ i
                                        "01110001" ;
" c5 k2 e) [/ n& A/ N        a<= Y(7);. M! O* N5 h# n0 r- b5 R+ P3 r
        b<= Y(6);
0 ]$ T  S# X6 j  a$ H4 }        c<= Y(5);4 s% s: s$ y, e0 Q$ a, ?2 O
        d<= Y(4);, e4 S/ i, \. t, W3 v+ Y: X0 W
        e<= Y(3);* g( W% \( k7 B" j9 w
        f<= Y(2);
$ J8 D3 N2 |/ M9 G) w! Q3 R        g<= Y(1);
3 q: Y6 D  v4 o% m5 J        p<= Y(0);
- _6 w( ^" \; m+ @        SEL<= "111110" ;
  O- F+ E, U+ k; ~1 y2 qend Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-2 01:50 AM , Processed in 0.119515 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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