Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
7 e: r2 A. l  F: m因編譯會出現以下訊息# Z% v% B0 ]& d/ O" F8 [' \
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge
% @8 u( w2 q' }1 \4 P$ T6 a- wError: Can't elaborate top-level user hierarchy. Q- M* f5 T! a% w* n
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
9 E" Q' ?- o5 v, x& }2 T2 b        Info: Allocated 144 megabytes of memory during processing
7 Q5 ^0 |1 n$ i" n4 v        Error: Processing ended: Fri Oct 18 21:24:23 2013
1 `( \/ d3 j: B& Y. u8 y        Error: Elapsed time: 00:00:02
  u9 h% L) S8 ?( B( r( J6 uError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
  b& z0 Q5 z' ]$ Y4 N) k  @, p+ W  ]4 [! o+ H" T( V
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!  c5 k, B0 A, Z5 J9 L- `9 J
( c- Y" l' `" x) F7 o0 s) }

' w) W* g, Q7 w' M% E. `: t) E- O
& Q1 N2 N2 L7 s1 a
Library ieee;, k4 }! ]) K7 |6 \; j: z
Use ieee.std_logic_1164.all;
0 |' Q, }" M- m0 y) U; QUse ieee.std_logic_unsigned.all;
6 _) V' I& Z. S1 {# `1 KUse ieee.std_logic_arith.all;
/ I0 t7 ~, i- Y7 j3 h# ~! p. ]
; B" u6 ^% r2 d: x6 cEntity CUB is; l% h4 m8 r) y/ O
Port(
2 q, X- E1 y- A0 n3 l. Z        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;, s) P5 m' U: Z% O9 l2 E: l
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
* O0 N& l$ [0 ?( ?: n5 i/ @- k);
, `* ^" h( ]- Kend CUB;
: R' P* c1 `5 ^- v6 P
# M- g+ H+ z( O: x/ uArchitecture cub_arc of CUB is# z6 b1 m+ Q+ o1 }  i5 B6 K
signal d : std_logic_vector(2 downto 0);. I6 P! d. _) ^
Begin
% e1 O) L2 t0 h7 S2 f9 }9 j- A5 H1 W. D& y  r! y
proce1rocess(coll_manu,coll_auto,count_v2). S; Y; T' e* H9 t6 z1 l
Begin: O# o( \$ B. a3 d; t
        if coll_auto='0' then
6 }% |5 _* Q0 L: Z+ c' e7 `                if coll_manu='0' then, l9 t& D: \7 M2 G. ~9 [& V& {7 ?. G
                        if count_v2='1' then
# |; }6 A" t, W8 u$ z1 m6 K                                count_clr<='1';
% {7 ]' Q. g  c, G                        else9 _4 t' g. V, c7 F
                                count_clr<='0';
/ b: s% G" D2 p                        end if;
) v! y( k- C: y                        coll_up<='0';# S, S4 {" N5 A: @( \- y: i
                        coll<='0';
3 l4 c/ ]0 @) u$ j& A6 m& L                        cold_pin<='0';
5 a) o! D* ^- ^- J' B% D  V2 D3 W' O                end if;7 Z  Y- ?. O1 @2 v: q9 P
        end if;3 z$ u# G6 u6 A
        1 A, @7 F4 J& X7 f% a2 ?2 [
        if coll_auto='0' then( A  x0 D- `; f9 E7 A
                if coll_manu='1' then
9 u/ d" q) A, l" N2 ^* K# c% g" p                        if count_v2='1' then' f. m9 p8 C" j4 z
                                count_clr<='1';
9 f; F9 {) e( @2 F8 l* \: R* J0 a                        else- V  q, I. j& f) y# \  K
                                count_clr<='0';7 T2 O6 U9 G- Y! A; W$ W& p# N
                        end if;: Z2 i( g; o8 q- [4 a- W
                        coll_up<='1';
& v8 g8 B! ^9 I5 }5 s                        coll<='1';* f5 U7 B# V% i2 b5 ?& p7 ~0 r- K
                        cold_pin<='1';
4 o6 v' d- P- U% ?4 d+ E+ `8 k: o                end if;1 Y9 A. H- _+ ^- e* \
        end if;
% x% l+ _" j% t, |# r       
( N7 S) e! r) \        if coll_auto='1' then
; e% j+ i$ D$ N* [' s# M- M( P                if coll_manu='0' then9 d. \- V8 {8 @2 h
                        if (sv_ctrl and count_v2)='1' then6 b* p' x  ^+ P6 A
                                case d is/ `' T, x$ f; n- O+ O
                                        when "000"=>
0 r' E. `1 s7 k) N                                                coll_up<='1';
& {* Y) _+ w: d2 j4 \                                                T1O<='1';
2 V- k" }3 D! u0 ]                                                d<=d+1;
0 R! S! ]2 C6 l3 n5 u                                        when "001"=>
% m$ r6 q$ e+ ^4 g                                                if T1I='1' then8 U! L/ Y5 R9 d! Y0 u1 o- L
                                                        T1O<='0';
- d# W- ]" r3 _0 X# {                                                        coll<='1';
6 R4 G5 I. A; W8 F( J# O: z4 M                                                        cold_pin<='1';/ A. I6 o: S) L! {! k
                                                        T2O<='1';
( U) g1 P, d/ Q9 T+ S                                                        d<=d+1;
8 J9 p4 I# I  m5 V! I: ^; S9 k8 c                                                end if;
0 x7 }/ c% P& O% m$ {# j4 z1 H                                        when "010"=>& o6 P* M4 h" I$ k' \
                                                if T2I='1' then
  J0 i3 @+ T0 R# f                                                        T2O<='0';
2 O2 p+ X, O8 `                                                        coll_up<='0';
6 f0 ?# ^* \" I8 `                                                        coll<='0';
- l. V& a/ Z7 p3 L2 S: R                                                        cold_pin<='0';
- n, ?; Q$ ^( ]                                                        d<=d+1;; F- ^( Y% |; x: V" @. Z# \! J, C" p
                                                end if;
$ \4 x0 u$ }. v                                        when "011"=>6 @" r! N" [% _2 g1 l% f
                                                if (dly'event and dly='1') then0 W& G/ a% v: t$ M3 J
                                                        d<=d+1;
3 m  z- M% a, F& \* J                                                end if;
, j1 V: H; e- u/ V3 v5 y5 w                                        when "110"=>
5 C. S, F2 V+ ]* D$ q/ h                                                count_clr<='1';& p/ Q1 S8 J& k* I8 }  u
                                                d<=d+1;
, B( _( {, b# q5 I5 `9 L                                        when "111"=>+ X; V- l$ g4 f  }! ?& B7 \
                                                if count_v2='0' then
, m) `+ _( g9 d' X                                                        count_clr<='0';+ t3 p$ I! G+ \0 w
                                                        d<="000";$ V" z- Y' u& B, I) ?8 ?& f
                                                end if;
" x$ H) ~) a, D                                        when others=>null;
% U, ~1 \7 G0 @& W                                end case;
, v; T4 Q% }; F! F$ z                        end if;
' i8 A$ Q9 a; {: n7 N$ d8 s$ Q2 f                end if;$ z4 N0 ~4 N8 H8 c
        end if;
8 c: a1 J8 \4 Y8 F' w; Y! {       
- x* ?$ m' A# }( _, T( T) ]/ A, s        if coll_auto='1' then
% H& q5 z* B' M6 w; ], J                if coll_manu='1' then* g- @" R5 C& P1 r* d& t. L
                        coll_up<='0';! R, K& m$ ~  r' D( d
                        coll<='0';
+ v7 v: f( A" \. \% K                        cold_pin<='0';4 Y7 b7 ~% D0 ~: L- M
                end if;" ^. O. M% e8 [
        end if;2 N9 q, r/ \- d: v$ E" _
end process proce1;0 u: }7 z0 r/ A
$ _- q2 `* l$ ~* v
end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯
. i7 ^' F# z+ O' \% U$ n
: {) ~* o0 \- `/ t! W- I+ j
; m6 `& r2 O" `: M6 TLibrary ieee;1 F$ }- X- W) y6 i. \
Use ieee.std_logic_1164.all;6 \) a: t% v* e8 _% i. s) [
Use ieee.std_logic_unsigned.all;+ j5 @, Q* \, w, B/ X" [+ U; |
Use ieee.std_logic_arith.all;
! f  Y+ |9 ^" ]5 s& |2 j! ]2 u
Entity CUB is
7 x0 I3 n7 X4 ^/ k  g( e3 q9 EPort(
" V  d) h+ G2 `' w9 R5 K        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
' x; k: z0 E3 w  p& }$ T9 [0 b        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
6 Q: V& |4 x/ G! O);$ F. g3 ~6 a; g0 H4 a5 B
end CUB;% V3 `. }: h  P$ S! l5 f6 k
0 e2 L/ z7 H2 O  C
Architecture cub_arc of CUB is
  N, W* _. _9 @6 j
( P/ y7 B; l8 ksignal d : std_logic_vector(2 downto 0);" N, i1 D# K# s+ N$ O

' ], H/ r+ _, U# v2 ]7 [+ DBegin  
6 `- U" y& ?/ ]- C5 ^& S$ h  H
$ H6 \/ ~0 O: Q8 M# e" J) Wprocess(coll_manu,coll_auto,count_v2)
; k$ R/ l+ k6 `, E2 d" V% r; P7 b$ X# A3 X8 k& d; d' f
Begin: |, B: q0 H  H; O
6 U: }5 c/ y& d5 t% }4 a$ k
    if coll_auto='0' then
3 M2 f/ n- y+ S9 ]4 r$ z# T        if coll_manu='0' then
9 T1 h2 ?' A: S            if count_v2='1' then! X9 k3 ]3 \: E1 M$ h
                count_clr<='1';1 D+ U3 T* H0 _+ V* A. y! F% C
            else
- H) O# J! a, O% |7 s! o4 ~' k8 W/ `                count_clr<='0';
* M+ a: [* H1 \( r$ h; q            end if;
. a) H# b% G, ~) w, ]3 r                coll_up<='0';
! v1 ?" I. ~" F                coll<='0';
% S3 j# K7 o3 ~! w9 Y: k$ H                cold_pin<='0';2 c) O6 i) q5 X* A4 x. I3 J
            end if;
0 w: ?& c7 Y( c        end if;
0 m& \! P2 _( {$ D# ?- w        if coll_auto='0' then
; O8 h+ X  T: _                if coll_manu='1' then3 H& G/ x  }" F' u6 V) J3 W
                        if count_v2='1' then
+ a7 V7 c  _& u' m# C! |0 h1 z$ A4 {                                count_clr<='1';
  |6 J9 e6 U. j+ w. {+ M* \' I" @                        else! f, k1 i4 T9 Y( Y$ Q+ R, |1 U/ X
                                count_clr<='0';# o7 R" K6 p, L8 Z
                        end if;$ y$ J' b3 E+ t4 s' E; I
                        coll_up<='1';1 a, k& @1 a1 V8 J0 _( y( ~
                        coll<='1';2 C% A' P, [& R
                        cold_pin<='1';" c2 G0 m( [/ C# O
                end if;* ?& U0 k" f1 [8 k+ I# q
        end if;
$ h- R+ \; @" K# m0 q  a" T( u* c3 X: Q- B  W
        if coll_auto='1' then
8 X/ @$ e6 F5 j( G( u& I# Q                if coll_manu='0' then
' `. m/ j7 Q& E8 z3 }0 g. d: H                        if (sv_ctrl and count_v2)='1' then2 h, P& e% Z6 w
                                case d is- l, U; ~6 D' ?/ ?
                                        when "000"=>' x% Z( W; {8 [$ h
                                                coll_up<='1';1 q# T. H: g' w' B1 e
                                                T1O<='1';" t: o1 w1 {: O
                                                d<=d+1;% o% j7 l3 s: C1 N
                                        when "001"=>
, ?6 ]+ K1 K* R6 c' Z) W                                                if T1I='1' then1 D" F% A( \" P/ ^$ O$ Z7 g7 Z6 \
                                                        T1O<='0';4 p1 E0 T' C& n& j, n7 i) ?
                                                        coll<='1';9 C4 p2 V7 o6 V! h2 a
                                                        cold_pin<='1';$ ?# W. a5 h8 S7 b: \9 |$ G
                                                        T2O<='1';
; p; S) f1 N2 H                                                        d<=d+1;
9 n: r* i9 R$ m4 \" `                                                end if;( j- N3 v; F3 x8 q: W8 [) \2 d
                                        when "010"=>
2 b: |  W  K% H$ _& W5 Y1 j                                                if T2I='1' then: m' Z# a& x& Z, R, v
                                                        T2O<='0';
' W! g: r: J( ?, q3 o# t8 z                                                        coll_up<='0';1 a0 p3 E4 Z3 Q/ k5 I# L* l. y
                                                        coll<='0';
( a6 r& Z! L1 S' n                                                        cold_pin<='0';; @  c( G' O- d. x% l/ m& `5 ?0 u7 G5 _6 i
                                                        d<=d+1;) e5 ]5 t: w/ I6 J, f. Z  V% d! {. C
                                                end if;4 A& X& {4 y+ z8 V4 j
                                        when "011"=>  x2 [0 W/ T: T7 a5 M0 s. k
                                                if (dly'event and dly='1') then* x  C7 b" n0 ]* e
                                                        d<=d+1;5 t* D, v+ _) _# ^1 m( ~3 @* j
                                                end if;  H! J7 N( k% O9 P/ F6 H! o
                                        when "110"=>
* i# B7 I4 ]) W) ]  U, a$ H* L* h2 Y                                                count_clr<='1';
3 S- \. L& g% Z0 T7 w  L( }                                                d<=d+1;0 o4 C- t: p8 F! c8 J# V6 V2 r
                                        when "111"=>
; J8 H- S. X8 f: K8 t" e                                                if count_v2='0' then
, g+ V! a# T9 n! o; ~% B- @3 m                                                        count_clr<='0';
  s2 u. p! r4 X6 W/ B                                                        d<="000";
/ h+ \0 G1 M: Q' o& i                                                end if;
. M) ^9 i- p$ _- `                                        when others=>null;2 S% Z& e9 f0 d2 c9 Q3 ]* b
                                end case;2 {/ z$ J2 ~! W$ a! S% Q# j
                        end if;! U: z' C: f1 U' l3 u
                end if;! J- T8 h. K2 g/ l
        end if;; m( q% j2 }5 D8 y1 E$ s' ]) W5 O
        if coll_auto='1' then9 }, U- q7 T& v  f! h
                if coll_manu='1' then
6 D1 m% H2 B' U- D8 {$ y1 b                        coll_up<='0';
+ X4 s  F: ~+ v/ W# d# z) A                        coll<='0';
! B. ]* M. [- A' P1 ]4 Z                        cold_pin<='0';
7 n5 i, n$ \9 t) B. u                end if;
8 e$ V# n3 o. f        end if;
+ b9 I1 t5 R( h) [7 G/ aend process ;
; u7 o+ x! K! I( T6 dend cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

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

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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