Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2008-5-7 23:15:35 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。
+ f5 l. I( i/ u: l7 M8 T% mentity sedg7 is5 k3 o- i' I1 a4 v0 _% l3 Z
    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
0 [! K0 [% V; e3 u' f           Y : out  STD_LOGIC_VECTOR (7 downto 0);5 t, J  H1 S9 Q- W7 _) z% v+ g; q
           a,b,c,d,e,f,g,p : out  STD_LOGIC);! N+ E# k1 A1 Q2 I
end sedg7;- }# W. y5 x/ x8 J+ Z
) D) o# Q, H1 d4 N" N1 I! R
architecture Behavioral of sedg7 is
+ D/ W4 M2 N! j2 I( i& \0 G
' o) l# x& r2 a$ n! o' fbegin& A- t' s- y' Q# k: P$ V5 f: T, Q1 q
        Y<=        "00000011" when S= "0000" else               
* C* {% ^  t0 Y7 d                        "10011111" when S= "0001" else        $ c. A0 A3 ?/ n! |% l
                        "00100101" when S= "0010" else       
1 e- |0 z+ S3 s6 J$ `                        "00001101" when S= "0011" else       
1 M9 Q5 p" H) f& r  g; I4 O0 f0 t                        "10011001" when S= "0100" else       
5 i: f/ {7 r- I' @- q. P                        "01001001" when S= "0101" else       
( a2 l3 N4 n6 s+ F% P                        "01000001" when S= "0110" else       
7 R; {6 B0 i' c" J6 O. a0 l, z                        "00011011" when S= "0111" else        3 l/ }) f6 {+ f+ _$ N$ G. A2 _
                        "00000001" when S= "1000" else        2 L; v" }7 l# @; ]6 v  t- R
                        "00001001" when S= "1001" else         
' f/ A- S1 |; O4 e# L7 h                        "00010001" when S= "1010" else       
, X) p4 m7 f0 F3 s8 K% R                        "11000001" when S= "1011" else        / g* g2 K9 k# |0 M2 Y1 p  U  o
                        "01100011" when S= "1100" else       
+ a% L, Q# L/ \8 \- E  u                        "10000101" when S= "1101" else        3 Y* U0 q% n! B
                        "01100001" when S= "1110" else       
" k2 @( G- G" z% s: Z7 Y                        "01110001" when others ;   
- Y+ [. H0 L, X# i0 U. E                       
$ D; S7 @' @6 d3 n2 x                        a:= Y(7);3 J) K7 _3 D- G% @% x7 W
                        b:= Y(6);: H% Y: d* @5 A
                        c:= Y(5);
$ N: |- Y  s5 _0 R/ I: |                        d:= Y(4);7 x$ ~* d  [/ o2 ^4 i8 C! r' q- `
                        e:= Y(3);
; m2 ^0 ~$ z2 u+ g: o3 E* A                        f:= Y(2);
9 ~; }: k& d1 \3 @' O                        g:= Y(1);' v# L& ?/ |* k7 V- n  d% D. l
                        p:= Y(0);& H. a/ Y' K9 ]( x  m1 }" y
                SEL0<= '0';5 n( F( o! n) E+ r4 b! y  o  v; M
end Behavioral;1 v1 x8 Z: F- O) o! ]$ @# a
3 N2 N6 f- D" D: @- W, X) j; [" k, s
ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS* N2 F2 ]; _9 h4 `: M: X
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
; L1 f( J6 G- F- V一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2008-5-8 09:27:49 | 只看該作者
您好( t9 Z- E# j# ^& l) @
1.' R  n5 d& A2 L/ g
Y : out  STD_LOGIC_VECTOR (7 downto 0);# Y6 f. ]  T* [, ~3 M
Y宣告為out 怎還可以指定給abcdefgp
) m/ b. `' A; I, u. ^3 I, X1 P3 j% u
2.
9 H. ?6 w- I6 va,b,c,d,e,f,g,p不能用":="要改成"<="
9 n1 m! N7 C5 r' q4 a3 R
7 i0 W7 G5 {" C$ k# \/ ?3.6 x( q' a* F1 k) I( N
SEL0沒宣告,怎會冒出SEL0<= '0';來呢
3 @0 @' V/ ~& U! P4 Q
( ^. W+ @* w0 {1 J- u[ 本帖最後由 addn 於 2008-5-8 09:30 AM 編輯 ]
3#
發表於 2008-5-9 17:57:19 | 只看該作者

when else

改成這樣就可以了
5 o) C) E' ~+ c* ~6 N' u1 w9 s/ K. G7 @; k- m
entity segment_7 is
+ n9 {/ J* @9 _% }& a$ V! P- u2 x    Port ( S : in  STD_LOGIC_VECTOR (3 downto 0);
2 f1 W$ @9 z2 A% J6 Q; L! A/ W           Y : out  STD_LOGIC_VECTOR (7 downto 0));
9 n( ~; [; H* m3 ~) }* b+ N7 oend segment_7;- `- E( A- b% @* z% W

+ \! ?& e9 `7 S2 Narchitecture Behavioral of segment_7 is& X1 ]$ E9 U; F6 x( i! T* b% ~! r; n
$ ?# `4 i$ B& L0 u8 `7 ?2 b' x
begin
( y) R: X3 h: ^8 p" [        Y<=        "00000011" when S= "0000" else               
5 S4 F# O, w9 @# r( C  I                        "10011111" when S= "0001" else        ' {: R! r# W4 y  j
                        "00100101" when S= "0010" else        ! {2 b# ?5 W( ?6 {* m0 R
                        "00001101" when S= "0011" else        0 D1 G& c& Z5 |
                        "10011001" when S= "0100" else        
7 k! a. ]$ y% j/ `                        "01001001" when S= "0101" else        
' j& n$ _* k5 j( _8 S& Q                        "01000001" when S= "0110" else          f5 H! y0 k0 [$ I. p/ Z& c
                        "00011011" when S= "0111" else        
& M" y# S% a1 k3 |* J$ |) H# W) V                        "00000001" when S= "1000" else        
/ H- }# `% R6 R* }                        "00001001" when S= "1001" else         
8 x: S% x2 P# m8 X- Z7 l% o! _2 z                        "00010001" when S= "1010" else        
; O9 [' ]# X" ~8 E; j                        "11000001" when S= "1011" else        + o- k- H) ?) Y: D
                        "01100011" when S= "1100" else        5 ~& C- _7 ^( f4 ?0 Z9 U
                        "10000101" when S= "1101" else        ) E" U0 e% G4 n* _' J! C
                        "01100001" when S= "1110" else        0 V' C! n: g# k+ e
                        "01110001";    / y5 W% c  B6 Z+ [3 `
                        
9 p, b) [$ `$ f4 O; ]! Mend Behavioral;

評分

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

查看全部評分

4#
 樓主| 發表於 2008-5-14 22:45:18 | 只看該作者
感謝囉!!後來我改成這樣# _" H4 X% b- X, I
entity sedg7 is! F- N0 Q# y; `8 ^2 b
    Port ( Enable : in  STD_LOGIC;( F) ^, {% q! Q+ J" P
           X : in  STD_LOGIC_VECTOR (3 downto 0);
6 J" A4 b! u" s, q; E' _  ]: i                          a,b,c,d,e,f,g,p : out STD_LOGIC;
, x6 r% D  q. ~( ~0 K; R. z                          SEL : OUT   STD_LOGIC_VECTOR (5 DOWNTO 0));
- g/ q# F7 l. y/ r                          
/ i$ ~' e& W+ }4 |4 {7 l% {                          ( Y9 y+ t5 D$ L$ i

; B( o, {( N7 B9 E  [% S3 Wend sedg7;$ t/ y5 F5 V$ d
$ w% |' I- f$ {$ G' w
architecture Behavioral of sedg7 is% \; h/ \/ Y, M6 \8 ]' @
SIGNAL Y :  STD_LOGIC_VECTOR (7 downto 0);8 d7 T( R3 ]9 @7 A0 {5 X
begin* _" \( T1 N' x% x& s
                Y<=                "11111111" WHEN Enable= '1' ELSE
+ g1 ~5 C1 P9 U8 f& S                                        "00000011" WHEN X="0000" ELSE
2 z* A! R. u, {4 U/ I3 ~                                        "10011111" WHEN X="0001" ELSE
. ?" q7 F, n3 i  N  e2 G0 _2 x                                        "00100101" WHEN X="0010" ELSE
5 d# ]' C. s  U7 h  p                                        "00001101" WHEN X="0011" ELSE
  g" k2 {) M. f. w# Q% g                                        "10011001" WHEN X="0100" ELSE0 y$ \8 a) O* M$ i+ r6 B
                                        "01001001" WHEN X="0101" ELSE
( r4 p* z* J8 ?% [+ G& T. y                                        "01000001" WHEN X="0110" ELSE
3 \5 }5 n+ j4 b7 {                                        "00011011" WHEN X="0111" ELSE
8 }! U5 h* v# ?: D! Z, B/ H                                        "00000001" WHEN X="1000" ELSE
0 X2 E; b9 G) P5 B1 g4 [                                        "00001001" WHEN X="1001" ELSE8 o- ?9 E1 X+ W" b1 Q
                                        "00010001" WHEN X="1010" ELSE
6 ?/ w0 a. `8 O4 b9 q                                        "11000001" WHEN X="1011" ELSE8 y! g/ Y% m5 y+ A3 W9 g; O' H/ ^. Q
                                        "01100011" WHEN X="1100" ELSE
& J. s( n( C. X0 f% w7 e                                        "10000101" WHEN X="1101" ELSE
' Y5 \8 u8 v0 c. m8 o3 j                                        "01100001" WHEN X="1110" ELSE
5 B$ t) P- O: `                                        "01110001" ;1 V, j* g2 A) b  m3 A0 r
        a<= Y(7);
" ^3 ]  _3 b/ C+ O        b<= Y(6);; L3 d6 T) F# K) G$ ^! A. h
        c<= Y(5);
5 |0 g7 F. X- B; M  ]6 S        d<= Y(4);
9 k2 }( t6 o; K% c: v; ?$ h. I- O        e<= Y(3);
1 l8 h  \3 f- {2 L4 \1 u        f<= Y(2);
% j' d: P9 O) b9 j. A        g<= Y(1);
8 [& M+ h9 p, {6 X2 Q6 f        p<= Y(0);
" J8 i( U, O  y  a2 y7 h9 M- I        SEL<= "111110" ;
$ ?0 @& r: \' ?; R  Qend Behavioral;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2025-2-19 06:43 AM , Processed in 0.164010 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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