Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
6 L1 ~: c8 e6 a1 o因編譯會出現以下訊息( @+ ?& L* r+ d, G2 C% e$ O# V
Error (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge
! b; \. T. ~+ zError: Can't elaborate top-level user hierarchy) s- k/ E. V9 [
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
$ D) P5 o7 O' J# f! h6 |) i        Info: Allocated 144 megabytes of memory during processing
( ]& O; @% D; @6 m  `9 a        Error: Processing ended: Fri Oct 18 21:24:23 20135 Z& x. e* M( O4 k8 q1 I
        Error: Elapsed time: 00:00:02" P# o& t' o' L; q. s9 w7 i$ Q) N
Error: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings5 d# y* ]1 g" K* m6 M, Y

  m) i, ?0 x  t9 J/ s- B程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
, p  K* P' |+ @$ X" f
; o' m0 h4 F, Z' q0 R1 v
3 [, I) h! J, D' D6 I# Z! g; G6 E3 Z, x; F4 p
" I* G& t2 F* S# @) T
Library ieee;
6 |5 B. m. l! i  y7 [3 cUse ieee.std_logic_1164.all;% B+ x- H' Z  s* a! I
Use ieee.std_logic_unsigned.all;+ B% p" P8 V% Y' q
Use ieee.std_logic_arith.all;1 N2 _8 }4 ^" M
! t  F' k' d7 D4 J
Entity CUB is3 A4 D# J5 f: V1 I, R' {
Port(: f) O& H+ [) M/ G* v5 q9 M
        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;6 H5 C4 K6 j9 z; T, w6 w4 ]5 _/ C5 ~
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
/ ]3 t, \  m1 ]8 h& a' y6 F5 I7 R);/ a! H. {5 P8 S7 O% G
end CUB;5 p: y* g; z: r" O9 C; V! R, C7 n
/ I! R3 n7 `* `0 U- P
Architecture cub_arc of CUB is; L+ K! G4 B& Y) L3 _
signal d : std_logic_vector(2 downto 0);
* h$ @2 V$ x: o9 t1 l5 d/ t* GBegin+ x1 A$ l$ Y8 c0 A/ \3 C

/ p0 {/ z/ w- e  Fproce1rocess(coll_manu,coll_auto,count_v2)
# y/ ^+ L7 v' d0 rBegin2 K. c7 m  k& Q. r8 h' ^
        if coll_auto='0' then1 I3 l; s+ m- s
                if coll_manu='0' then, `( v4 b% g# v9 y; b' D; _0 v
                        if count_v2='1' then
3 g& \- z3 _# p! S  c$ m                                count_clr<='1'; 4 f1 N9 p2 ~0 n) h
                        else
. k1 W( n& c1 a. J( U( _# S* ]+ f                                count_clr<='0';" S$ p5 k. p. {1 ~$ \% A- p
                        end if;
8 s# r! h8 I! s4 G" _$ r) M                        coll_up<='0';
! `9 W: e! m8 q! g7 U, |$ c                        coll<='0';
% X: H! z0 D. i2 E' N" Y                        cold_pin<='0';
2 M# B  o/ L1 d- W$ b$ ~                end if;+ h3 S, `1 x- \/ G
        end if;# w0 b4 a, P8 c4 o- ~, D5 Z
       
& A9 V  U% j( P8 a, T! r  I/ v        if coll_auto='0' then3 }5 N/ m* d2 ~/ i% G7 }( W/ |
                if coll_manu='1' then* t- C# h; A% r9 n( B6 ^
                        if count_v2='1' then
- `! C8 y3 @6 Z0 s                                count_clr<='1';
" v2 ?7 V* S1 }- f                        else* g! w0 Q! n- ^- L, B
                                count_clr<='0';
2 ?+ d* G; T' l, _$ |+ T                        end if;9 S% @& L% o, p' w6 }. Z
                        coll_up<='1';
8 y: j. ~( G" V6 T% C                        coll<='1';$ T+ ~/ s9 v2 u! w  E" ^3 T
                        cold_pin<='1';
6 p+ N( i. T, y                end if;( s; W2 b& ~: ]7 D3 G/ |* m
        end if;
- y. w  `6 @# G- b       
2 {5 b- a1 S% I2 c        if coll_auto='1' then2 u& G0 n4 m9 C$ T0 Y
                if coll_manu='0' then  Z+ ^& n# Z. ~/ S* T0 R# b
                        if (sv_ctrl and count_v2)='1' then% k& ?4 h( E% M8 o  J  A; a
                                case d is
4 G% o: ^# r, U' H                                        when "000"=>) w; b5 m1 h  _6 c1 ^
                                                coll_up<='1';& B# H' O: \. \' Q$ J
                                                T1O<='1';. ?( I& N2 ?+ X4 C
                                                d<=d+1;2 V- n( r; V! A2 _
                                        when "001"=>
/ _: r2 m9 H  }" d  e- K                                                if T1I='1' then+ d9 ?9 \1 z0 G# Z- X/ S
                                                        T1O<='0';& u- ?2 c# p# ]* G4 g0 O; ~# I
                                                        coll<='1';
* D+ s8 r" y8 Y  f                                                        cold_pin<='1';
# h# B5 A& E/ F2 r; z. M; B, K' O                                                        T2O<='1';% x" d7 a% q( y- R9 s5 m$ D
                                                        d<=d+1;; I7 ^" `) H% N7 c8 f. H" j( f# W" K
                                                end if;
; g( X8 S. W7 n+ G" g                                        when "010"=>
" B4 |% |( U! F7 E+ x7 d                                                if T2I='1' then3 G# B# g4 F: j# L% J6 V6 U* ?
                                                        T2O<='0';" _$ \% s6 p- @% y1 y6 Q1 l2 R4 M
                                                        coll_up<='0';- O0 ?0 s, ]; j
                                                        coll<='0';
1 p* h; W# j( S4 K                                                        cold_pin<='0';
& X, U2 z# b1 d/ \, H6 i( R/ Q                                                        d<=d+1;
) a. W2 L! N! _4 k( e- ^& Q                                                end if;. t: G; P1 K" G
                                        when "011"=>4 Z; I9 Z7 d' x5 |1 S: {7 u
                                                if (dly'event and dly='1') then& q& Y6 o2 _, P: J  j6 i
                                                        d<=d+1;( C, C" M. L7 S) f' l
                                                end if;2 ~' i" j# e+ J" T6 b) W
                                        when "110"=>; M( ~/ a4 J" q/ U  ~( W
                                                count_clr<='1';
7 g4 G/ I- b3 A) Z                                                d<=d+1;
  y, b" ?2 F+ n: f  M  F                                        when "111"=>
7 C! u9 g' b( I% U                                                if count_v2='0' then9 I/ E- C; A. V# P# M" u
                                                        count_clr<='0';
+ }( s+ k! `- G" d0 G                                                        d<="000";
+ _* H$ J7 I3 {$ }! S, W1 ?9 V! k- G                                                end if;* q# l, {, B+ [' k9 C  b6 D$ B
                                        when others=>null;4 ?- i' g$ q3 Y$ ]/ Y
                                end case;
3 [, P9 V/ g4 |: j- h) ^7 v                        end if;
! D3 O- X" p4 G: L$ s                end if;; U: g& |3 Z' ^2 ?3 T5 T& y
        end if;/ w# {, F7 Y* k5 y
       
, q5 H) W! i2 U& s        if coll_auto='1' then  j4 Q$ v' o) {1 {
                if coll_manu='1' then9 c/ m& p% |+ P8 t& L
                        coll_up<='0';! E8 r8 v* R% U. i( s. m
                        coll<='0';
! B. Q$ H) n, r4 g                        cold_pin<='0';- l; r; C, j8 Y# z# ^1 [- Q: R0 ~
                end if;: [5 q& [% Y% V( e# a
        end if;
1 ?$ w0 n7 v7 jend process proce1;8 b" q. a4 m* ]
2 g% I7 l* ~! p
end cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯
; ?4 V# g/ g+ y4 a- I  q
4 X9 p3 G6 G3 v4 b8 R* \( c, X3 A( x. J8 `7 o
Library ieee;  ]6 j. U7 H6 S+ F
Use ieee.std_logic_1164.all;/ y$ @) U; X. r% {
Use ieee.std_logic_unsigned.all;5 |8 r+ W7 b) u% K; S
Use ieee.std_logic_arith.all;$ P. ~+ h0 P: U8 q

5 s% z1 ?/ {+ NEntity CUB is& W# `9 z0 c$ |+ _2 ^2 H
Port(
% c0 t, i' D# k1 @        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;: l) z- q) x" H0 L
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
2 h5 }$ ^2 [$ G3 n" q- \! g; p);
+ ]- F# e8 q6 Eend CUB;
: r' E3 P3 m6 Z' |
; R2 q+ F; p/ G9 t& z( ~Architecture cub_arc of CUB is
. V  E! K2 j3 k) `2 F2 ~4 F. M" w/ A
signal d : std_logic_vector(2 downto 0);( c% w6 f; I1 R" N1 v

0 u7 K2 a+ K, y" h5 M# _0 o* rBegin  . z7 [7 ?; b/ J1 Q! Q

* \% d: W" h0 D! t9 O9 e# Rprocess(coll_manu,coll_auto,count_v2)1 c0 v) y9 G) l

/ R& }" g/ D9 P* g- BBegin- R) a+ v5 [/ a* X9 J- K
. f9 q7 g5 Y2 Y  s' C8 @  [
    if coll_auto='0' then. z+ c& n- |8 A! Z
        if coll_manu='0' then% F9 z7 y, E1 [9 j
            if count_v2='1' then
  ~; H. d- E1 {+ q2 @. N% D6 L& N* G8 A                count_clr<='1';
1 p. ]* v6 Z& `5 h            else
0 \& i  c* D* ]                count_clr<='0';
* b# \, P/ j1 l4 R# w0 g            end if;. `% ?+ C. M9 s
                coll_up<='0';; A+ D9 M6 m- D& U) C: R" {# [
                coll<='0';
+ R$ d9 Q9 M' W" ]' a                cold_pin<='0';/ {+ h6 Z9 ^6 z
            end if;
3 e# S$ k! ]  N+ e        end if;
  j0 a' Y7 Z- K) _* \) B        if coll_auto='0' then
- W5 Q, F# T  \1 R3 L                if coll_manu='1' then
' `2 M$ y7 ]8 b; n3 ]) }                        if count_v2='1' then
) @* b# t/ J" C6 v7 M- L+ p+ C/ a                                count_clr<='1';
5 d! s" X1 }% ]2 p, w9 I; x                        else
3 W/ p5 V. _( a4 v                                count_clr<='0';
% A- p/ H  ?' J; ^                        end if;2 @" a* Z# w9 I5 g' A- I" ]1 N
                        coll_up<='1';
3 L' q: E% [$ M# h: V+ U                        coll<='1';
& R9 [5 s8 Y" e                        cold_pin<='1';' h* S9 c/ d: e/ ^
                end if;! ~- u0 V* n3 o' g* I* p
        end if;
, L& B* @, P/ t9 \$ e  C- ]( _; N. D4 i- |2 f' v
        if coll_auto='1' then/ i  N# |/ G: l; v7 Q
                if coll_manu='0' then
. y( O8 b. [6 C& V+ u+ H                        if (sv_ctrl and count_v2)='1' then2 L9 ]+ _' g, a6 x4 @/ Z' R
                                case d is
' {; w6 v0 ?! t0 P; w- D- e/ R                                        when "000"=>
2 c2 B+ A2 \! v# Z$ P# v" ~9 ]' j                                                coll_up<='1';( Q: A0 U' N2 H2 H, W
                                                T1O<='1';3 ~% {! Q9 [- J9 e3 B
                                                d<=d+1;
# Y: z( Z: z, X+ e/ b) M                                        when "001"=>
6 O8 ^( @9 w8 ?1 H1 c! c- L  {                                                if T1I='1' then) s/ a& f/ c- B( b
                                                        T1O<='0';
) v0 E$ r1 }! `7 a9 B                                                        coll<='1';* g$ c" r* I9 d) G1 R/ Y
                                                        cold_pin<='1';- k9 E! \3 l, D! ^5 F6 n3 f4 H
                                                        T2O<='1';
$ a! g3 `8 w: _* \/ m                                                        d<=d+1;
8 N; g) }6 I. t' M) V                                                end if;) x3 B# l5 q4 d( z3 T- v  R! k/ F
                                        when "010"=>
) i) H; n5 L. M, O* a6 x) t                                                if T2I='1' then$ W6 k6 ?6 t. u+ F5 E
                                                        T2O<='0';# D4 n+ K, _' K0 q+ G
                                                        coll_up<='0';
  e! U  |6 o  v8 S7 _; X                                                        coll<='0';" l, m; n' z) U( J: x8 M0 n
                                                        cold_pin<='0';+ @! e0 y5 L3 J& x8 k$ `7 m7 U: M" a
                                                        d<=d+1;
. q" f& q2 m( c3 T                                                end if;
( P! a; G: P) n% @, ~                                        when "011"=>
/ [3 F2 e: w! k2 o& O                                                if (dly'event and dly='1') then$ F0 }6 J. q2 v& Z4 e7 E, g
                                                        d<=d+1;* C6 H1 v$ T0 U" Q# D9 t
                                                end if;
+ B/ \) L$ X  c6 w6 W8 Y$ _                                        when "110"=>$ S/ |6 Q- M& w4 x  J" I" \. L  S# B
                                                count_clr<='1';
9 t8 g7 t7 _) p8 w" r                                                d<=d+1;  [, {( l2 a' B
                                        when "111"=>
) F/ C4 o$ L2 b8 l0 z                                                if count_v2='0' then
. d5 l- n! e! t( ]4 B4 m                                                        count_clr<='0';' d9 j$ u" Z- \! O# O
                                                        d<="000";! v: ^- J- [" A8 q- j7 P# c
                                                end if;/ U( X( W" T% @
                                        when others=>null;
( A6 p9 b0 @5 |/ N/ C9 x& R8 A6 k5 {% H                                end case;
, F/ F" f* n  q. Z% E) X                        end if;: I) y4 Q# z2 h. j
                end if;
. b+ O( F" ]. v+ p/ K1 l0 A$ G        end if;
# `6 C0 @( b7 v) Y        if coll_auto='1' then
0 j0 }5 Q, S4 d: P) J- R/ f/ \2 U                if coll_manu='1' then
6 K! h% c2 p3 |4 V% V; M. v/ ^                        coll_up<='0';1 B4 @8 I6 _) q, \9 R# g) W8 r) d3 X: j
                        coll<='0';# `1 t/ G1 D8 R" d; y2 `0 B+ p
                        cold_pin<='0';% i3 y) ]/ l) g1 u+ g2 c7 O: s
                end if;/ L; U1 n; s3 m" \- I' M
        end if;
( q5 U" \6 C9 L$ a9 Eend process ;
) Q8 a' P3 Q3 A1 }end cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-8 11:07 AM , Processed in 0.110006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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