Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] VHDL新手上路,程序Bug請教

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般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;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯; {; |3 j4 U0 ^' z" J' L

) h  j6 A& x0 r% O3 b- Y# l/ t$ I5 F; N7 J! P
Library ieee;# X% }. {& t2 d. B/ S+ W* R
Use ieee.std_logic_1164.all;
4 O! H/ c! [9 u; q# l: Z# KUse ieee.std_logic_unsigned.all;. Y$ p! M% m0 F/ l2 O" E
Use ieee.std_logic_arith.all;
6 E- E+ ?- }! t- V$ v9 s2 [% ^4 k, C9 n3 O5 |
Entity CUB is
0 Q8 ^* O) q2 j; DPort(
5 t" b5 ^) p# Y        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
- c3 B# J! o6 a6 P7 \4 F3 A; o/ n        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
7 G2 p; [# ~$ _* \- ?; v# u" }$ @' [);
7 u8 z" r, W+ S  R5 F7 E$ nend CUB;
3 h$ ]. `; U) S, z8 E4 o9 _2 k
; G8 \* w  X* u2 TArchitecture cub_arc of CUB is
3 C3 f: e. n! N% a$ J; R# Z) _/ H3 H  }# h2 r) ?! o+ A# J' \! h
signal d : std_logic_vector(2 downto 0);
3 x; c9 B8 g5 ?7 g
6 u& m( o- b( z5 o& f% P! I. lBegin  ( r+ s, B, P: G

9 ^8 `" f0 ^* N( @3 F5 _process(coll_manu,coll_auto,count_v2)( H5 ?! B2 q$ a* f

2 t5 X; z! R" S# i% G6 HBegin
' U! f. J" K9 f: I
5 \$ V3 w5 S; K    if coll_auto='0' then' ^- k/ b& ], B3 E) z2 R3 b
        if coll_manu='0' then& g2 @4 i& x. n' w- w% t
            if count_v2='1' then
# b3 Z2 j: k& j9 b1 F+ b) b  h                count_clr<='1';
0 i( g/ L* t* @            else
0 \8 |* ~, J1 M                count_clr<='0';! z" S' c7 @' H! N. [
            end if;
3 u* Z: _  l; N- p+ t9 f4 Z                coll_up<='0';
& S$ W+ C& _: Z$ A2 x                coll<='0';
% o% W+ V# s$ ?: a0 _: n! f                cold_pin<='0';
- W9 x# |8 b7 |" _# H5 J            end if;
: q* n1 w! T2 s+ v1 \        end if;
% x, ~) a; F" D" Y4 r        if coll_auto='0' then
- B$ y3 D0 m4 s                if coll_manu='1' then9 J9 V) b$ {4 g1 J& m2 Y
                        if count_v2='1' then
# }/ F% L- u5 C2 W7 r/ m% v2 H                                count_clr<='1';
' T/ H) }0 `0 U9 G' a7 n: n                        else
4 V1 j! O9 r8 V% N% k! M3 C                                count_clr<='0';& ^5 M0 e/ s3 Y  v5 A! Y' s
                        end if;
$ M$ o3 r" {5 a: v- k6 Q                        coll_up<='1';% A. a: K7 d# M' m! z+ B' |( j
                        coll<='1';
; J8 |% E& [5 j/ v                        cold_pin<='1';1 u% @9 _* w9 J9 ?6 i# Z3 k9 h
                end if;9 s' K6 w& ^8 a
        end if;2 p7 ]! P0 |7 d% ]: E
' A  ]  E0 Q, o* q( e8 h
        if coll_auto='1' then
; v  J# H9 W1 U- y$ X" a5 e                if coll_manu='0' then- [# Q/ e' {) _% p1 |+ H
                        if (sv_ctrl and count_v2)='1' then
( ?4 A: u" T; C, J, n0 G) @1 ^                                case d is) r$ p! F2 t! S8 c8 p
                                        when "000"=>
1 e5 I$ [& E* f$ l                                                coll_up<='1';
  V2 K- V( g- v0 H% u2 u! e                                                T1O<='1';0 j1 B) R( o8 k: d3 x% ?% n3 }' _
                                                d<=d+1;
" _+ R- L4 P4 Z! |1 T& Y# J                                        when "001"=>
& f+ p3 U" O$ M6 d                                                if T1I='1' then
0 L, l* C% i7 E1 F                                                        T1O<='0';  y8 n+ L9 ]" M
                                                        coll<='1';
. p. U7 Y: v* Q5 Y0 H& M7 u& i$ j/ i                                                        cold_pin<='1';
4 v- q8 u4 S& s# K5 h                                                        T2O<='1';
+ O) {& U. B! |; x1 H                                                        d<=d+1;
- s8 u1 S4 k/ z( S% U2 _  o                                                end if;
& H9 c  `8 F4 I' j. T                                        when "010"=>% \3 F: V: a( t: U! o$ w
                                                if T2I='1' then$ T2 W; `7 A0 ], C& t8 @
                                                        T2O<='0';: Q% ^. f2 j. h. d/ T
                                                        coll_up<='0';
0 F) \/ a( X. \- Q: d5 p0 I$ b                                                        coll<='0';
0 [" M1 i1 c/ ]6 [6 `- J" ~! v2 s                                                        cold_pin<='0';1 O  R- M  G1 K  H
                                                        d<=d+1;
8 X) N  Y8 x2 A: x  `                                                end if;
: h9 U# j% H9 `% n                                        when "011"=>
) c( {3 L% f0 r                                                if (dly'event and dly='1') then& M' [! d) J( s+ |# j& M6 i/ A
                                                        d<=d+1;$ D/ t4 E3 N- `" J6 e
                                                end if;$ x/ e' B0 w7 z: \  O6 @* n
                                        when "110"=>
0 \& W: I- p1 K2 e9 y; C$ v$ G, c' [- x! R                                                count_clr<='1';. @& i+ n* |) ?7 ?. Z
                                                d<=d+1;
* ~6 j1 F5 r" n) m8 R( G0 p+ [6 o                                        when "111"=>
$ ~+ P$ [$ S; s3 f  u; `# k                                                if count_v2='0' then: X% z0 K. x2 a" w
                                                        count_clr<='0';
: |! ?8 l0 ^, C* j' D  l                                                        d<="000";
- j* ~: C! w6 a4 L* F$ _3 q$ o                                                end if;3 ?$ F( N  z% R1 \
                                        when others=>null;% R* \5 D! N3 X- W3 u  M: n8 z9 [
                                end case;3 z1 g/ n1 U* g( @9 ?: \
                        end if;
0 t  [0 B+ p" ~( n9 {: ?                end if;
1 Z( u5 v- |/ F3 I. c        end if;
7 B( U  v- T, p2 Q6 ]7 [        if coll_auto='1' then9 T' v; v7 P# s; i- U& i
                if coll_manu='1' then
5 O9 [- E! e& L! Q9 D, y; n                        coll_up<='0';
' V, J% Y3 y* B3 U" e  [                        coll<='0';0 e! {9 x$ q6 H/ P9 L1 P. q7 Z
                        cold_pin<='0';
1 l1 N6 x4 K& J* T+ w+ `                end if;/ G$ v, s! j. w9 e& u3 H* K/ o
        end if;. D. s+ X, y, {: u( F' z/ |: |
end process ;
6 T# w) c- s  d  d, k/ q8 zend cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-6 04:06 PM , Processed in 0.105006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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