|
一般dly'event and dly='1'是不能寫在case裡面嗎? F; l0 t9 C3 Y/ `' A
因編譯會出現以下訊息( }) v4 j1 z+ A' x
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge g; y, @+ |1 E5 k B G/ k
Error: Can't elaborate top-level user hierarchy* B1 i% C5 P4 [
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
/ M7 G& C$ }/ y Info: Allocated 144 megabytes of memory during processing6 Q, h* o& x- j, ]2 l
Error: Processing ended: Fri Oct 18 21:24:23 2013( |* ^. c B' ^$ c
Error: Elapsed time: 00:00:02
8 x! W. f( Z$ o5 ]3 o, NError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
1 Y' D0 s% Y2 c7 H1 L# t8 x' j5 k# S. U" {4 x; F4 l
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!. s9 c9 D& p# d6 @
( ]2 J& B6 `2 b
Q6 q# b- r# e1 x
4 t) L" q4 V. A) |' i. Z0 c
) E/ z# B# g8 m- }( O" f, XLibrary ieee;
# ~, _8 N. |6 y6 k& F- R; GUse ieee.std_logic_1164.all;
% U4 |% ^0 T. \3 _ J6 t/ d5 b- y eUse ieee.std_logic_unsigned.all;
' D" S! K1 n: `; `9 U/ \5 FUse ieee.std_logic_arith.all;! w$ j/ A2 f' Q6 `; I0 b
- j8 J' q# b' J VEntity CUB is! [. Y. S9 Y: o4 I: g
Port(! V2 J+ g0 D, Y# H$ q& `
sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;' h$ g T8 w4 K" A+ Y% E
count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic) z v% B: I- _
);' V3 h0 U0 G2 ]+ w) _
end CUB;
$ Q( n3 H2 v3 c' n, p! ]: ~$ {4 ~. d9 H
Architecture cub_arc of CUB is! r/ N7 x5 g* e
signal d : std_logic_vector(2 downto 0);
7 X4 Y8 S8 T) c( S d) eBegin; `4 S/ g( z" |7 U. W E
: \; D/ U+ ]/ v# b# t Y" {4 wproce1rocess(coll_manu,coll_auto,count_v2)) b3 f |0 o' U7 X6 d
Begin$ ?; G" B* K: F& G% g8 R
if coll_auto='0' then: R$ N' O X/ n' C
if coll_manu='0' then7 K: p7 B6 K3 v# H) A1 W/ O9 x2 {
if count_v2='1' then: f, i: p1 a5 `" e- z& v9 F
count_clr<='1'; % O$ Y8 V8 \1 c3 M6 t: J( _
else
% U4 y& }+ m' \" f8 O$ p# H count_clr<='0';
! D) Q% X3 c0 u* _" Q0 s! | end if;: R' l( x0 J% a. J
coll_up<='0';
* Y7 g) C4 l4 Z1 D n g/ F coll<='0';
b' L5 _( L. _3 r cold_pin<='0';" W I4 h8 l# R. }
end if;
+ D! p9 M; M- X; L" \ end if;
$ E) @) V8 P: F2 ~' K4 w, _ / v1 ^ ]$ I' S- _) ~
if coll_auto='0' then9 @/ M, v' ^2 e' v! G' u) ^
if coll_manu='1' then" d4 k) k# A9 [1 ~# m" D
if count_v2='1' then
6 A! D$ q* ^* x! n' H/ Y count_clr<='1';
6 O7 r K- i7 L$ } else' P5 Y: ^; Q9 Z/ \. a# v
count_clr<='0';! M& M- ~: p6 C- U
end if;
3 j: `: e @; z$ s) L, f) L* u% q coll_up<='1';
6 t+ V9 m- W; s0 V1 m) g6 n coll<='1';' B) U& I" O& y' K( B
cold_pin<='1';
: V6 b( @, |, S1 ^, y' B$ h end if;
9 i: W/ _: ^: ]* w; A6 {( s end if;0 X, d# L' ]1 P/ F. R( f1 c0 c
% w- p, r1 T& y/ [, G% I if coll_auto='1' then$ r8 r& Y+ s* e6 Q( p
if coll_manu='0' then1 I! y# b1 J! A/ `8 @! A* {1 |: ?
if (sv_ctrl and count_v2)='1' then
7 {/ H1 I6 e3 X) S$ }0 h) }! x case d is! B; T( C, x! W/ z4 [
when "000"=>
: P4 [: k% r4 \. [. n, p# a coll_up<='1';) o% i( ~9 Z$ s* F$ g
T1O<='1';# E! P2 C" j) Y0 ?1 y& A3 X
d<=d+1;5 A; E" M/ t* q
when "001"=>1 x$ T) C5 u3 G. j% y b2 F
if T1I='1' then
! W. }; G8 z7 w! h- b/ E4 u: t T1O<='0';% A9 J( y, Y1 k6 c
coll<='1';
4 Q5 V% W. N. }2 V6 S) Z cold_pin<='1';7 v* H$ ?. w0 [9 ?. w
T2O<='1';" E% n% f. ]$ t% M7 ~
d<=d+1;
; e! G1 T- D$ c* A- ^* ~; [ end if;& t- X; H' A5 U1 }
when "010"=>3 X9 W8 A3 ^) d. ~7 |
if T2I='1' then
7 r* |* |$ q4 [ T2O<='0';
. R& R! s" V& x2 g coll_up<='0';5 T6 k! E- q( B. n8 \7 m J% }% z, W
coll<='0';
& G- l; p1 K O9 O8 s' a4 @" b cold_pin<='0';* b+ {- C2 @: j D& s9 P! u
d<=d+1;( F9 }- |1 B% h: Y/ j! \% s& Y" P
end if;
0 ]( l/ m& p2 \5 q1 ^, u when "011"=>* u; F( U, ?+ U" z4 L; h, X
if (dly'event and dly='1') then
* K* f: f" W8 M0 H7 C# [2 o- y d<=d+1;# t- T5 C4 a- b* i" S% J
end if;! J- P" C* b: W9 V6 \/ k( F
when "110"=>
* S- \2 M a6 B7 w count_clr<='1';
6 I4 j# k0 |$ E# u. U d<=d+1;
! |1 J( b, w, ^+ J when "111"=>0 B# I( e# [# y6 ?
if count_v2='0' then/ [; Y8 O! |7 |3 B
count_clr<='0';
( K( r% P) z0 @8 _) {! D3 P d<="000";! f5 r) w9 O4 M2 F) U8 O3 Z1 O
end if;# B* D( V+ O$ A* u
when others=>null;
# [* \8 G( \: [$ _& }* v: A end case;
9 B2 X0 p4 h5 y1 `2 L q4 V end if;- {: b: g k' `7 F! z" k
end if;3 U- v" A3 ?' Q# T5 B! x/ L
end if;$ Y% }6 X/ b2 H A9 ]
% n8 o6 o. r( M8 _; X
if coll_auto='1' then
, ?, J3 g ~$ h% D, G' j if coll_manu='1' then1 u. b$ `9 o6 `! g0 h7 U- V
coll_up<='0';
) F: I0 v9 }, s' y T: |, U0 A coll<='0';0 U/ q) B) E4 f/ V
cold_pin<='0';
8 h' e% q) {7 @1 n" A3 t end if;
+ o8 j: r. [# W2 M+ L; J' g end if;
: [5 N+ O3 p0 pend process proce1;
4 w" a2 p6 p5 s6 ^' F
- J) I) f" i. ]end cub_arc; |
|