Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
9 K9 d4 D$ O8 r/ i' b3 u: |因編譯會出現以下訊息2 N5 U5 }$ ?6 e) ]8 q, |
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge& g4 Y+ j  g, C% N- H# G% ]. j& G: I
Error: Can't elaborate top-level user hierarchy* [# A! W9 N: F9 S+ ^; D; H
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings5 S: w. l& D9 v" b4 S% N/ l
        Info: Allocated 144 megabytes of memory during processing
+ c# G1 q# |+ B! `/ k, E        Error: Processing ended: Fri Oct 18 21:24:23 2013+ E9 h1 j5 L1 D/ C
        Error: Elapsed time: 00:00:02
( K! C+ k/ l9 o  l6 Q$ ~* X5 `Error: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
1 O/ n! g: O2 H3 U1 F, L6 u- T% I9 a0 @& T4 n* n1 e
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
( ~# H: c4 I2 w$ @5 y$ G# g% |4 P+ s' z- V3 {

5 W2 Q# I" _& c2 B" N( n7 b8 ^3 T7 S

/ D! \: M+ C% ]2 u: P0 ^Library ieee;# V: l$ n" g/ `% E
Use ieee.std_logic_1164.all;4 G- U; f: F: h3 j
Use ieee.std_logic_unsigned.all;
# b, @* u' m. w" b2 W: D2 K  YUse ieee.std_logic_arith.all;5 X& _; W9 H1 \( ^4 ^  s

: \8 z( v! Q+ |Entity CUB is8 s/ R! E, {! a; {7 P1 \' o+ {0 O, ~
Port(
7 d: R6 C! ?- q$ n        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;$ ]& O8 g5 p* I1 x
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
" {( c, y7 ~3 r* x( e);
2 T* K( v# G' kend CUB;
6 u7 h, f3 R6 E* W/ D3 d" T; D9 n# @% {8 Q
Architecture cub_arc of CUB is
- {) f4 }7 |  P" w6 ^$ @5 gsignal d : std_logic_vector(2 downto 0);" q  E9 T/ Z3 k1 V) f6 m
Begin
* I0 Q; R9 R# ?+ I# G5 y" q" R$ {# E  Q
proce1rocess(coll_manu,coll_auto,count_v2)/ K7 h' n+ d* o4 E
Begin
) o6 l8 i7 n; ^  s( D1 T' q% b        if coll_auto='0' then8 o4 U% B6 w2 S
                if coll_manu='0' then! p7 D2 z6 l9 p3 F3 O: X2 T
                        if count_v2='1' then
; Z% ?& e* Y; K! L                                count_clr<='1';
- w# s) n6 \6 _8 _                        else
5 t7 i! w- z& ^: c1 H                                count_clr<='0';
+ Z: s7 f) m" z* S: U: l4 z! a' ?                        end if;! U' b3 A8 @. o( P; G
                        coll_up<='0';
8 W" j% S, U" S4 U3 d+ g                        coll<='0';1 W. P2 {) Y, e- l
                        cold_pin<='0';+ k/ O5 m% b% D8 y. ^2 K% |
                end if;
6 F' Y  V- d$ e. j        end if;9 O6 r2 U0 c  a
        1 z* J7 A  h3 N# B& }: a
        if coll_auto='0' then
$ [, n- {9 l5 z                if coll_manu='1' then
) n2 T* h1 j/ n  b* T# p* L( O                        if count_v2='1' then, g" `) z+ ]/ @( H" T) ]
                                count_clr<='1'; 0 p# U" L5 c2 f& W: E
                        else' T6 h8 R& t& a  Y# A- |. \( \/ |
                                count_clr<='0';
- f4 n$ o' W$ Y3 L- E1 ]( h                        end if;
) ^* c% ~  Y# |% u8 l                        coll_up<='1';$ f" h: M2 P% V1 }3 h
                        coll<='1';
" p, C0 k$ f2 ~, N5 P                        cold_pin<='1';4 L0 H5 C9 M6 E# l
                end if;
- k/ a& }* ?. ?' J8 q: r; B        end if;4 ^! d* I2 f- f* d' v
       
% I- d9 a1 J" b! p# W$ Z4 ?. p        if coll_auto='1' then2 |3 y2 k6 n- T, H$ P7 P6 U! n
                if coll_manu='0' then+ X4 z0 B4 k, |$ u
                        if (sv_ctrl and count_v2)='1' then
' [9 J7 Y3 i. z$ l                                case d is# v; ^) M- [; Z( |* s5 a3 s7 J
                                        when "000"=>
' E( m% T9 ^  x" ]                                                coll_up<='1';
4 h5 D6 A  Q* L+ B$ T                                                T1O<='1';
" D3 u! E! I* N                                                d<=d+1;
6 @$ F) A) U& v$ v4 e( Z% ^                                        when "001"=>* z1 T# @7 B1 Z2 {- y& y
                                                if T1I='1' then
, _# L& O1 i9 }. x$ |0 P                                                        T1O<='0';
; _/ R4 I1 Z+ s6 U                                                        coll<='1';
6 K$ o/ Q; d  V                                                        cold_pin<='1';- S- j) [' t$ o! L( _1 l( n
                                                        T2O<='1';
% C# }: b* k' Z& k( p& I                                                        d<=d+1;
! \# M2 ?: t, q( Y! `# A                                                end if;
3 ^# v3 r1 l3 M1 {4 b) `8 e                                        when "010"=>; }( t5 B+ ]) _* o+ q, S
                                                if T2I='1' then
; x! M" [7 a# q9 A                                                        T2O<='0';
* q& K: o& |: }- {5 Y                                                        coll_up<='0';( Y- u  j3 c. J
                                                        coll<='0';
) g4 ^2 v% H) P* B8 |/ p7 ~& {4 U                                                        cold_pin<='0';- ^% ?/ U5 E( Z7 c
                                                        d<=d+1;
$ M/ I, J% a9 a7 Y" e2 |7 L& _                                                end if;
* U. l5 V" O" s                                        when "011"=>! T  f' X$ d+ v6 @
                                                if (dly'event and dly='1') then/ M+ W$ ?! h. F+ b
                                                        d<=d+1;
+ f2 T3 X- V' O( r                                                end if;- F2 J( Y' y4 x9 T8 M
                                        when "110"=>
1 O7 k( O( {' k' a. \                                                count_clr<='1';  u  a( I) l7 ~3 `9 K5 \/ n
                                                d<=d+1;+ h4 x* Z# ~4 u2 \& V" r
                                        when "111"=>% z7 r6 c7 `! V4 }( k
                                                if count_v2='0' then
& [% c- I, f3 A# m3 M                                                        count_clr<='0';
9 ]; }# Z( h2 f" }3 X( W, R                                                        d<="000";$ b  Y$ j9 E9 X# R3 \
                                                end if;3 o# t: [5 t% I8 @" u5 f5 [7 z& U# j
                                        when others=>null;" W, T, L) [! E/ B5 v
                                end case;
% o' ~; F( u' W5 I( j2 T* h& h                        end if;( b/ h3 L; [, A/ P4 F: `( k4 z+ _0 u
                end if;
2 U# u4 l) Z, F4 j        end if;
3 \) m5 F8 D0 ?( O" F5 c9 }7 Z9 a0 o        ) g2 j- Y+ n! [" `& a
        if coll_auto='1' then
% t) a8 |2 B0 m                if coll_manu='1' then, o5 r4 Y$ w5 i7 r3 @% c0 ]
                        coll_up<='0';5 M! Y3 t$ H4 u9 d
                        coll<='0';
6 Q; O' Z3 Q+ Q! T" O                        cold_pin<='0';
+ a$ [3 g! h/ E6 y" ~5 D                end if;
: G9 U  s1 g$ ?- G& j7 j        end if;. Z: X6 l& O" ^
end process proce1;: X1 g" j/ H; ]- o9 f0 {# n
2 \4 e) o& [9 X# c1 r
end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯
1 g' C+ E. N) h5 n1 J5 d$ t/ X
9 @$ J- Z& e. o- w  e
% a/ {+ z: U2 _% ALibrary ieee;
  {1 Q. C5 {4 aUse ieee.std_logic_1164.all;
! V( i+ u! z! Y& xUse ieee.std_logic_unsigned.all;
, ?8 K% |' a1 v$ r& u0 oUse ieee.std_logic_arith.all;7 |' L+ i. L* A  w% w$ @# V3 `
6 `% T5 Q9 O8 T0 Q
Entity CUB is
- x; q" \2 n% U& b& d4 v$ a* K9 l, HPort(
; A6 c1 I6 @" Y4 B: J2 T. x5 F9 E- F        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;1 a8 i7 H4 ]' V! r$ _  I: V
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
+ @5 u! X9 h" y" _9 C* O* u; g3 d);6 R: ^! j2 ?8 I; W. O" s$ ]
end CUB;
* H9 [+ K" _8 S% f- d. B' u, [7 b' z/ M( ]4 I
Architecture cub_arc of CUB is. I! Q: s& m- [( @

( |/ }/ q5 Q* g7 Xsignal d : std_logic_vector(2 downto 0);# c) x# D( s# c& V- b
( G, M- p4 z4 ^& W( N
Begin  3 [. F1 X! c  {+ W: P
6 [6 \9 V! |+ h# r( h7 a) G
process(coll_manu,coll_auto,count_v2)4 l2 b- E4 m; }
6 x  W9 U% O: [' ?4 B8 y( l( A3 t
Begin. H0 j" J) I0 E# a
( a+ @6 E- y% J5 y+ m+ w
    if coll_auto='0' then
! V9 [' J+ n" c8 H" d* Y        if coll_manu='0' then* X( O% D3 ]' h" K0 b) h( M
            if count_v2='1' then- r9 l2 F$ P9 s; {
                count_clr<='1';: D' _$ b% M0 Y% [3 C' v
            else* e; e: ^5 Z* e
                count_clr<='0';
6 N% n$ u- V4 O1 ^& d3 y$ {# B+ o& A            end if;
, _( V6 e" [& b4 s: L                coll_up<='0';; n' Q! c& c$ V0 ]+ B! i7 q
                coll<='0';' Z/ L6 `6 g/ H4 F
                cold_pin<='0';1 g8 ~" p; C9 J' [
            end if;! [" f0 P, W: B7 W! `
        end if;1 O9 l) D6 x, ~
        if coll_auto='0' then
* S. R8 e; {: B0 v                if coll_manu='1' then; I$ M  |7 Q- `1 o+ @: B6 C
                        if count_v2='1' then7 z& M, E3 C3 \, }0 H5 y6 m
                                count_clr<='1';1 f5 ?' F7 j- ~* Z9 R9 T, g
                        else
; `) ~  Q5 J- I3 E4 i- P                                count_clr<='0';
% g$ V9 T- W, n: P  d                        end if;
  F' u( A! g7 ^                        coll_up<='1';, W8 m# @$ D3 W8 |7 `3 w1 B
                        coll<='1';5 y4 |# F% a! ]: K! B" A
                        cold_pin<='1';
. ?5 h1 Z* m9 t                end if;
: h* E( B( k" _: C, }* D        end if;+ \2 [- p$ h: O
3 C. L" J0 o3 K2 y8 Q# h
        if coll_auto='1' then
8 G5 W7 M) D$ R5 D6 Z                if coll_manu='0' then
) h$ w9 }2 m/ y& o4 {                        if (sv_ctrl and count_v2)='1' then3 S' S+ g1 g* l9 |) o
                                case d is
0 W" O4 d, z2 v7 F; X                                        when "000"=>8 H2 F9 ^/ K  Q# u& `- d" ^) y' X( n
                                                coll_up<='1';
3 I  y2 o7 f+ k+ h5 `1 ?                                                T1O<='1';
  s- t- F# ?2 a& i                                                d<=d+1;
. n# K, r0 r& V, Z: n                                        when "001"=>' W1 Z0 z! Q9 ^
                                                if T1I='1' then
2 p7 v) A5 H# @/ j, O: w                                                        T1O<='0';! w/ f; B% h* q
                                                        coll<='1';
; r, N: C. T3 z3 H! C                                                        cold_pin<='1';
& {/ H% h9 Y, N                                                        T2O<='1';) y* s: W3 d0 I& c" ]5 g& e
                                                        d<=d+1;" \9 ]2 n$ r- b7 v# h7 Y
                                                end if;; t5 D* [( |, E2 o
                                        when "010"=>9 T$ V. L* T% N9 k0 \/ Z
                                                if T2I='1' then8 z4 z& t0 p" y  B* o8 L  G9 s
                                                        T2O<='0';0 m& Q+ c! i+ {( X: N
                                                        coll_up<='0';
9 q" F4 ~% Y$ J* `. W# `8 e8 b9 K                                                        coll<='0';
6 B% |9 ?5 M$ S' N/ g4 I7 u6 E                                                        cold_pin<='0';
+ p, `- l. i( _* p4 S* H" ]9 t                                                        d<=d+1;% a' E+ G2 ?6 ~$ G
                                                end if;' [8 j9 t6 h- F/ i' q6 i7 z! u' Q, y
                                        when "011"=>
! G: t2 n# D: w7 s- \                                                if (dly'event and dly='1') then1 M; l" ?8 V( l, M* L% l; k
                                                        d<=d+1;, \% M0 {. J5 G% E9 |) H
                                                end if;
6 l- j+ w" o- ?& q9 G                                        when "110"=>
4 n8 B5 l  h+ e+ `6 H+ `: G                                                count_clr<='1';/ c% x" e" b, {7 c
                                                d<=d+1;
' N, e$ \9 V; B) z0 N  L0 P6 ~                                        when "111"=>9 T3 M3 T+ N2 E+ Q/ h& h
                                                if count_v2='0' then
! R; {$ A$ F7 T/ R0 `                                                        count_clr<='0';
, f1 U# N6 C7 o0 B+ k: `                                                        d<="000";4 u% U. G; l, }
                                                end if;
! m# d$ q# v' M6 @" V8 p5 m                                        when others=>null;
+ V1 n' v* C. f( c+ ~  }! i                                end case;
+ X* n' p8 X& J% n$ }- \4 c                        end if;3 T  m  J5 [% G  O& V
                end if;0 u# X; p% G& u: M' h+ v2 J
        end if;
' ^% r% i2 \1 K        if coll_auto='1' then
& V1 {8 I' b* Z- x9 A                if coll_manu='1' then; J# b, O. c: k3 p
                        coll_up<='0';  _1 J; L$ X' v5 E: i" a7 ~& Y: u  x
                        coll<='0';
2 X' s$ x( w  t4 k1 O, ?7 M                        cold_pin<='0';
$ X+ Q& ^6 t5 S" T! z% r( s                end if;
! K1 i5 t6 ^1 w9 f$ L* u9 W        end if;
# [2 b* Y0 J# y3 n, z- Nend process ;- `$ D, y# m* y0 N& a- M0 I
end cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-28 05:47 AM , Processed in 0.109006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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