|
一般dly'event and dly='1'是不能寫在case裡面嗎?
- |! E3 p3 L/ q j: Q0 B因編譯會出現以下訊息
, I* T1 ?' I# X2 wError (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge# K! m+ G$ d8 Y. T) H9 o3 z
Error: Can't elaborate top-level user hierarchy4 A1 H( A) H R& i
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
$ t) U/ R- _3 ?) z- k Info: Allocated 144 megabytes of memory during processing: i& [; q4 {7 g4 b O
Error: Processing ended: Fri Oct 18 21:24:23 20139 O% S6 h: O( {- T; U
Error: Elapsed time: 00:00:02
K" \# ]; q% u& B# |' G" |' r1 ^, NError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
* E0 r) t- _4 }8 X. ?6 L5 F: H7 \1 G! ~& H5 v3 ~
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
) e6 W) _) e3 B" m3 J2 o
6 Q: C Y9 T9 `" { t, t. R: L6 S/ v9 U" O, N
1 x' C$ o: H( I, \$ F& C4 l
/ S) [% `* T$ m3 oLibrary ieee;. Q3 v0 M- P8 `5 V& Q! A
Use ieee.std_logic_1164.all;8 ]$ w6 y5 h" A* E! u* l
Use ieee.std_logic_unsigned.all;% i# [( `2 ^$ ]) I
Use ieee.std_logic_arith.all;
" M0 B! ~3 I, C( G' N0 ^1 p" j: Y2 }. ~
Entity CUB is
8 Y7 |& S3 \) E' ?Port(
6 n3 o" D3 M$ H8 T- K# T2 I4 { sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
8 `2 |2 J' P. m/ P- p& p count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
" S2 k! }) H% D& Q8 A);# |& I5 t# N% z ?7 w" W3 G
end CUB;2 B# X) l. E0 t% v
# j) } u" ^6 _; Z, EArchitecture cub_arc of CUB is
4 t* q/ U% P( b8 @ \/ x, u1 s1 v3 b9 dsignal d : std_logic_vector(2 downto 0);
% ^+ |/ ]+ p9 ^: L& HBegin
$ Y8 m/ [; \! H; F% U/ M, S, J5 ^0 K+ Y z, ?+ E
proce1rocess(coll_manu,coll_auto,count_v2)
% H7 a1 p- v( w8 l! c! h' QBegin7 L+ U$ @6 |7 y* ] Y
if coll_auto='0' then i4 N6 _/ b& U- O! ^
if coll_manu='0' then% ]' z1 [9 |8 h+ u# V
if count_v2='1' then0 }( v2 D: e0 N5 q8 q
count_clr<='1'; 8 H( h, @7 b) I& r/ r
else
" n4 O$ d% p( X count_clr<='0';5 ~# I% W6 J9 b. C1 W+ i3 K! D
end if;
3 E) E8 }) {9 A- \ coll_up<='0';
0 S4 N; X0 o5 W5 H! ~ coll<='0';) z" M$ V3 L- E3 H% q& n- q
cold_pin<='0';# C3 A9 f# f4 @
end if;1 s" p% u% M3 |& V3 I
end if;; V6 O: p* V0 E3 M2 Q' m
2 F1 w1 A( m* z. V& D3 P' c; v- w
if coll_auto='0' then
0 W9 Q: p( p) U" D, l5 p: P$ A" p if coll_manu='1' then
K1 C% V& b8 ~$ i: N/ H s* q; L8 ~ if count_v2='1' then- h5 G" r2 P( t7 U" [+ d, f
count_clr<='1';
2 V V/ [/ s. r6 q, _1 d( H0 E else- ~& q4 z2 R3 `1 p
count_clr<='0';( J* S" C4 O* I( t* d# r
end if;
+ h! i. x' s1 U3 _% c coll_up<='1';
: I7 h+ [& [% ]; \; C coll<='1'; D/ m s) ~) n5 {
cold_pin<='1';5 V; T* K: O; J& N
end if;
0 z, m# i1 z: s7 e, g end if;
# b+ \/ p$ C+ {- ?& B3 v+ J: ]
2 ~9 A! @6 y0 j if coll_auto='1' then. d8 m) ?4 g2 [$ r2 z$ l
if coll_manu='0' then
( c B; I9 \; ^& E8 r% S if (sv_ctrl and count_v2)='1' then) `& w7 y0 u5 B1 h8 X0 m/ r
case d is
2 Q. t# u {. J) V- N& x0 c when "000"=>
+ J/ N+ W0 I) m2 z) t% N1 T coll_up<='1';9 r( _3 |- [7 g# F: K9 k
T1O<='1';/ B& _) r/ ?6 C
d<=d+1;% H9 R" Q+ C3 C& g# `
when "001"=>% W2 G) Z4 o; {0 F
if T1I='1' then5 f9 P) E/ u1 m( o& H: _# n Q
T1O<='0';" X8 `* V6 X, x$ I
coll<='1';
) r8 {$ d( U! o0 n L6 v1 G cold_pin<='1';
0 @, r' h7 Z; [ T2O<='1';8 k' J1 D$ O' Z
d<=d+1;
- P. G- Q7 J( f: D R' ] end if;/ r9 R! r/ q i. m
when "010"=>0 f8 \3 R+ k, b
if T2I='1' then
( X* \$ w: o$ { T2O<='0';
6 a0 M6 S$ m) _3 w3 {8 ^* { coll_up<='0';: F) Y! F2 Q2 t6 U3 u( H: u) x
coll<='0';
/ d6 H- }. j& `; s) ] cold_pin<='0';0 N! X. M; e% @
d<=d+1;
1 _9 d. y7 z! y end if;- `+ d: Y" s2 ?. {7 s. U5 U
when "011"=>: x3 X( V7 ^9 C5 Z/ f# w! k
if (dly'event and dly='1') then& w' @$ G2 d" w! e4 l* {5 \/ I
d<=d+1;
- c' F/ N, F: r7 u0 i0 B3 R$ D end if;% W# u0 `- X+ O) O: U4 l9 A
when "110"=>
' o+ ?" G1 R, I0 \' L, \ count_clr<='1';! a" F5 r* N8 l( f& J/ X9 Z
d<=d+1;
; C- R8 U0 w7 W% ^ when "111"=>
1 k1 T9 o# W- h6 F$ ~1 g/ ^ if count_v2='0' then' p) N' i9 ?$ Y2 G. F1 V8 K/ `! t
count_clr<='0';! ~ I, q+ }+ {8 M8 v: v B- p
d<="000";) q, p, H& T/ P5 s, g2 e0 d
end if;; ~- h5 y2 b$ G: J
when others=>null;( s& g D5 v8 `# M2 `# R
end case;
- `0 `, g! V2 F. @ end if;+ H2 }: w' w% X8 }0 A# _
end if;0 K! Q0 R) O: E, T! B1 U
end if;; m5 Z0 P0 T" \( T5 v2 Z" A. j- w
% C% W# z3 I! p6 ]% o if coll_auto='1' then
`) d" R* q: k- T! L1 F/ F if coll_manu='1' then
' Z) c$ K" B9 @3 B coll_up<='0';
. s" S" \' ?( U2 _# k coll<='0';
3 y" \# g+ ~5 ]/ Z( H6 ~ cold_pin<='0';
8 u' M* s+ i8 {6 d' k8 W end if;
: V* ~+ m! {- w( G end if;
! D7 B9 q1 u. d9 Gend process proce1;
( E( g1 ^# b- M0 m2 v& Y2 A
+ j2 }% g2 N6 F" K/ f, m) yend cub_arc; |
|