Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2013-10-18 21:15:06 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
一般dly'event and dly='1'是不能寫在case裡面嗎?
- |! E3 p3 L/ q  j: Q0 B因編譯會出現以下訊息
, I* T1 ?' I# X2 wError (10822): HDL error at CUB.vhd(70): couldn't implement registers for assignments on this clock edge# K! m+ G$ d8 Y. T) H9 o3 z
Error: Can't elaborate top-level user hierarchy4 A1 H( A) H  R& i
Error: Quartus II Analysis & Synthesis was unsuccessful. 2 errors, 15 warnings
$ t) U/ R- _3 ?) z- k        Info: Allocated 144 megabytes of memory during processing: i& [; q4 {7 g4 b  O
        Error: Processing ended: Fri Oct 18 21:24:23 20139 O% S6 h: O( {- T; U
        Error: Elapsed time: 00:00:02
  K" \# ]; q% u& B# |' G" |' r1 ^, NError: Quartus II Full Compilation was unsuccessful. 2 errors, 15 warnings
* E0 r) t- _4 }8 X. ?6 L5 F: H7 \1 G! ~& H5 v3 ~
程序如果寫的不好,可以幫我改寫,因是自學,所以比較少機會可以看到其它人的寫法!
) e6 W) _) e3 B" m3 J2 o
6 Q: C  Y9 T9 `" {  t, t. R: L6 S/ v9 U" O, N

1 x' C$ o: H( I, \$ F& C4 l
/ S) [% `* T$ m3 oLibrary ieee;. Q3 v0 M- P8 `5 V& Q! A
Use ieee.std_logic_1164.all;8 ]$ w6 y5 h" A* E! u* l
Use ieee.std_logic_unsigned.all;% i# [( `2 ^$ ]) I
Use ieee.std_logic_arith.all;
" M0 B! ~3 I, C( G' N0 ^1 p" j: Y2 }. ~
Entity CUB is
8 Y7 |& S3 \) E' ?Port(
6 n3 o" D3 M$ H8 T- K# T2 I4 {        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;
8 `2 |2 J' P. m/ P- p& p        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic
" S2 k! }) H% D& Q8 A);# |& I5 t# N% z  ?7 w" W3 G
end CUB;2 B# X) l. E0 t% v

# j) }  u" ^6 _; Z, EArchitecture cub_arc of CUB is
4 t* q/ U% P( b8 @  \/ x, u1 s1 v3 b9 dsignal d : std_logic_vector(2 downto 0);
% ^+ |/ ]+ p9 ^: L& HBegin
$ Y8 m/ [; \! H; F% U/ M, S, J5 ^0 K+ Y  z, ?+ E
proce1rocess(coll_manu,coll_auto,count_v2)
% H7 a1 p- v( w8 l! c! h' QBegin7 L+ U$ @6 |7 y* ]  Y
        if coll_auto='0' then  i4 N6 _/ b& U- O! ^
                if coll_manu='0' then% ]' z1 [9 |8 h+ u# V
                        if count_v2='1' then0 }( v2 D: e0 N5 q8 q
                                count_clr<='1'; 8 H( h, @7 b) I& r/ r
                        else
" n4 O$ d% p( X                                count_clr<='0';5 ~# I% W6 J9 b. C1 W+ i3 K! D
                        end if;
3 E) E8 }) {9 A- \                        coll_up<='0';
0 S4 N; X0 o5 W5 H! ~                        coll<='0';) z" M$ V3 L- E3 H% q& n- q
                        cold_pin<='0';# C3 A9 f# f4 @
                end if;1 s" p% u% M3 |& V3 I
        end if;; V6 O: p* V0 E3 M2 Q' m
        2 F1 w1 A( m* z. V& D3 P' c; v- w
        if coll_auto='0' then
0 W9 Q: p( p) U" D, l5 p: P$ A" p                if coll_manu='1' then
  K1 C% V& b8 ~$ i: N/ H  s* q; L8 ~                        if count_v2='1' then- h5 G" r2 P( t7 U" [+ d, f
                                count_clr<='1';
2 V  V/ [/ s. r6 q, _1 d( H0 E                        else- ~& q4 z2 R3 `1 p
                                count_clr<='0';( J* S" C4 O* I( t* d# r
                        end if;
+ h! i. x' s1 U3 _% c                        coll_up<='1';
: I7 h+ [& [% ]; \; C                        coll<='1';  D/ m  s) ~) n5 {
                        cold_pin<='1';5 V; T* K: O; J& N
                end if;
0 z, m# i1 z: s7 e, g        end if;
# b+ \/ p$ C+ {- ?& B3 v+ J: ]       
2 ~9 A! @6 y0 j        if coll_auto='1' then. d8 m) ?4 g2 [$ r2 z$ l
                if coll_manu='0' then
( c  B; I9 \; ^& E8 r% S                        if (sv_ctrl and count_v2)='1' then) `& w7 y0 u5 B1 h8 X0 m/ r
                                case d is
2 Q. t# u  {. J) V- N& x0 c                                        when "000"=>
+ J/ N+ W0 I) m2 z) t% N1 T                                                coll_up<='1';9 r( _3 |- [7 g# F: K9 k
                                                T1O<='1';/ B& _) r/ ?6 C
                                                d<=d+1;% H9 R" Q+ C3 C& g# `
                                        when "001"=>% W2 G) Z4 o; {0 F
                                                if T1I='1' then5 f9 P) E/ u1 m( o& H: _# n  Q
                                                        T1O<='0';" X8 `* V6 X, x$ I
                                                        coll<='1';
) r8 {$ d( U! o0 n  L6 v1 G                                                        cold_pin<='1';
0 @, r' h7 Z; [                                                        T2O<='1';8 k' J1 D$ O' Z
                                                        d<=d+1;
- P. G- Q7 J( f: D  R' ]                                                end if;/ r9 R! r/ q  i. m
                                        when "010"=>0 f8 \3 R+ k, b
                                                if T2I='1' then
( X* \$ w: o$ {                                                        T2O<='0';
6 a0 M6 S$ m) _3 w3 {8 ^* {                                                        coll_up<='0';: F) Y! F2 Q2 t6 U3 u( H: u) x
                                                        coll<='0';
/ d6 H- }. j& `; s) ]                                                        cold_pin<='0';0 N! X. M; e% @
                                                        d<=d+1;
1 _9 d. y7 z! y                                                end if;- `+ d: Y" s2 ?. {7 s. U5 U
                                        when "011"=>: x3 X( V7 ^9 C5 Z/ f# w! k
                                                if (dly'event and dly='1') then& w' @$ G2 d" w! e4 l* {5 \/ I
                                                        d<=d+1;
- c' F/ N, F: r7 u0 i0 B3 R$ D                                                end if;% W# u0 `- X+ O) O: U4 l9 A
                                        when "110"=>
' o+ ?" G1 R, I0 \' L, \                                                count_clr<='1';! a" F5 r* N8 l( f& J/ X9 Z
                                                d<=d+1;
; C- R8 U0 w7 W% ^                                        when "111"=>
1 k1 T9 o# W- h6 F$ ~1 g/ ^                                                if count_v2='0' then' p) N' i9 ?$ Y2 G. F1 V8 K/ `! t
                                                        count_clr<='0';! ~  I, q+ }+ {8 M8 v: v  B- p
                                                        d<="000";) q, p, H& T/ P5 s, g2 e0 d
                                                end if;; ~- h5 y2 b$ G: J
                                        when others=>null;( s& g  D5 v8 `# M2 `# R
                                end case;
- `0 `, g! V2 F. @                        end if;+ H2 }: w' w% X8 }0 A# _
                end if;0 K! Q0 R) O: E, T! B1 U
        end if;; m5 Z0 P0 T" \( T5 v2 Z" A. j- w
       
% C% W# z3 I! p6 ]% o        if coll_auto='1' then
  `) d" R* q: k- T! L1 F/ F                if coll_manu='1' then
' Z) c$ K" B9 @3 B                        coll_up<='0';
. s" S" \' ?( U2 _# k                        coll<='0';
3 y" \# g+ ~5 ]/ Z( H6 ~                        cold_pin<='0';
8 u' M* s+ i8 {6 d' k8 W                end if;
: V* ~+ m! {- w( G        end if;
! D7 B9 q1 u. d9 Gend process proce1;
( E( g1 ^# b- M0 m2 v& Y2 A
+ j2 }% g2 N6 F" K/ f, m) yend cub_arc;
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂9 踩 分享分享
2#
發表於 2014-11-12 10:14:35 | 只看該作者
你有打錯6 Y* R- S" A- {) Q
0 \9 S0 z' {7 W. r: P

! O6 r( g/ L5 j" a, f% oLibrary ieee;
4 L' L  c8 Y. }2 w" jUse ieee.std_logic_1164.all;7 |5 E, Y. T* K7 B  c, v! u5 P
Use ieee.std_logic_unsigned.all;9 Q5 G( U( y$ r
Use ieee.std_logic_arith.all;+ y9 }7 i; `+ u6 X% d0 \, M/ Q

6 g7 A) f7 g$ _3 s" _+ YEntity CUB is
- K2 ]- s5 I- ?. d  P& y$ u6 VPort(
+ D: r) L  L* ]& P9 ^        sv_ctrl,coll_manu,coll_auto,count_v2,T1I,T2I,dly:in std_logic;  {8 P" o+ v. M( M3 f3 `' C6 l% {- d2 f# U
        count_clr,coll_up,coll,cold_pin,T1O,T2O:out std_logic9 p, g; L& B" G/ ~( O( X  y
);3 U! X+ D6 u+ ~! q% L& p
end CUB;- h9 H/ i  k" F& [! I
% B& k7 [  o0 ~: H' W
Architecture cub_arc of CUB is
# l% g: q0 D2 j9 S# T8 h+ q4 f0 k; _6 |  x& U9 w
signal d : std_logic_vector(2 downto 0);( I. Z7 a& S0 q% R8 r. ~! a9 {# ?

6 J; d( G2 L; b, xBegin  2 E) j% v) M  }/ n

$ U# E: q5 r5 A& ~1 N1 Xprocess(coll_manu,coll_auto,count_v2)% \, Y. J6 e1 E& r' T7 `

6 j5 L0 I* w1 c- sBegin
6 X9 y: L' O  p7 n+ A5 J: D3 K3 y# h% x, |3 W; E
    if coll_auto='0' then- i, B0 D2 W0 S$ w; ~" M
        if coll_manu='0' then9 F+ I; W" {8 j! F# V# T
            if count_v2='1' then
$ }/ i' k1 B3 h$ C                count_clr<='1';
! Y' Y& }) ]" K8 x- G            else9 p" K  O. K2 K8 s! O; i
                count_clr<='0';: @  f% \4 o7 y  C7 {/ p
            end if;) _& O9 o' K+ r, {' G1 z9 n
                coll_up<='0';0 t0 i: Y* X6 p! g# R
                coll<='0';
! u: A4 v& P, W                cold_pin<='0';; ^0 i4 s0 y) `* T: ~) @3 `7 b# q
            end if;
* K2 q9 A! O' M        end if;
% y1 F. k& R; X) v        if coll_auto='0' then
: Z3 R/ w/ [' y* }                if coll_manu='1' then
- L1 |& Q# u* [                        if count_v2='1' then9 u* g- ?, _1 z1 \
                                count_clr<='1';# L: F1 I& B* _. _( g8 R
                        else
# z0 z8 L+ \* }: W' U) u: g# T2 a7 @8 p                                count_clr<='0';5 r# p% q8 g1 F6 C. r6 ^
                        end if;
8 b3 \  R6 ?7 s, [                        coll_up<='1';
% o6 E/ W" I' C, O3 G' P                        coll<='1';- [4 L4 M' U3 s# _4 f# B+ @
                        cold_pin<='1';# q4 t/ L, j$ B! U
                end if;5 X7 L: \! Q1 F" e
        end if;/ i: Q4 x/ b& ~
  i* [; g. b9 h
        if coll_auto='1' then
0 F- U; ~+ m, [7 I  k+ _                if coll_manu='0' then2 c3 {0 @" N! e9 I4 p/ G
                        if (sv_ctrl and count_v2)='1' then$ u8 W+ }9 x( V1 `& K+ l
                                case d is( w5 a* e1 l% U7 R; D& s9 _9 D; T
                                        when "000"=>( h! z7 R9 g8 s& c0 t6 a
                                                coll_up<='1';
  K+ X& B' B% \* @                                                T1O<='1';; X  a7 ^- o( c0 V
                                                d<=d+1;
( A& W  I& D1 m- g; r8 k7 L9 {                                        when "001"=>; q! u) |/ ]& W. g. L9 v
                                                if T1I='1' then
  I. C+ B$ x' n, n4 C  K                                                        T1O<='0';, g/ l* \9 p( I4 i
                                                        coll<='1';
& A" ^+ x5 x3 t  G0 R0 B                                                        cold_pin<='1';
* l7 S3 H- d" p. O                                                        T2O<='1';
% V' A( Y8 x8 b                                                        d<=d+1;, ~5 S  C  O2 ~2 T/ Z
                                                end if;
  x+ q$ B/ K7 ~5 b7 d/ a( m2 D% i                                        when "010"=>
) [- L  L7 {6 L4 L  N, F$ Z                                                if T2I='1' then
' D$ ^( o6 Q% P2 W                                                        T2O<='0';8 `$ }( V! `  A/ w
                                                        coll_up<='0';8 ~* }  Y7 b* y. z; a6 x
                                                        coll<='0';
- u1 b2 k9 V' B: `3 L: }8 j- \                                                        cold_pin<='0';
7 @# `1 I  Z; g. G$ H/ k8 D3 f) _0 t- V/ m                                                        d<=d+1;
2 B3 w& f1 G- H7 h; E/ q$ R) X                                                end if;
) \2 Q2 X2 P- }1 P" T                                        when "011"=>
; R) T# z7 \. L/ L: X% a* _                                                if (dly'event and dly='1') then
' w, l9 M8 P3 B' M                                                        d<=d+1;
9 O4 u6 w* o$ Z& |                                                end if;, L' ]7 L4 `: ?! @' I5 U0 m
                                        when "110"=>
# Z$ _' U$ M% d7 @1 a' D+ J                                                count_clr<='1';) f( O( z- Q$ A9 l% t) a- r, m
                                                d<=d+1;- P9 E5 Q' ^/ ^: A, \
                                        when "111"=>* H# d/ I) m, N8 d; f
                                                if count_v2='0' then
: l2 k7 I, t4 _% y* K                                                        count_clr<='0';' h4 ~  l% d2 _# Y- K
                                                        d<="000";
' }+ Y2 v- Y6 V1 {* T% a                                                end if;5 C- [$ f+ @# ?, m
                                        when others=>null;
# y5 F! n6 k% N1 |: |% J+ Q                                end case;
2 R. N- n: [  S. p! {/ ]                        end if;
% ^6 D: D0 Q9 u                end if;$ _" [: E: s' y' E" k
        end if;
4 C- k' f+ n4 y9 `6 s+ }- |6 `" s        if coll_auto='1' then* v: ?2 }% E6 y9 ]- q
                if coll_manu='1' then' V( {: ~- M  O2 [* W8 @
                        coll_up<='0';' d/ |$ y' U/ y1 [7 w" W$ t
                        coll<='0';
# F- m7 N3 o6 g% m' @. {# @                        cold_pin<='0';
7 t& v( e8 R/ m; u                end if;* B" g! s2 F! C
        end if;
& Q! j! y2 @% N: `2 p: }1 B2 Vend process ;
; ~+ ?& _+ z5 J0 b. nend cub_arc;
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-20 04:30 AM , Processed in 0.112515 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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