Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
7 \5 g, I) T0 ]: q! E  k! _- q因編譯會出現以下訊息0 J! L6 L. f/ S! Q3 N  \
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge2 t: P1 s) o1 t, e
Error: Can't elaborate top-level user hierarchy
9 G6 u! Q# |" h: ?: b* s/ @Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
; v7 g- P( E5 ~' V! G, t        Info: Allocated 144 megabytes of memory during processing
& J+ X: \4 A7 x. e        Error: Processing ended: Fri Oct 18 21:24:23 2013
0 M7 ^! H* Y& Z; D3 M( p) J9 [        Error: Elapsed time: 00:00:02
1 I& r4 V# m+ C/ Y. [0 ]6 @- O- tError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings2 W3 B9 w; c  {* J5 W! n# U0 e0 U+ Z
8 B% x' k& D1 o8 E- q  Q/ F  u* c
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!: X3 w3 b" G- x  u1 k

3 ^' \2 i- y! k, h! Y. V% K+ Z  Z3 ^7 v) g9 A
* M/ h( x  X& S0 U5 C# I

- r% a: B8 Y+ t% ]3 t  @3 fLibrary ieee;1 y3 h: z1 F) j9 Q$ l( }
Use ieee.std_logic_1164.all;
/ o; o& C0 }. }, h. q$ ?9 TUse ieee.std_logic_unsigned.all;
5 \. s  u  B* C4 oUse ieee.std_logic_arith.all;, |1 @0 Q$ ]& J1 O, U
( i: O  E& W4 U& Z
Entity CUB is
7 I7 i7 n0 N( }3 u; ]* wPort(
" ]" n4 ~& M' }: N. t1 d+ _* L# t# w        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;& c+ G! c0 O1 r
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic7 ?7 v8 L9 a3 o$ \1 Z: T
);
) g  w- _; S, [' x0 n, iend CUB;+ z/ c7 m" H& D+ f- h4 ^
- B$ N' ^+ ?; ~7 ~' b
Architecture cub_arc of CUB is
; f! a3 B$ s* X7 m: ]3 F! B5 Esignal d : std_logic_vector(2 downto 0);* u* J& s3 t4 U
Begin; g# N7 I) u# y# X# E
8 z) c! H" U# a
proce1rocess(coll_manu,coll_auto,count_v2)+ j" \8 D$ e' g4 u. o; Q/ P  Q
Begin) U4 Y" N6 N' }7 r
        if coll_auto='0' then
" |0 W! K/ z+ D  D5 F. w5 \9 C0 }                if coll_manu='0' then
# e! b: b6 ~& y) W0 H                        if count_v2='1' then0 a; k/ d! c) c8 ?) m
                                count_clr<='1';
# j6 b7 L& `7 L' i0 w/ T2 R2 ~                        else
( p) t, O% o; N& j                                count_clr<='0';3 E3 q( j0 a3 e, I* q
                        end if;
# z1 N% U/ a' e7 [: Z                        coll_up<='0';
% N2 v6 `2 e! C3 M0 V0 b3 O4 b                        coll<='0';
! ^% n. W8 ?* I, c. V2 ?3 X                        cold_pin<='0';
" s* o# k9 k2 _( R# @8 p* }/ U6 W                end if;0 G' w! [2 \7 l# d
        end if;
1 W; [# E2 \% A, A: v! y       
6 X! H4 B* K9 i: j        if coll_auto='0' then; h8 g$ X$ D% P- e2 W( i. E
                if coll_manu='1' then+ I0 H, V) K7 d
                        if count_v2='1' then. L! }; P. R/ O& R* E
                                count_clr<='1';
7 T! g8 K& S/ t+ g                        else5 I' p9 c& O+ G9 j) g+ e
                                count_clr<='0';, F5 ?/ K: t8 P5 r
                        end if;
5 r2 ~9 j9 @  p; W. v. F- M                        coll_up<='1';+ A8 {. o6 v/ |
                        coll<='1';7 D8 e* d9 V* s, ^
                        cold_pin<='1';/ x' o2 S  }/ W8 |" s- g  N
                end if;
7 s# f8 ?* r2 g  H8 y        end if;
  s- \' u* ?# ]6 Y& A        * {: r. T7 b* I0 |
        if coll_auto='1' then- w0 @5 W; y( V. o" f9 `
                if coll_manu='0' then/ Q% v# d# }+ n7 U7 I* Q: W" W
                        if (sv_ctrl and count_v2)='1' then+ d6 ], V; |4 l6 `9 V
                                case d is
' l1 [2 w5 d" Q0 b  ]                                        when "000"=>
: C# \/ B+ p) B                                                coll_up<='1';
- i, g" {1 Y2 \+ g                                                T1O<='1';% ?5 `. Z" g: ^* |7 K/ `8 t  f2 g
                                                d<=d+1;
. C" p& u" h% w9 }' L                                        when "001"=>* Z9 i' H1 c/ {2 g
                                                if T1I='1' then
1 V7 V: {+ w/ k: ^6 z                                                        T1O<='0';
% r5 _2 s; {- [# p                                                        coll<='1';3 _  v3 z1 G* ]6 k, E- v
                                                        cold_pin<='1';
; S! N/ V! ~8 H7 T- W3 M; i5 ~                                                        T2O<='1';
' R5 M4 \  m8 z. o8 u1 m                                                        d<=d+1;
3 T9 u% V* S  q3 ]                                                end if;
' N* ?" p5 n1 t, j' a4 {                                        when "010"=>* i- `) h8 K; }' ]. M9 l, Y2 _
                                                if T2I='1' then
4 _: [1 W  E- p' @/ r                                                        T2O<='0';: N7 V3 {9 J& y5 ]+ }$ [7 B* I
                                                        coll_up<='0';
# g& e% y. i4 m  O2 _                                                        coll<='0';5 e- \: Z9 Y# I# I3 U
                                                        cold_pin<='0';* }! D& K: C  ^9 B, n2 u
                                                        d<=d+1;: Y, p0 M: M9 m
                                                end if;
' ^+ @6 q5 ]) x( W6 A8 w7 |                                        when "011"=>
9 H  Z: K' }' ]% H$ ?; W! D' V                                                if (dly'event and dly='1') then( W1 s" g& t# R: w% X
                                                        d<=d+1;; P# H+ K; D! z) W1 L" L
                                                end if;
3 S% o+ G; Q7 c; ]" N* r! H8 G. `                                        when "110"=>
3 w/ c9 q0 i  M. _5 z                                                count_clr<='1';
# ^6 d  J0 m7 q! H, D+ `6 a                                                d<=d+1;
* [2 J* X0 {: P0 M2 w" K+ n- }: E                                        when "111"=>
3 V% O6 G# w* F% q0 T2 P2 X( l                                                if count_v2='0' then! f5 S- e  f- P# {
                                                        count_clr<='0';
# s* f; g/ P' j                                                        d<="000";- ?# Z+ W: g1 s7 @2 w
                                                end if;
0 b: y' s5 H& Z" ?+ @4 W9 ^: A                                        when others=>null;
% p4 ?1 E8 r- C+ N4 y8 j                                end case;
6 g6 |! }& j: _* p) L3 S3 ]                        end if;
7 s. l3 K& ]! k4 O3 n                end if;
: k) n% k& V: `, |; g& J        end if;) c' L' ]2 x, V1 Y7 u4 v5 k. o" ]
       
, p  `0 R3 y4 F3 @1 D        if coll_auto='1' then2 v4 E, y. V, ^. E! T' B
                if coll_manu='1' then
0 v2 V/ r  D* ?& o8 p' ~                        coll_up<='0';' K: D3 }/ C( B; z5 B
                        coll<='0';
" B' m2 z/ z; u0 W& \+ M                        cold_pin<='0';
% ]1 o, l$ {2 m3 ?* g4 I/ K) `6 t                end if;3 U4 y1 Y/ ^# T  s% ^5 @
        end if;; J. H% b5 i; P! p
end process proce1;9 ~) y! w; Q5 S. a$ T

0 s7 }  t' i4 h. [' k: Rend cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯2 Q' \% b. H9 h2 o8 s; ]/ ^
: }) Z. W7 h% k3 Y! M8 B' l
  K" I  ^$ z! S: f
Library ieee;
5 c+ v! {" z* q- ?' ^& M8 FUse ieee.std_logic_1164.all;3 d' p# J: a5 }
Use ieee.std_logic_unsigned.all;
0 I. C( z: @- N7 B/ p6 b  g( q! }$ oUse ieee.std_logic_arith.all;
8 ?' u* r6 A! ^! x: I# _$ ~- [8 @* }+ q* M1 n4 U% I
Entity CUB is' n: Y/ w! Y" j' ], `3 A
Port(" }# C) n+ O% w+ n# g
        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
( i: c& G- K9 T( d  y        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic: D0 o4 o& F" M
);
, M5 x( N* l2 Q8 e0 kend CUB;, g' r! ]& Y6 K$ S9 J

  J% M- a3 z7 ?1 FArchitecture cub_arc of CUB is1 l" u" ], c" W9 ~

/ G. U0 N  u, u% l. Tsignal d : std_logic_vector(2 downto 0);
5 z& w1 c3 J& x% N0 B" @* O" t7 K
! u0 I- b5 C# _Begin  
# E. z& x1 B/ M8 A
3 f, _0 j& Q  k! r5 t) ]process(coll_manu,coll_auto,count_v2)
) W; v* P7 |. c9 _  `7 y; X' G2 |; E6 h, C5 y
Begin  _. p& I0 d/ N7 I& @2 y

. Q+ |! {9 }; S/ v: V; m    if coll_auto='0' then! S: N1 X2 ?4 n+ z  k& Q
        if coll_manu='0' then# t+ F8 n$ G) }. x9 Z' R, @
            if count_v2='1' then
+ p/ N2 L% r+ i                count_clr<='1';& M" o( ^0 s8 g3 n
            else
/ a, m' M+ b% l( J4 W                count_clr<='0';" \5 k" v- v8 Z! {
            end if;
4 r; `. D! f, k( z  ]                coll_up<='0';
+ f2 R, `& w  `+ ]# d                coll<='0';. V2 o: K, y  V8 z! y
                cold_pin<='0';
4 u4 a; L+ i- H* a. r" [+ o% g            end if;
6 c) f5 Y" c& _% a4 |' V        end if;
$ u7 m0 F$ J' C# v6 n% I2 B        if coll_auto='0' then9 A5 y1 M" R+ d& ~4 _) y) X; i
                if coll_manu='1' then" A/ V6 w6 i3 {8 F; X- J" \; J# V( \
                        if count_v2='1' then- b# @0 R0 {7 J4 c- f
                                count_clr<='1';
' P1 |4 L. ~* U& H, m/ F                        else( @8 i( j# l& g. s( O6 {
                                count_clr<='0';
! y, l& Y' J" G* D5 K8 L  D" o                        end if;
  O: w- L3 e: J5 a+ V                        coll_up<='1';
& C6 _7 z2 |8 ~                        coll<='1';
& c, }- q  C* ?0 e/ O8 Q* e& E! z7 l5 A                        cold_pin<='1';8 Q; R! o6 ^, {  \2 u
                end if;, G0 A3 ^: z8 z9 U3 c, _( f, q
        end if;
+ A2 g/ `0 C; Z6 t9 p" t
, t! X0 U; n* U# n( ]% S$ I        if coll_auto='1' then
- _1 W4 F' H4 F( C0 ?                if coll_manu='0' then
& j5 a$ u$ L2 z8 W9 c8 e                        if (sv_ctrl and count_v2)='1' then
4 w# I) s$ {7 ?0 T: O# M                                case d is
! x' x8 F1 M' R6 I. w$ T4 ]                                        when "000"=>6 }5 x9 {! U; n, _. `. r
                                                coll_up<='1';# }, R1 g' A) I& c
                                                T1O<='1';+ C5 U& e* c& g. F, u
                                                d<=d+1;; E9 s( n! T& y& ?* \  j( ^
                                        when "001"=>
+ X) c- o$ T1 F: v                                                if T1I='1' then
0 o# G  S) i0 u0 U5 p/ a                                                        T1O<='0';' a$ p; e8 m% ^# ^  Q& F
                                                        coll<='1';
& R, E7 h* c) k  I                                                        cold_pin<='1';
7 d9 H& z. E' @+ t. N  o                                                        T2O<='1';
' `; U; s& ]4 o  I7 d4 n                                                        d<=d+1;! O+ r: N; H. A1 Q" A
                                                end if;
6 U+ h+ ?: x) Z2 Y# D! u% P$ W                                        when "010"=>$ d$ Z/ U3 A# ^0 I  i1 B
                                                if T2I='1' then
, f: e- q2 F# `6 G) i9 g                                                        T2O<='0';
6 u( g7 J. Z4 K8 q/ {                                                        coll_up<='0';, J! R$ i3 S# I: z! P
                                                        coll<='0';+ A& N1 c' p* z7 X* D
                                                        cold_pin<='0';- \8 h6 \" V# |) H/ w5 \
                                                        d<=d+1;$ M+ `0 o/ `! Y5 n; ~' @
                                                end if;; n/ P, w. M+ D5 z; V
                                        when "011"=>
' p, I8 _5 J  i$ i8 T# R                                                if (dly'event and dly='1') then
7 l; |2 s$ m4 D' y( f% ^                                                        d<=d+1;
- @5 s* b0 D: U- \: R                                                end if;6 x8 ~3 K8 F6 Z; N$ J
                                        when "110"=>( A; W3 J& _9 W8 V& F- l
                                                count_clr<='1';
# D8 q: I/ t0 S0 j9 ?2 r( `                                                d<=d+1;. r7 O4 E* T) Q6 f# E
                                        when "111"=>! z4 ?& e" h3 p# ^& P
                                                if count_v2='0' then7 O6 o: [  X- y' f% t
                                                        count_clr<='0';
3 ~3 w) e8 n' ^, S: B1 o6 c* g                                                        d<="000";# m; x: V8 g  T
                                                end if;0 ]0 T2 {* k% @# P' g' M
                                        when others=>null;6 K5 k: U  ~9 l
                                end case;
; p9 Z' I' S3 m4 G7 I                        end if;6 }! K* J  P* F. S" @
                end if;
% h9 f5 D* Z) p& m" ^        end if;
" L* D  K8 E" v        if coll_auto='1' then
* u& s+ r8 E$ t                if coll_manu='1' then
# U& h% o2 J  z( X9 \, Q! a                        coll_up<='0';
- }" }: Z: \1 j% C$ Q                        coll<='0';4 d6 c2 B3 X3 m0 G
                        cold_pin<='0';
2 |  w9 z& I! H! Y/ {& r                end if;
! P9 z7 ~+ l# k- I+ C3 W6 W2 Z6 ^/ ~        end if;
7 W) X& V! ?! v: qend process ;
+ o# G4 l, d/ y+ a7 ~: Iend cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-28 04:38 AM , Processed in 0.171010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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