Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?( D0 |3 b, d  \4 k% v
因編譯會出現以下訊息* q* V& v' c, v, k; I
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge
+ `% T' _1 E, zError: Can't elaborate top-level user hierarchy
7 B9 y5 _! J! rError: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
; J% c6 ^! L% `; S- R* W3 ~% F        Info: Allocated 144 megabytes of memory during processing$ `+ t9 b6 w% h, O4 w3 B
        Error: Processing ended: Fri Oct 18 21:24:23 2013+ n& _. y9 {0 Y5 Q7 s6 t! Y% B1 V: c
        Error: Elapsed time: 00:00:02$ H% U0 O0 b# n0 F/ p0 F% k
Error: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
: A1 V) x% O5 S( \" e7 p* I$ Q$ y+ ^$ {
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
0 I8 B/ ^/ X$ j8 {' A
& Y0 H+ ^! c* A7 w1 W2 F. _; p" \
# r: C. |( m1 C2 a  W+ a% \, u; H- D9 |! W

" x' o9 }8 j4 @# l% JLibrary ieee;/ z3 u2 b( R, O. C* r
Use ieee.std_logic_1164.all;
0 v: n( x( t1 q! Y  L$ LUse ieee.std_logic_unsigned.all;( i3 r1 T' E7 K$ q4 z, p
Use ieee.std_logic_arith.all;; Y# Y! d$ z4 U
: ^4 {- H+ O) Z: F! [
Entity CUB is
6 W" E2 Z: p7 WPort(
$ \, ?3 P( N& A& x& I6 |        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;7 n0 [5 ~( G' U# ?
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
! H1 \2 Q7 Q; V);
  ?1 G. {# K1 T8 V" A! Jend CUB;. O* t; n/ J5 T7 e; c3 ?3 D5 O

7 N& v0 N+ L/ K% V  V( BArchitecture cub_arc of CUB is
! Q* }4 c! K1 h% @' ssignal d : std_logic_vector(2 downto 0);9 u3 @7 |8 v7 r% c
Begin
* U+ l6 E$ w; ^* F/ E$ g0 x( o" `) g7 e
proce1rocess(coll_manu,coll_auto,count_v2)
1 l+ ~: _% |7 t" y/ lBegin
2 D' h; c- D- o. j6 g% K7 z        if coll_auto='0' then
- I2 |; B3 d& f8 n, B  F1 j# o% f                if coll_manu='0' then
8 `: r0 N: D6 c5 a# `                        if count_v2='1' then
( C5 X1 B0 y4 M8 y7 h2 R% Y                                count_clr<='1'; % x( @4 v1 t$ r$ e2 V
                        else
( L- t" }* K2 [8 n  x+ L                                count_clr<='0';) y+ C% v% L2 t$ p1 j
                        end if;& l- Y  C- c- g: a3 f
                        coll_up<='0';
4 n5 F) k# B8 @' f& I                        coll<='0';
! i* ]/ o0 K% P                        cold_pin<='0';
/ a% U# W; O# k- I. D6 K                end if;& s7 e4 O5 m5 X1 O5 F( I
        end if;
/ r7 K9 p9 x( T7 m8 J        + A1 U' ]" c$ V3 w9 u$ v" @* |% g* V
        if coll_auto='0' then6 Z& j* `3 Z' F2 y/ w0 c) j
                if coll_manu='1' then* M' p; W. I$ h' K( {6 n
                        if count_v2='1' then) o% B2 M0 g3 x; h" x% Q9 I' N
                                count_clr<='1';
( P) C; d$ m0 s8 B7 Q                        else
2 H' L: x5 u$ a) o  f/ s0 _                                count_clr<='0';
0 i  b6 R. [7 \& C0 _5 i! i/ \                        end if;
3 c1 Y% M" u! x- r9 l                        coll_up<='1';
0 L. i- d" Q# u' {' z' Y                        coll<='1';) _, h  d0 f3 E" F
                        cold_pin<='1';* A$ q  Y$ T" U4 S& U7 w
                end if;
, [9 Z2 A, S2 J        end if;1 M6 {) e* }! L# B6 R! H
       
# n5 N& H3 a) }( ?/ C' G        if coll_auto='1' then
3 o. h3 x2 T6 d, j' m2 z                if coll_manu='0' then
7 Y. h& C: @; k! Q4 w# u                        if (sv_ctrl and count_v2)='1' then
3 s4 S  \% _8 T* T* ^8 h                                case d is" s9 o8 n4 M, W! a& @6 F- O$ g9 N
                                        when "000"=>3 e* r2 n% T8 F: y, `
                                                coll_up<='1';
# B+ [* W( o$ l1 P' g8 n% Y                                                T1O<='1';
. N- m9 c! ]9 B/ k2 V0 s2 A% U' l                                                d<=d+1;
/ o* @3 y# F! x5 Q, k                                        when "001"=>/ `- z4 p' l) r* X* G
                                                if T1I='1' then
2 j/ L' w$ v( ]8 B# S                                                        T1O<='0';
) Z! X( G+ O9 }! u0 e2 E  c# x                                                        coll<='1';
' |) ]- P" d9 Z3 j+ _                                                        cold_pin<='1';! w3 ~* k! c" Z. m- ]" k
                                                        T2O<='1';3 w3 _+ R2 o  @: I. h
                                                        d<=d+1;
/ `4 l' h$ r5 b0 q' V+ v                                                end if;
3 p) q3 l! c$ y                                        when "010"=>1 X5 t) N2 |: s* a$ ?8 A
                                                if T2I='1' then1 ]) W0 r2 y, R) e, b& m7 v6 U$ G8 C
                                                        T2O<='0';
0 C( d" {3 A+ R& [! s% ^                                                        coll_up<='0';
- \; k. c7 o3 `, s0 j$ `                                                        coll<='0';" j7 n8 {' a( W0 ^; q. k
                                                        cold_pin<='0';
8 t6 X; P2 ?/ {: r7 [& |% e                                                        d<=d+1;
2 I! G9 m5 _. Q4 Y4 V                                                end if;4 f6 V; O1 I. z5 n$ t
                                        when "011"=>. ?- G9 `! E0 e/ f+ b# u# A0 _9 q
                                                if (dly'event and dly='1') then5 T8 k$ v0 Y  I0 \8 N! y* y
                                                        d<=d+1;) o! c+ ?3 E' }" E* \0 ^
                                                end if;' b0 j9 |2 R, U3 d
                                        when "110"=>
) u$ v% Y0 \& x! U0 \  F                                                count_clr<='1';" b3 g2 X) T+ N: ?5 Z
                                                d<=d+1;
  O. B. G+ v1 O5 B' C                                        when "111"=>, [5 Q% ?4 ?! ^1 ?4 H, y, B. b
                                                if count_v2='0' then9 ]* N4 q7 I+ \6 N% j( a  U
                                                        count_clr<='0';
; I; ?3 a$ W0 t. q; ~2 ^                                                        d<="000";
+ U3 ~9 G; ?& J* C! T                                                end if;! |2 T* {. ~9 @0 _7 U) N
                                        when others=>null;9 \3 `4 D: \$ a0 G5 n
                                end case;
- C7 T) Q! V" o( f8 s2 v                        end if;' H+ U. Y1 p) B3 g
                end if;
0 L' K3 W$ _" j4 R( Z        end if;9 U2 G& B, i: c! ?& Q# d' B
       
/ Y& j) X5 k. U3 J  p        if coll_auto='1' then
# i$ `9 e% N* s3 m2 @9 P                if coll_manu='1' then
5 F4 b- }/ V0 [0 g8 J' ^                        coll_up<='0';( I( K/ b; J" y9 u
                        coll<='0';% L3 Z1 [$ Y3 L9 v: c
                        cold_pin<='0';
9 e( T/ o. D( q' W                end if;
8 L. ?% E3 t7 F1 P        end if;8 v$ c) W' g4 R/ S
end process proce1;3 f: s5 E' _+ g  q4 ]
5 R6 W: \5 l; Q# `* Y
end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯
2 Z0 m7 S' V4 {: t0 ?  X
1 Q$ W, n5 b2 X1 t
9 L, }; y- O! ALibrary ieee;
* N  d' T+ G, ^+ ?" l* m4 ?Use ieee.std_logic_1164.all;5 F4 U. s9 a& ?! a( U. j
Use ieee.std_logic_unsigned.all;
! E* M" q4 d* R. QUse ieee.std_logic_arith.all;; l7 V- _$ V$ F# ~5 w

+ e  G/ x$ j/ p4 N, O* }8 c& hEntity CUB is
( ~+ F% W) K2 ~" Q1 Y2 cPort(
+ \6 D' x$ S( d- ^: T" t/ L3 U        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
3 V; \+ G( Z( N* T: D        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic2 C6 e2 A3 A, j- O! u
);  p' g: a5 s7 N) Y2 F
end CUB;% F- K5 C3 ?! r$ c) Z& c
6 Z# Z  p! I( `2 `' j& D
Architecture cub_arc of CUB is
. c* y- w) C/ x8 M& X: w3 J; N/ v. H6 k' `2 L9 ?( {
signal d : std_logic_vector(2 downto 0);
  ~" e2 Z' m& e. o$ _1 _0 F% g! b# `0 Q
Begin  , Z( g8 H) H5 }! \' {& {. S6 c
; J8 a3 y; h% \  _
process(coll_manu,coll_auto,count_v2)" F1 Z' [5 {/ _# P

$ [3 B% X0 o- |/ j9 P0 {" cBegin) U8 M0 C) p  F: b. y
1 X" u8 ?6 E- n1 I
    if coll_auto='0' then
0 G/ G2 ?: \! x8 M/ X3 r" u  X) g        if coll_manu='0' then- y$ B) y0 L; G
            if count_v2='1' then) n( T+ V- ?  F$ d8 D0 W, w
                count_clr<='1';
5 @5 _9 n) }- n0 `            else
& w* r1 x2 a, N                count_clr<='0';
: |( {+ R0 I7 e7 i% e            end if;
! N  j) B6 o, L9 `6 A. k                coll_up<='0';8 ~' O8 A, {" z' q
                coll<='0';
& d0 v1 D9 J: J/ L/ j                cold_pin<='0';% m$ G5 }' F( @, w- a* C* H
            end if;+ E" k0 {5 s; t* V0 n; r+ Z
        end if;
) H6 z: e3 M7 K5 F        if coll_auto='0' then) {/ W, y6 S$ o
                if coll_manu='1' then
4 }7 ~  D! `6 i6 ?9 k5 I. k5 b                        if count_v2='1' then% ~+ a$ C! t) I2 _
                                count_clr<='1';
, e% n3 _0 p& o  @                        else9 i* N& n9 F+ I0 h6 k
                                count_clr<='0';- v8 o% o7 D/ x# h; [7 K9 _6 L
                        end if;. C3 x5 Z( ]; U
                        coll_up<='1';
2 f8 b& H5 W0 O1 g                        coll<='1';5 J1 ^/ i) T! P! O$ m/ X
                        cold_pin<='1';8 D) e/ K& |8 X4 L; j0 d
                end if;
7 U% S' E# I8 s4 A3 r, p        end if;8 a9 l' T, r) b
3 R" h- B4 n$ v/ l
        if coll_auto='1' then* n1 {5 l. K0 Q+ V  f. }! T, P, ~
                if coll_manu='0' then5 F4 Q8 @. U8 q3 l2 q+ r8 ?- m8 ]
                        if (sv_ctrl and count_v2)='1' then0 w3 ?  U$ ]9 t, o7 y
                                case d is
  s4 o" _+ [, ^: ^& v                                        when "000"=>
5 j& \7 g; E/ r( @                                                coll_up<='1';1 M. J( L5 x4 V8 O
                                                T1O<='1';
& G/ {& O3 c! @& n) `                                                d<=d+1;1 M3 D* e" r# r1 k, ~% W& l+ S3 I
                                        when "001"=>/ C0 E7 V8 P2 |
                                                if T1I='1' then
2 v: `* l1 K4 g7 e) y9 A2 K- Z                                                        T1O<='0';
+ F7 Z+ E! S# i) x9 A! ^, R                                                        coll<='1';& m- O0 R$ O" a# o
                                                        cold_pin<='1';
" C/ |% z; R  r) m$ {0 m                                                        T2O<='1';
5 w/ E4 [; l+ A% d" J8 {  Z                                                        d<=d+1;8 g* _0 n# m+ N" ]1 t2 S4 Z
                                                end if;) w9 E  i; L8 U# F7 i
                                        when "010"=>
: M9 E7 U7 H* J0 S; N                                                if T2I='1' then
3 g: P0 {/ q: T3 P' a2 P+ F% l  j% w% k                                                        T2O<='0';
( o8 [5 ]: S- M# i* Z                                                        coll_up<='0';
4 w& ^  a! i( }3 W2 |9 M                                                        coll<='0';$ n9 w4 X' `: l
                                                        cold_pin<='0';
3 U  Q% d0 D9 j/ j" i" T, s" j5 i                                                        d<=d+1;" W1 g! E# M( C9 a* j
                                                end if;$ S1 Q6 l) X4 g/ \
                                        when "011"=>
; J# i" |0 `6 M; i  j                                                if (dly'event and dly='1') then  {7 B2 I$ C; E# Y3 b& s. X
                                                        d<=d+1;8 {0 d- U$ Z3 V$ T9 P7 R
                                                end if;
8 v. |  R' T' o6 a7 G7 k; z5 A                                        when "110"=>: ~3 \1 i1 J) K% }& ^: T# t) x$ X  s
                                                count_clr<='1';3 K0 [) ~9 S7 {& T" H5 n" n
                                                d<=d+1;
9 a% O& m6 w7 w, |9 b% [                                        when "111"=>
& |! {( W" f& c, I                                                if count_v2='0' then# k2 ~2 ^9 S$ c9 Z; C# [+ W8 L
                                                        count_clr<='0';
/ @7 `& ?& f0 f! g                                                        d<="000";" ~. u: {. Z' ?4 M) c% m% B
                                                end if;) c' C5 j$ n( a8 Q3 U6 o
                                        when others=>null;
3 C9 p* Q$ a$ u+ J" t$ m9 ~: C# C                                end case;) T4 W3 x; q9 K3 D; a3 l
                        end if;# v& j$ ~8 D" K6 c
                end if;
. m* K9 b" b' j) A- Z7 q8 [        end if;
, U. h% n/ g8 _4 V3 t1 x( X' Y& r8 x( F        if coll_auto='1' then0 ^8 E3 t% h8 I" N2 @2 [
                if coll_manu='1' then
/ S& X- S9 J) `, [7 \* r                        coll_up<='0';
+ v* [' f& X- p4 b* H                        coll<='0';2 K, M* k0 B9 R, ?. q
                        cold_pin<='0';+ f5 E1 @7 Q3 p3 x$ \0 K$ a
                end if;! @) |7 K6 g9 o, |+ k& x1 j
        end if;& Z4 h5 \6 T( |4 _
end process ;
  V) z8 d" S8 C7 h8 c( E8 tend cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-28 03:14 AM , Processed in 0.107007 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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