Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?  F; l0 t9 C3 Y/ `' A
因編譯會出現以下訊息( }) v4 j1 z+ A' x
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge  g; y, @+ |1 E5 k  B  G/ k
Error: Can't elaborate top-level user hierarchy* B1 i% C5 P4 [
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
/ M7 G& C$ }/ y        Info: Allocated 144 megabytes of memory during processing6 Q, h* o& x- j, ]2 l
        Error: Processing ended: Fri Oct 18 21:24:23 2013( |* ^. c  B' ^$ c
        Error: Elapsed time: 00:00:02
8 x! W. f( Z$ o5 ]3 o, NError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
1 Y' D0 s% Y2 c7 H1 L# t8 x' j5 k# S. U" {4 x; F4 l
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!. s9 c9 D& p# d6 @

( ]2 J& B6 `2 b
  Q6 q# b- r# e1 x
4 t) L" q4 V. A) |' i. Z0 c
) E/ z# B# g8 m- }( O" f, XLibrary ieee;
# ~, _8 N. |6 y6 k& F- R; GUse ieee.std_logic_1164.all;
% U4 |% ^0 T. \3 _  J6 t/ d5 b- y  eUse ieee.std_logic_unsigned.all;
' D" S! K1 n: `; `9 U/ \5 FUse ieee.std_logic_arith.all;! w$ j/ A2 f' Q6 `; I0 b

- j8 J' q# b' J  VEntity CUB is! [. Y. S9 Y: o4 I: g
Port(! V2 J+ g0 D, Y# H$ q& `
        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;' h$ g  T8 w4 K" A+ Y% E
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic) z  v% B: I- _
);' V3 h0 U0 G2 ]+ w) _
end CUB;
$ Q( n3 H2 v3 c' n, p! ]: ~$ {4 ~. d9 H
Architecture cub_arc of CUB is! r/ N7 x5 g* e
signal d : std_logic_vector(2 downto 0);
7 X4 Y8 S8 T) c( S  d) eBegin; `4 S/ g( z" |7 U. W  E

: \; D/ U+ ]/ v# b# t  Y" {4 wproce1rocess(coll_manu,coll_auto,count_v2)) b3 f  |0 o' U7 X6 d
Begin$ ?; G" B* K: F& G% g8 R
        if coll_auto='0' then: R$ N' O  X/ n' C
                if coll_manu='0' then7 K: p7 B6 K3 v# H) A1 W/ O9 x2 {
                        if count_v2='1' then: f, i: p1 a5 `" e- z& v9 F
                                count_clr<='1'; % O$ Y8 V8 \1 c3 M6 t: J( _
                        else
% U4 y& }+ m' \" f8 O$ p# H                                count_clr<='0';
! D) Q% X3 c0 u* _" Q0 s! |                        end if;: R' l( x0 J% a. J
                        coll_up<='0';
* Y7 g) C4 l4 Z1 D  n  g/ F                        coll<='0';
  b' L5 _( L. _3 r                        cold_pin<='0';" W  I4 h8 l# R. }
                end if;
+ D! p9 M; M- X; L" \        end if;
$ E) @) V8 P: F2 ~' K4 w, _        / v1 ^  ]$ I' S- _) ~
        if coll_auto='0' then9 @/ M, v' ^2 e' v! G' u) ^
                if coll_manu='1' then" d4 k) k# A9 [1 ~# m" D
                        if count_v2='1' then
6 A! D$ q* ^* x! n' H/ Y                                count_clr<='1';
6 O7 r  K- i7 L$ }                        else' P5 Y: ^; Q9 Z/ \. a# v
                                count_clr<='0';! M& M- ~: p6 C- U
                        end if;
3 j: `: e  @; z$ s) L, f) L* u% q                        coll_up<='1';
6 t+ V9 m- W; s0 V1 m) g6 n                        coll<='1';' B) U& I" O& y' K( B
                        cold_pin<='1';
: V6 b( @, |, S1 ^, y' B$ h                end if;
9 i: W/ _: ^: ]* w; A6 {( s        end if;0 X, d# L' ]1 P/ F. R( f1 c0 c
       
% w- p, r1 T& y/ [, G% I        if coll_auto='1' then$ r8 r& Y+ s* e6 Q( p
                if coll_manu='0' then1 I! y# b1 J! A/ `8 @! A* {1 |: ?
                        if (sv_ctrl and count_v2)='1' then
7 {/ H1 I6 e3 X) S$ }0 h) }! x                                case d is! B; T( C, x! W/ z4 [
                                        when "000"=>
: P4 [: k% r4 \. [. n, p# a                                                coll_up<='1';) o% i( ~9 Z$ s* F$ g
                                                T1O<='1';# E! P2 C" j) Y0 ?1 y& A3 X
                                                d<=d+1;5 A; E" M/ t* q
                                        when "001"=>1 x$ T) C5 u3 G. j% y  b2 F
                                                if T1I='1' then
! W. }; G8 z7 w! h- b/ E4 u: t                                                        T1O<='0';% A9 J( y, Y1 k6 c
                                                        coll<='1';
4 Q5 V% W. N. }2 V6 S) Z                                                        cold_pin<='1';7 v* H$ ?. w0 [9 ?. w
                                                        T2O<='1';" E% n% f. ]$ t% M7 ~
                                                        d<=d+1;
; e! G1 T- D$ c* A- ^* ~; [                                                end if;& t- X; H' A5 U1 }
                                        when "010"=>3 X9 W8 A3 ^) d. ~7 |
                                                if T2I='1' then
7 r* |* |$ q4 [                                                        T2O<='0';
. R& R! s" V& x2 g                                                        coll_up<='0';5 T6 k! E- q( B. n8 \7 m  J% }% z, W
                                                        coll<='0';
& G- l; p1 K  O9 O8 s' a4 @" b                                                        cold_pin<='0';* b+ {- C2 @: j  D& s9 P! u
                                                        d<=d+1;( F9 }- |1 B% h: Y/ j! \% s& Y" P
                                                end if;
0 ]( l/ m& p2 \5 q1 ^, u                                        when "011"=>* u; F( U, ?+ U" z4 L; h, X
                                                if (dly'event and dly='1') then
* K* f: f" W8 M0 H7 C# [2 o- y                                                        d<=d+1;# t- T5 C4 a- b* i" S% J
                                                end if;! J- P" C* b: W9 V6 \/ k( F
                                        when "110"=>
* S- \2 M  a6 B7 w                                                count_clr<='1';
6 I4 j# k0 |$ E# u. U                                                d<=d+1;
! |1 J( b, w, ^+ J                                        when "111"=>0 B# I( e# [# y6 ?
                                                if count_v2='0' then/ [; Y8 O! |7 |3 B
                                                        count_clr<='0';
( K( r% P) z0 @8 _) {! D3 P                                                        d<="000";! f5 r) w9 O4 M2 F) U8 O3 Z1 O
                                                end if;# B* D( V+ O$ A* u
                                        when others=>null;
# [* \8 G( \: [$ _& }* v: A                                end case;
9 B2 X0 p4 h5 y1 `2 L  q4 V                        end if;- {: b: g  k' `7 F! z" k
                end if;3 U- v" A3 ?' Q# T5 B! x/ L
        end if;$ Y% }6 X/ b2 H  A9 ]
        % n8 o6 o. r( M8 _; X
        if coll_auto='1' then
, ?, J3 g  ~$ h% D, G' j                if coll_manu='1' then1 u. b$ `9 o6 `! g0 h7 U- V
                        coll_up<='0';
) F: I0 v9 }, s' y  T: |, U0 A                        coll<='0';0 U/ q) B) E4 f/ V
                        cold_pin<='0';
8 h' e% q) {7 @1 n" A3 t                end if;
+ o8 j: r. [# W2 M+ L; J' g        end if;
: [5 N+ O3 p0 pend process proce1;
4 w" a2 p6 p5 s6 ^' F
- J) I) f" i. ]end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 01:18 AM , Processed in 0.100006 second(s), 17 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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