Chip123 科技應用創新平台
標題:
7段顯示器用when else 寫法
[打印本頁]
作者:
gto10620
時間:
2008-5-7 11:15 PM
標題:
7段顯示器用when else 寫法
剛學FPGA/CPLD 現在學VHDL寫出7段顯示器。
/ O. l( L; L- _5 L9 r% U7 d
entity sedg7 is
7 f$ F" j2 o. {5 s
Port ( S : in STD_LOGIC_VECTOR (3 downto 0);
9 q! y% i: ^% N
Y : out STD_LOGIC_VECTOR (7 downto 0);
* `" i- x+ i/ \' P" ^$ f
a,b,c,d,e,f,g,p : out STD_LOGIC);
" H4 ^7 }. E" m- s e# s' B
end sedg7;
8 x8 x' z1 ?( u( h
0 ]9 r7 I2 i( q! G, M: r7 w' `" ^
architecture Behavioral of sedg7 is
/ {# `* T- A* q4 E/ r% ^% x
- i+ D& g% @9 d0 v
begin
3 \6 i, y$ I" J" A) j/ ]
Y<= "00000011" when S= "0000" else
, g4 L, o* B7 ~2 W: B8 N
"10011111" when S= "0001" else
0 x2 ~6 i" P9 S
"00100101" when S= "0010" else
: B; D" ]' \7 I+ Z/ k. [
"00001101" when S= "0011" else
* b/ ^: N9 o" {, l& p8 m7 \6 D
"10011001" when S= "0100" else
' |$ K0 m/ q- O B
"01001001" when S= "0101" else
0 T8 `: _. O- j! q% W, s" c2 P0 z
"01000001" when S= "0110" else
9 U, o8 K% n% C5 q7 z
"00011011" when S= "0111" else
2 n6 q4 z7 b. B. Y3 i N9 z
"00000001" when S= "1000" else
4 |9 M$ y; s* Y$ L, L* w; Y
"00001001" when S= "1001" else
: d$ o" p* f7 }* c2 H! [7 |
"00010001" when S= "1010" else
3 ~& O6 O2 O6 K1 W
"11000001" when S= "1011" else
0 A0 _/ q8 V# _1 b% |+ L
"01100011" when S= "1100" else
$ x8 P/ V4 M A' b6 ]
"10000101" when S= "1101" else
/ C% m2 ^; x5 t( X5 J4 J1 m
"01100001" when S= "1110" else
4 X0 d* Y# u2 ]$ B+ o# B# W
"01110001" when others ;
' j* Y- ?) n$ V
4 [0 H1 @) T: |. ?
a:= Y(7);
2 e% B7 \$ P: K* q& Q! ?, ^; _
b:= Y(6);
8 r5 \' i3 G5 k K K5 S
c:= Y(5);
9 b6 c$ h. c2 \# v' X
d:= Y(4);
! p5 r7 P9 A, h. b" q& R
e:= Y(3);
9 ~& a' \# F0 ^/ U$ [
f:= Y(2);
* l& A- k: `2 E% M9 t/ f
g:= Y(1);
! {$ ?6 N5 b( j" H$ u5 G
p:= Y(0);
: Y, J) U& s# A+ G
SEL0<= '0';
' }8 i# l: p$ p7 d
end Behavioral;
. u; V- X' ~1 ?1 C( g) R% W! c
9 r# t. @1 O) `2 _
ERROR:HDLParsers:164 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 54. parse error, unexpected OTHERS
+ K+ u$ ?3 z+ g( P9 I
ERROR:HDLParsers:3312 - "D:/ypj2008/4e2afpga/sedg7/sedg7.vhd" Line 64. Undefined symbol 'SEL0'.
f6 a; e n' x2 ~2 g. E
一直錯誤~"~ 實在搞不懂... 誰可以幫幫我呢? 感謝~
作者:
addn
時間:
2008-5-8 09:27 AM
您好
/ t% v, X" B% q: ]
1.
, S0 ^ f5 \; Q8 J6 e; p+ u
Y : out STD_LOGIC_VECTOR (7 downto 0);
# K; |; o0 n5 t9 J# T7 W
Y宣告為out 怎還可以指定給abcdefgp
8 }% O$ D% o" m) h- G5 K+ {
. W) v+ ~0 ^% J1 ?6 M' Y# V, I
2.
" E$ a( M; m4 I. ]) V- L- ?/ ?6 v
a,b,c,d,e,f,g,p不能用":="要改成"<="
, m( v( i* F) a2 p$ N+ `
* w/ u( B7 ]/ j$ V2 f
3.
, a, Z2 q' K, y/ L9 K2 t
SEL0沒宣告,怎會冒出SEL0<= '0';來呢
4 J/ p% Z# n7 }8 K+ _
5 y# M2 v( Z; D9 @0 r( u' b% M {2 L0 H
[
本帖最後由 addn 於 2008-5-8 09:30 AM 編輯
]
作者:
airtiger
時間:
2008-5-9 05:57 PM
標題:
when else
改成這樣就可以了
0 H- S0 h, ^1 `$ U+ h
6 ]) J, S; y( h
entity segment_7 is
; s7 y! c% {" I2 O6 M
Port ( S : in STD_LOGIC_VECTOR (3 downto 0);
2 Y: }" |$ l2 P3 A* `0 F0 w
Y : out STD_LOGIC_VECTOR (7 downto 0));
. {+ R( `1 Y# d! X. Z
end segment_7;
1 o3 f- Q! \7 b) ?6 \. D$ Y
/ L) z: o4 L: P6 n
architecture Behavioral of segment_7 is
" i3 X: b* J8 S. }9 q2 p/ q$ M
/ L6 a- g% c7 x0 Q
begin
' F* S9 N! q7 q$ W2 v$ C
Y<= "00000011" when S= "0000" else
/ y e. z9 p9 X* D4 \( I
"10011111" when S= "0001" else
7 S9 G1 X: Y3 Q1 O7 t
"00100101" when S= "0010" else
/ m+ U2 V* l6 y4 Y8 I9 k
"00001101" when S= "0011" else
2 f% \* c( z* A2 E7 I0 a/ G
"10011001" when S= "0100" else
8 ?3 m+ Y9 H2 B1 F
"01001001" when S= "0101" else
/ F1 i9 b, [$ \. m# g4 X
"01000001" when S= "0110" else
# I% g* O9 e; I/ @4 z7 l
"00011011" when S= "0111" else
- i) Y) m- B8 y3 r% u
"00000001" when S= "1000" else
* J. S2 W- ^3 X, M
"00001001" when S= "1001" else
) j/ W4 {' {$ j
"00010001" when S= "1010" else
5 M/ d8 ]" D# a; @. H2 S
"11000001" when S= "1011" else
! }/ f# P3 j$ F: l( U; Z
"01100011" when S= "1100" else
& s% S; @% C: e8 `% d; y' Q
"10000101" when S= "1101" else
0 | M2 W% Q) B( ^: ^! V
"01100001" when S= "1110" else
2 o, _6 k* v) { L
"01110001";
; Z! W0 N9 X8 L" b+ X" A3 \* J7 A
& H% Z0 D" w2 l V" j
end Behavioral;
作者:
gto10620
時間:
2008-5-14 10:45 PM
感謝囉!!後來我改成這樣
% @3 R* Q! }2 z
entity sedg7 is
1 R' q Y6 Q4 a
Port ( Enable : in STD_LOGIC;
' k: r' m/ X/ x" Z8 A! F+ N# B* M
X : in STD_LOGIC_VECTOR (3 downto 0);
; E3 c& T& B1 [' p9 i" a& R h! c
a,b,c,d,e,f,g,p : out STD_LOGIC;
$ S' G' @* N% _$ J3 A
SEL : OUT STD_LOGIC_VECTOR (5 DOWNTO 0));
; Q" Z) S# f! A) S
* C4 N$ H9 a# E2 }
0 V9 m! E1 o, q' @, P
1 F4 K( m1 h {0 u6 \) {7 v1 n0 @
end sedg7;
& [" i% C) @. `3 F3 m! F' ~
' j5 z4 F% ~, V: ~4 _6 }' m) K
architecture Behavioral of sedg7 is
- S) U* F& S% k- b5 B- z
SIGNAL Y : STD_LOGIC_VECTOR (7 downto 0);
+ Z4 ~- F0 I8 R% E! E! ?& m
begin
* Z: B' d/ T+ |
Y<= "11111111" WHEN Enable= '1' ELSE
! y0 V5 T4 v' ~9 A$ y2 L2 J$ T4 w
"00000011" WHEN X="0000" ELSE
0 W! o1 n* `( {# `
"10011111" WHEN X="0001" ELSE
* B1 f. ?1 X7 l' u+ L
"00100101" WHEN X="0010" ELSE
2 X: L' Q& D; M# `( s# o
"00001101" WHEN X="0011" ELSE
: G' b# u2 \* O( ?" q W
"10011001" WHEN X="0100" ELSE
, W& E" {* Z0 I4 c1 p; O- V
"01001001" WHEN X="0101" ELSE
3 S+ L5 n$ w/ l% f/ I) Y- k, s% i+ s
"01000001" WHEN X="0110" ELSE
; u8 c2 |3 K: J1 ?4 S5 \
"00011011" WHEN X="0111" ELSE
$ u L: ~; t9 U
"00000001" WHEN X="1000" ELSE
* T% {. a" B0 X0 b, E! a6 X2 S
"00001001" WHEN X="1001" ELSE
0 I } C' Z# v; b
"00010001" WHEN X="1010" ELSE
% A4 A0 ~0 h( c( G; E- Y* M% ~1 y
"11000001" WHEN X="1011" ELSE
: t3 f( U5 G) C( d$ O/ _3 R) h
"01100011" WHEN X="1100" ELSE
. {! u( E& J. y; q. Q5 l
"10000101" WHEN X="1101" ELSE
& F }" W1 Z# q2 ?9 Y& T! D0 ^' i0 H! ^
"01100001" WHEN X="1110" ELSE
+ v: e, a: H- h
"01110001" ;
0 ]: K. v1 G$ l" O. n
a<= Y(7);
1 P5 M) b* }2 ]3 O
b<= Y(6);
Y. n& R3 i' g: u+ z
c<= Y(5);
( F2 G1 L2 p* V4 r
d<= Y(4);
' z, H8 E3 ^9 Q8 Z
e<= Y(3);
3 r# J$ S! P; n) p
f<= Y(2);
' e2 q: D- r" c1 J( z2 X
g<= Y(1);
1 {0 s7 Q2 g5 P
p<= Y(0);
$ i5 [( a: h i: J* W, r) A
SEL<= "111110" ;
n: G3 ?7 o2 \
end Behavioral;
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2