Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
7 T" d! Z* |/ P( p: X因編譯會出現以下訊息
+ j( g0 R* v, l/ G5 k3 d& XError (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge
$ d( n3 f/ ~4 C0 ?4 y* f' @2 PError: Can't elaborate top-level user hierarchy
1 s5 Z  D* i: @1 j/ nError: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings0 @* R5 b+ p( `* Q2 g
        Info: Allocated 144 megabytes of memory during processing
1 F4 i6 a0 \9 q+ I) z9 T; E        Error: Processing ended: Fri Oct 18 21:24:23 20131 M% |/ W# ^1 A) r
        Error: Elapsed time: 00:00:025 N! ]9 O5 X1 g" v4 L
Error: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings- O: Q7 w, k+ `' B, L1 N

2 O5 y, r* P/ i# Z8 x程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!6 m" v2 `" f9 s7 T" M% ^: k
9 D% w2 {, o; h5 Q6 k' P& j8 K) |3 g
7 a% W% g8 u. h2 `! T

- |$ l0 P2 l) W& v$ j$ ], q/ O! N) N1 S3 g
Library ieee;- P: p7 h& T' H4 X' j' d
Use ieee.std_logic_1164.all;8 L+ u: y- m7 m- I8 d4 T
Use ieee.std_logic_unsigned.all;( p: b1 G* k* `1 R# p4 z
Use ieee.std_logic_arith.all;1 r5 d5 b5 \( s2 H% T5 ]+ h

/ F5 r/ n; ~1 Z; ^; `" O  N! y& [Entity CUB is( Q2 e0 y' D6 K+ e3 D* w3 D) s$ c
Port(/ c- r8 B! q+ F! T
        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
% |- `5 {8 [  w* D* X' f% u. o7 ~5 e' I$ J        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
6 Z, p: w: F8 w* ?& c6 o);9 R0 @9 c: N6 B- C
end CUB;
4 H4 R- ]1 D% A/ Z3 W* P1 f3 V! \/ [* R  O5 t( j/ w* @
Architecture cub_arc of CUB is
7 z& _. C7 |6 y. e1 Z; a9 Tsignal d : std_logic_vector(2 downto 0);, O& Z- N. R" e
Begin# @" ^' ?+ x0 M1 E3 h

$ n5 t1 M( H, aproce1rocess(coll_manu,coll_auto,count_v2)8 Z& d% d! l0 D0 X
Begin
7 K; G& e7 V. E8 L6 A        if coll_auto='0' then
" M" [% I; ^/ n1 Z8 [: |7 ~# X                if coll_manu='0' then
1 C4 R1 `# }1 Q1 P  R' s                        if count_v2='1' then
6 _- W# p; C, ^$ V4 b                                count_clr<='1'; - N1 N8 S8 F8 @4 C/ n# r
                        else
  U* h  S; T3 R; B+ @                                count_clr<='0';: b/ B" o! @, K. r% G6 C
                        end if;
, I- a, {/ R# Q% {1 s) o) @5 J7 S$ y                        coll_up<='0';' i  v. [- o( K
                        coll<='0';
" m/ u7 q$ k: a, I2 P& E                        cold_pin<='0';5 c! X! K6 `! C2 X4 S
                end if;5 [) N. n9 K7 s  @
        end if;
. V0 [2 g- R6 t' O  H% f* Z       
/ d: C8 D! U; N. L        if coll_auto='0' then
6 X7 S6 J; P$ ~* N6 ^( ~' W                if coll_manu='1' then, m  W( _, q% C5 @/ Q" f
                        if count_v2='1' then
9 J- ]* F6 I: m# J1 R5 Y                                count_clr<='1'; + J' E: z$ I" h3 H# z, S
                        else) r+ t& z# @$ N/ S- T
                                count_clr<='0';
* q" I2 F) o. k3 I$ A) C% |                        end if;
5 Q0 V5 ^" k& S8 U1 ^                        coll_up<='1';
  x" x. ^) v0 Y4 ]  Z* H3 \                        coll<='1';# B7 |+ A5 D% l! e
                        cold_pin<='1';
, r1 [$ [) F) b8 y) M                end if;
! L0 T) b; c/ A( I        end if;6 F, A2 u% C$ B
       
& B4 F6 {& i) i0 E        if coll_auto='1' then- I$ D/ ]& r, N; G: S
                if coll_manu='0' then6 g/ R* M6 Y1 s: N
                        if (sv_ctrl and count_v2)='1' then
6 m8 z# K, W" `5 _* Q0 }                                case d is5 z1 U) }* ~2 b/ H( _
                                        when "000"=>
0 e9 r' Q/ j5 `% k4 t* K                                                coll_up<='1';
" ]  A  O9 w0 I2 @                                                T1O<='1';4 V1 _' E) ~4 `  I
                                                d<=d+1;
7 _/ d1 b: L. {' h5 |7 m/ i+ J( u                                        when "001"=>
: C! q9 l7 F7 s                                                if T1I='1' then4 x3 x& c& w2 T
                                                        T1O<='0';
9 x: J; r3 a  f/ s: c                                                        coll<='1';* X5 {7 Q: C4 ?- y: F9 T
                                                        cold_pin<='1';
9 r" }& D5 X4 t$ |' K                                                        T2O<='1';7 H6 ^# p6 m, M+ d! A, u
                                                        d<=d+1;
# q- {6 ?0 J$ x: o$ y8 A                                                end if;- q  i. ]9 |6 g& D
                                        when "010"=>
0 _8 z9 b& M) O. \1 d4 u8 f# |, @                                                if T2I='1' then
5 B2 i; ]& W2 ?5 R$ _5 u) J+ R                                                        T2O<='0';
5 J# O2 B. b! b7 n- B% b                                                        coll_up<='0';
* S' P! \, `) B; x; o7 P  `2 ]2 R                                                        coll<='0';8 {+ X6 E; ?( A5 S0 g) I
                                                        cold_pin<='0';" N' u5 z' o' Y; j
                                                        d<=d+1;* U# y& Z0 ]) t: b
                                                end if;9 x% P8 b+ c7 r
                                        when "011"=>
: K1 Y5 x. g) ^6 \$ ~                                                if (dly'event and dly='1') then" l0 T2 b- m. n4 U2 o9 y& I
                                                        d<=d+1;
4 x, o6 @1 P; L: f$ f1 P& K1 T                                                end if;, O, N2 g7 G) |3 j
                                        when "110"=>, V# ]' b. X% P& c9 b% E- ~
                                                count_clr<='1';0 y! a. |$ B7 {% [7 ?2 }
                                                d<=d+1;4 v* _) @! V2 C0 W/ ], N
                                        when "111"=>
5 Z* L& P/ _& l/ e* ]                                                if count_v2='0' then
  K% q, S. H) Y! c8 u1 \                                                        count_clr<='0';  S1 ~! L8 g4 _+ Z: c) z! N9 r6 q5 f
                                                        d<="000";
" s) ?1 V* X( Y                                                end if;! C8 p# V% h/ A) m9 T& h
                                        when others=>null;  u. f. z1 J4 z, _2 [2 h
                                end case;
6 w1 V: O  _( J. c/ S                        end if;" L* d: D7 x3 Q& J) N' c
                end if;# G& q' o4 A3 u. c
        end if;
* s& `; \2 m# T7 s" Q0 Q& q        $ f) S3 q/ c7 x5 H& T7 K/ m2 Y, c
        if coll_auto='1' then- f1 h/ A: U" c
                if coll_manu='1' then
/ B: [, c9 O* B                        coll_up<='0';# l8 p' h% i, G0 O/ ?: m
                        coll<='0';& S7 q: m! c0 I! ^  Q2 N& K
                        cold_pin<='0';$ N) [! M$ L4 Y/ F8 w8 j
                end if;' Z6 X1 C7 b4 }, f5 W
        end if;5 b; `  @+ |" v. S3 `
end process proce1;3 f6 q. K/ d7 }
# M/ V; G- X8 B1 M
end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯0 `" t' F$ W! Q/ |. ^# Z
% s) U# e6 d$ D0 T2 q. ^6 u
; o/ Z# s' B- b; l
Library ieee;
) k  U' E9 w8 {% A0 Q1 }Use ieee.std_logic_1164.all;
8 o3 A( B: ^/ R3 r- MUse ieee.std_logic_unsigned.all;
2 e3 `: z) k6 u* H  Y% ]$ MUse ieee.std_logic_arith.all;
1 f' B+ C! y0 y4 v
! o" O, w7 m1 k% UEntity CUB is
0 z/ g, c4 F( I* W1 H* h: s2 jPort(% O$ T/ n5 T7 y) {3 w' R  h
        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;# ^1 o8 V+ W8 [; r  J
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
  Q6 p9 G2 J$ J9 x: T9 O! o4 L);
# b/ ?6 C3 t8 |end CUB;
. c& r! u" L7 [' a) M  E' `" z$ v5 V! t$ C& N9 V2 X1 {
Architecture cub_arc of CUB is
* ?. ~8 n3 s$ y- L( J/ ?: N% W
9 ?9 ^# T7 o/ O7 q( A* \; A' Ksignal d : std_logic_vector(2 downto 0);' D3 Q! f% K6 y: u
# c( e8 y& U4 W/ d3 G( f2 |6 d' V  W
Begin  4 F8 W  t6 j3 A6 f2 ?2 V! t
1 v$ |9 A/ m( F
process(coll_manu,coll_auto,count_v2); y, N3 P% ^. U1 U3 D% }' ]

& H3 k8 T2 [' O. QBegin
# R1 {9 e+ x2 [; a, Z/ i# f# u1 a( T% J  D* g7 X. H7 C
    if coll_auto='0' then
) L# R7 G9 q6 {6 {" J  d( S% P% v7 W        if coll_manu='0' then
# S+ a, _% y$ K6 a! K8 L6 e            if count_v2='1' then
% Q) Y5 h/ y% N9 ]( v$ x' k$ Z                count_clr<='1';6 y9 q+ U8 v2 ?! D" V3 C
            else
: |) l$ r  R4 ~  w                count_clr<='0';
7 F5 s1 ~9 @8 {" Q& o            end if;
( T  O) M, M8 G# k) a9 h2 \                coll_up<='0';8 c/ m4 l7 M' }$ X7 }
                coll<='0';
( U3 z4 M2 b0 a8 k' C- b! P1 k                cold_pin<='0';  h" Q" t. w; b3 j" _
            end if;, r- s9 _; j' i- x2 @1 N
        end if;
9 ^' y$ y/ ]6 V4 ?1 B        if coll_auto='0' then/ ~8 j# F  J( l
                if coll_manu='1' then
) q& k8 ~! c) I( k                        if count_v2='1' then* T4 e% _, Y% m+ W) K
                                count_clr<='1';9 C+ ~! r# [  N& W! x9 K: [
                        else: R/ I! ]  s. x7 x/ B
                                count_clr<='0';2 {' T& o3 [, K1 j
                        end if;% }( e3 j, n( j: M
                        coll_up<='1';
; E2 L+ p( h  O% K                        coll<='1';8 |: p/ e* A1 w* S1 A
                        cold_pin<='1';
! G8 V4 G4 s! c7 |                end if;
) ?+ b3 y# E1 F" E; u        end if;4 W- E( ?/ ^4 C$ I7 }0 E& Z4 L

* |$ f/ J2 g5 ]( y: v. n. N. I3 y( j! v) n        if coll_auto='1' then- v' l9 Y4 w4 f$ {; a& U3 h
                if coll_manu='0' then" [! E' T; v, G4 g, F; M+ y
                        if (sv_ctrl and count_v2)='1' then& I0 e6 q# S$ n9 ^( s8 v
                                case d is/ r; D- d6 X. v0 r
                                        when "000"=>! Y6 D7 O9 O# ]9 K  m# [+ i1 y+ g
                                                coll_up<='1';
, k' M0 }- O: `0 R% D' y                                                T1O<='1';
# _; g  l2 K3 X5 U5 ^2 f                                                d<=d+1;  [0 A* u* r  O6 A) ]) E; X5 N( i
                                        when "001"=>5 x4 ^: B/ ?  z# T2 C" g
                                                if T1I='1' then
5 y' U" Z' s5 J' I. _' K0 D                                                        T1O<='0';5 T" A0 Q8 f1 Z% V0 h# G4 ]
                                                        coll<='1';
  Y' _' E, [: |0 }! y0 B9 w                                                        cold_pin<='1';1 ^. @" d) @' f% \* m
                                                        T2O<='1';
, k1 d: w0 l+ ]9 v& H$ I                                                        d<=d+1;
4 p2 Z! X- }/ a# |7 q                                                end if;( l% v% D/ t: Z$ [
                                        when "010"=>0 o9 V+ s! F5 Y0 t' o
                                                if T2I='1' then5 K( l1 m7 q+ ?% I& f
                                                        T2O<='0';' X$ j) d: B1 w/ X" U
                                                        coll_up<='0';
0 q4 H! {& W. S) E# J/ q9 p                                                        coll<='0';% d) I- @9 }6 _9 X/ A3 v. }/ S; U* o8 s
                                                        cold_pin<='0';$ B2 U' F& i% _$ x6 j  y6 m
                                                        d<=d+1;& l! _0 i2 a0 V3 `
                                                end if;& V5 ~) C3 ]# S9 c9 j$ h8 K) s
                                        when "011"=>
8 m) p0 p: w. ~8 H5 G                                                if (dly'event and dly='1') then
# V  D; w( }$ P- K                                                        d<=d+1;- b" j6 k( ?/ ?. V0 h
                                                end if;7 m( a7 f9 G. [. z+ p% U
                                        when "110"=>; n6 b/ ~' A) }" n  k; P
                                                count_clr<='1';
8 y  H9 m! Q2 w$ k- `  t% X                                                d<=d+1;
/ u: [2 p( L" k                                        when "111"=>
5 y9 }( d+ d0 `) v3 o! \# z                                                if count_v2='0' then
) O4 `( r# s. @8 i& ~) l1 d6 ?; ?                                                        count_clr<='0';. G' c2 C9 q5 I+ |& s! ?& E- P# n
                                                        d<="000";
+ w  H6 F8 o, k% a7 e  E                                                end if;/ Z  l/ b! P- E2 J0 |- u
                                        when others=>null;1 y' L) u+ o7 u8 \
                                end case;4 r- m* u: ]4 A0 e/ p6 ?
                        end if;
& ^) E8 v# P7 @' b1 s( g                end if;
" o7 G2 T' _9 P0 Q        end if;( P# ~' l$ K$ C
        if coll_auto='1' then
8 ^/ B) O" K, d5 N. _2 x                if coll_manu='1' then
# q: a+ J5 u' X                        coll_up<='0';
$ z" v$ _( E2 ~3 n                        coll<='0';0 w4 R& Z0 }! V+ ~
                        cold_pin<='0';
; M: y' w, E7 |6 _5 P; n6 \7 t* e                end if;1 b# @4 J, j% [/ y/ T7 a7 C$ [5 c
        end if;# D# q; c3 O" `) w- G, }8 `" B
end process ;
, t5 u% H. K, F2 ?end cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-7 02:36 AM , Processed in 0.125015 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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