|
一般dly'event and dly='1'是不能寫在case裡面嗎?
- n9 P. }, D1 N因編譯會出現以下訊息
, q7 Q0 d* E4 eError (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge
% b+ D4 e% y7 b7 e7 b* S* X" zError: Can't elaborate top-level user hierarchy# ]5 b5 c. m2 U# V1 R8 w( _* m- s
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
( x+ I+ K' L2 W$ c Info: Allocated 144 megabytes of memory during processing
" H# f2 b1 [" Z1 ~7 E) O. X0 O Error: Processing ended: Fri Oct 18 21:24:23 2013
# N. s( q0 d3 @% ~ z6 s Error: Elapsed time: 00:00:02, Y7 O2 q( l& q/ @5 q! t" w% }& W7 B
Error: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
4 Z4 K/ n5 s* }: S* [. ?2 Y! X, y/ Y& V
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
% l. ]; y& @1 ?$ [
8 {1 O( r2 B- ]) |/ h2 A0 A- I1 C3 l) \ \# C' K4 P
7 w" N+ Q9 V' |( q, |% Y8 C
3 p/ ~. `/ M; }' t9 n
Library ieee;
/ R& n0 @: \, aUse ieee.std_logic_1164.all;
+ X" o8 |7 w- I4 p0 uUse ieee.std_logic_unsigned.all;
& I) h/ F; u: TUse ieee.std_logic_arith.all;1 T# Y0 b4 m1 `2 C. I
: U) O5 }4 ^! g3 L2 S: W/ \
Entity CUB is4 e& s* l0 G7 u$ Z8 ]( {
Port(9 I6 ^; p( V; G" t2 `- l$ r
sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;" N) l1 e+ ^# Q, e3 P# r& A9 G; p* W
count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
1 a: {' n& V5 y* o+ V( Q$ ?);
]- N1 n) J3 ` E3 l0 Jend CUB;) Y0 B& Z( s2 C: O7 U& [
2 D' |, y4 G; @9 h9 w6 M) k
Architecture cub_arc of CUB is# u/ Y/ A7 z" z( i: N% B1 Q2 q
signal d : std_logic_vector(2 downto 0);) S+ V0 K9 L( w9 a/ r0 N2 |$ E
Begin9 B" Q" {) g/ H4 ^; J
5 d; i* A5 n+ d1 B2 w
proce1rocess(coll_manu,coll_auto,count_v2)( a1 }" } P8 W9 }% P
Begin
# f* ~! F* A, U& o% r if coll_auto='0' then
- k* l% ?: _/ l% r if coll_manu='0' then
: O9 x" _ l2 D if count_v2='1' then. ~! {' S- k- T0 X8 r0 o
count_clr<='1'; , A5 I8 O2 X& A: H' q* J* Z
else
7 N/ B6 H6 ^$ f5 P; } count_clr<='0';
2 Q% o' Z, R) G! |, R w$ O end if;% a5 y) ], ~7 m0 I, v/ n
coll_up<='0';
& i: j0 n X& V6 X8 I0 Y) ~ coll<='0';
5 g4 Y- t `3 f/ z8 y, h' ]/ g cold_pin<='0';
5 I6 |) l9 W5 U/ \7 \$ y. z$ b end if;4 b$ H; H7 R! g* m9 C( y2 q j
end if;0 w# Q7 X9 R8 H' c; O, `) r
) I- K# x6 k, D8 l/ @& @
if coll_auto='0' then1 K% u; |: b6 @3 p3 ?5 k: w: ]
if coll_manu='1' then
- i' z- V+ g$ u" C/ P if count_v2='1' then5 C) A% ?8 Y5 W( T$ U$ F9 y
count_clr<='1'; ?) H! T( s: b+ q2 L
else) |0 J2 q* Y1 ]; J2 ]6 O& q
count_clr<='0';% T' P# z, q( `, { S
end if;
5 B: d* K' j% N- Z7 w; m1 A1 x coll_up<='1';
! r& q& o4 Z( A' r3 m3 H, c) t, K+ N coll<='1';
. D( ?- {4 }0 ]: i$ [( K0 Q; z' P cold_pin<='1';* W6 v" c$ i5 L! h
end if;2 ]. G, N) j# i( }: X
end if;7 l; e1 b& a o% P
. a- i4 r" B0 j: U# v
if coll_auto='1' then
0 z: E6 `# v) `; q; C( z if coll_manu='0' then! V9 H6 v" ~2 W1 j) t+ S
if (sv_ctrl and count_v2)='1' then: d' h8 k' {8 W2 p4 g6 ?% z' [/ a* q
case d is3 n: |; m" _5 B: B+ t' C
when "000"=>+ n9 \7 O! }/ S4 o5 Z% r
coll_up<='1';
) h$ P8 h: C; o8 l7 O' y0 j: j' Z T1O<='1';
0 A8 f% O" i/ ]) B d<=d+1;. q. @% {4 I5 S, K
when "001"=>2 Z5 F- x1 l" k1 V% \. B0 Z
if T1I='1' then$ Y- [3 Q2 R& a: D4 W
T1O<='0';; s0 O" S% l7 F- U0 n: ^
coll<='1';; A# a9 q4 f1 s& S4 T9 T
cold_pin<='1';
# A7 U2 E4 Y A2 P T2O<='1';# V, U9 x: B& y& U& }* f8 R( L
d<=d+1;2 D, G$ |, |2 I) I
end if;
i2 B. D& e& ?! W; {" u* m1 K when "010"=>- B$ V7 o$ W& T1 P/ A# b+ O1 L8 {
if T2I='1' then
0 c- O; b4 G5 U! H T2O<='0';/ h9 L$ \& ?/ v1 m: i* n
coll_up<='0';! u- u4 s' y9 D' F6 @. {! ?5 v/ h- k
coll<='0';5 P2 L' f" s* H y! f7 N
cold_pin<='0';0 A5 p. L8 y$ b% P
d<=d+1;3 l4 H& X) d0 p, g9 T0 Y4 o( `
end if;
8 c( T: O$ k& M! s when "011"=>
5 E7 _! i& Q: L, r; \8 ]: W0 N if (dly'event and dly='1') then
* \" v8 w. T- C+ J8 |. T5 { d<=d+1;
3 c2 O( O6 R8 N: o5 M5 @ W8 q9 a end if;* P8 g2 G5 Y2 g8 ~( w
when "110"=>3 w1 }5 u# q1 |' E
count_clr<='1';
9 J( {- q. t$ j3 q3 \. ], J8 Z. {" Y d<=d+1;8 u q) }: K+ a6 J8 Z: y* Q
when "111"=>
. v0 ]9 e3 \1 } if count_v2='0' then
1 {/ {: f# \9 i& u" t count_clr<='0';
7 |( ~& Y5 x; z! c# R d<="000";
) P8 Q& b' h$ l1 @% a6 }: |: o4 V end if;
. I ^: \2 Q) @5 C; p5 H' ?* l when others=>null;! _ G! k; Z2 e
end case;
4 `3 H, M% i6 c+ j2 o0 z% }- H) K5 G end if;
J8 c/ h0 j% X# w' n5 D end if;
# h; r& A/ M3 i/ ^5 G2 x end if; r: G4 h/ B* Q5 h4 s# d, B3 N
* \3 _+ @5 T0 @- S j2 P4 x if coll_auto='1' then
% B- `4 w# s8 C3 q4 t if coll_manu='1' then5 z9 t9 c/ ]. O" h
coll_up<='0';/ o& U6 L) k) W& {; [8 [( N' I
coll<='0';
: d" L& i$ `/ ] cold_pin<='0';
5 Z% p9 Y/ j' i$ o end if;# h4 m) M. \& n
end if;: v* ^8 f4 g8 w! y& i" b. [4 z' ?
end process proce1;
( r! ^. X$ o- F9 C* Y+ q2 `( c/ y: g' W3 J8 P; [6 T% ~6 b
end cub_arc; |
|