Chip123 科技應用創新平台

標題: Verilog 宣告的小問題~ [打印本頁]

作者: kokonut    時間: 2009-6-2 06:13 PM
標題: Verilog 宣告的小問題~
就是我在跑Modelsim的時候! i' ]" X" A; J! e

) b# S- R1 B0 I9 }4 o1 v* s2 g會出現以下訊息: U  L  I  m/ i
, g+ @6 h+ d2 E4 I
# -- Compiling module LD_feedback_0601# j3 n  ?! F$ U, r3 T8 _
# ** Error: ld_feedback_0601.v(29): 'bias_set_t' already declared in this8 ^& e7 w0 K* W: Q2 H9 ~
scope (LD_feedback_0601).
+ v. ]% }4 j+ s" T) w# p# ** Error: ld_feedback_0601.v(1): Identifier must be declared with a port
; Z; k" p9 ]% q8 h- ?& [mode: bias_set_t.! \8 t" h$ a2 i; n! Y# s
# ** Error: C:/ispTOOLS7_0/modelsim/win32loem/vlog failed.
( `2 ]% u, C3 y# F1 f; ^1 [+ x& F
- @8 B+ o4 P% i( W他指的是我bias_set_t宣告上有問題& k5 D9 O: i" T8 u; [& L9 K

( m- z4 k' v# b3 U) g* k! A0 m可是我以前這樣宣告都正常阿  ~"~2 E  ?2 I' a7 ]$ A1 j7 J) U+ Q7 \

" |" A( H7 M3 D2 B) [0 H2 ?( y2 \: }/ X
感謝解惑~6 }! ?: N7 {0 L* a
2 M8 L- W$ ~2 M$ y
...........orz
7 ?$ H1 r0 I" W: i2 P3 }# F1 F
) L9 t- Y7 g1 d' E) h=============<程式碼~~~黃色部分~~~!!!>==================" @/ X# B: N; H/ j1 g% K
module LD_feedback_0601(clk,rst,E1,E2,p,q,p1,q1,bias_set_t,show_a_t);
1 ~& n6 o+ o, T* C3 T1 b. h+ _% T7 v/ @9 Q

2 A; i" [3 g9 ]1 D: f4 F; b/ u" A; D7 o( N
input clk,rst;
  V( Q- I. V+ @6 o# c  g5 N4 z- d  ~: f" I" z; Z
input[7:0] E1 ;  _8 q2 L% z. i6 C4 b9 P2 z
input[7:0] E2 ;
% @) S2 J7 L/ F+ L5 Rinput[7:0] p ;4 u) l& ]2 R2 U6 `0 o
input[7:0] q ;
9 Q. a- O# Z& Q) u- ainput[7:0] p1 ;
0 C6 O7 C1 M( }& ~" ~% i1 _& b& Xinput[7:0] q1 ;
; i, j; e) `- V4 h" X
; E! K) i8 u. J  x1 @$ v' h* x6 y' W0 R0 W. G
wire[15:0] k1;$ \; [! k$ m- [
wire[15:0] k2;
$ d% O5 _# \2 j$ Cwire[15:0] k3;
/ c1 I; e; C; hwire[15:0] k4;+ z, ~! q. S  X# l5 T

8 t. A+ g: z: d, j" L6 J+ k8 D* ?/ t) ]* F/ z* ]: K) F0 e
assign k1 = E1 *(q - q1);
) X8 H" {3 u1 n9 z1 _3 M8 ?assign k2 = E2 *(p - p1);
3 S" G* x: E; k5 ~7 o" Eassign k3 = E2 * p1;; V+ t) Z3 w! \$ G
assign k4 = E1 * q1;- j5 h) s8 f; M6 `8 N

+ }, E. m. [* v7 C% C8 R2 X//////////////////////////////////
" Q" [8 ~3 \( v0 F1 `reg[7:0] bias_set = 8'd8;$ r2 i- Z- D4 e8 w8 w9 P2 Y
wire[7:0] bias_set_t;1 A2 m, v: A! b' \/ j4 C
output[7:0] bias_set_t;; B6 K7 b+ J. {( m$ |% S1 q) F6 T

  [& E/ \- [. T0 t$ vassign bias_set_t = bias_set;
2 b; \+ C6 p1 A, @& N: {; X- i3 u* b( O2 M0 q$ w

5 d( K) t9 N5 Z+ e9 mreg[3:0] show_a;
: D* u3 N) G" l4 S2 ~, z5 Toutput[3:0] show_a_t;/ g0 Q& G1 F  e* M
wire[3:0] show_a_t;
; `5 N) D( X/ c+ u; j/ ?3 @& k; _" L3 f1 C' s7 [4 Z) V
assign show_a_t = show_a;
( S1 y( u4 V7 q0 b" [, E//////////////////////////////////
9 @' g( J2 g% v6 `, U2 q* i, B; N

( O# J+ E0 n, b  p2 A4 t! _always@(k1 or k2 or k3 or k4)0 n/ i' n  ]* \0 j0 P
2 Z# G5 E; e; K  r- E3 B
begin3 G, o# g/ }# y% A  c' @
     if(!rst)
$ e3 _, {# j9 i( @       begin2 q" l9 _& j: r! ?' S( C, B
       show_a = 0;
/ w2 E) p7 {$ N       bias_set = bias_set;! I% [* t9 |& T, n8 r
       end
' A' F0 E* R; P3 k8 h: i! y     else if(k1 == k2)
/ M9 B0 g% ?* ~0 ^6 V0 E% k2 ]  H5 i         begin* O2 o9 r) P/ `9 V; n1 P$ ?
               if(k3 == k4)
- i! T* Q& O! `                 show_a = 3;6 v9 F% I' ~- A/ y/ v% \8 a
               else if(k3 > k4 || k3 < k4)
: j8 z+ X* a  r: S/ v9 k, g6 G                 begin2 J1 p  K9 U5 w: T/ k. ^2 x4 ], [
                   show_a = 0;
) y% C6 ?5 L$ U# B2 P0 C                   bias_set = bias_set - 1;
3 e$ Q4 q' m9 v  O  G' Z                 end
8 I. M! N  \( z6 ]         end
作者: kokonut    時間: 2009-6-2 06:14 PM
else if(k1 > k2)
8 `8 z/ K1 ^  i! R6 u9 c5 e! F        begin
8 t& L, Q; ~( a0 f6 V; l3 {             if( k3 < k4 )$ B2 T2 F% {' u  z( f
                begin
2 ]# J! W( p$ ~8 q/ w" t6 m( j" g+ i                   show_a = 0;3 `) m! L) ^  ?: y% {$ e# B2 U
                   bias_set = bias_set - 1;                           
& U. Z( \2 a" H0 ?; j4 ]3 K                end
6 E' s# H8 p$ {! w* m* D   
* M, I0 T2 h# ^             else if( k3 > k4 )
) y5 b1 D$ P4 J3 C3 A% l                begin
; p' f2 h7 M% A7 U                        if( k3 - k4 > k1 - k2 )" {- E: w+ }( ~, X4 G5 B# u' V
                          begin
; y, n6 M0 o1 Q                                show_a = 0;% x! N$ _6 Z" x, ^
                                bias_set = bias_set - 1;                             * R3 _3 L; A# S$ k4 g- @: ~/ x
                          end
7 E; o; |7 w9 B1 v0 }+ [; J  o5 D
$ }1 N# S9 ^" y1 q( Y* }                        else if( k3 - k4 < k1 - k2 )2 X+ c  @# j& Y- }4 O" e
                          begin3 m" }; E3 p$ A! {
                                show_a = 2;$ ]  c* ]0 C) _
                                bias_set = bias_set + 1;                             
3 }5 T0 J3 X4 z0 ^                          end 0 d$ E( H7 Z" ^, O  Q1 ]
                        else if( k3 - k4 == k1 - k2 )' z# e  G- n3 ~5 K8 ^! {3 p0 ~2 @) n
                          begin
7 k, D$ d" j, I- W; ^4 W                                show_a = 1;% W2 p9 K* D3 T7 c) A: C9 h7 x
                                bias_set = bias_set ;                             * c2 J/ x4 ?2 Q8 \, ^
                          end 9 z, R- Z; @/ P$ [' h/ n
                end                         0 y; {5 `! E# o
        end - _% ?) U2 s! N% n
8 o( G) o/ I& o& V3 t; M4 [5 r
     else if(k2 > k1)! O* W7 k$ Y; u  H2 r( ?" D
        begin& J+ `# c' V: V  t1 e( q1 r2 `
             if( k4 < k3 )
0 V( S. ~* T6 X  g" M                begin
: r) K* ?5 V6 n% X                   show_a = 0;
- J  K- u4 L6 H+ x( i" _& n                   bias_set = bias_set - 1;                           3 Y! s) M7 \7 F8 g
                end
作者: kokonut    時間: 2009-6-2 06:15 PM
else if( k4 > k3 )  d1 @( ~( M8 t- F( p8 x- ?
                begin
2 ?2 y; T5 d8 b: i# H                        if( k4 - k3 > k2 - k1 )  L, A* z8 K) b( P
                          begin
. f- T7 q) f( J                                show_a = 2;* _: M, Y0 `3 ]5 Y4 O
                                bias_set = bias_set + 1;                             
6 J" g0 c% n# U4 K+ l. d! T                          end " {$ w2 O# q* A! Y/ o1 _

, V4 Y* X5 r% X$ P                        if( k4 - k3 < k2 - k1 )% q5 }  c) a0 B9 M. f* B4 g4 `
                          begin7 C; h+ |% X, f" o, f0 w1 r
                                show_a = 0;; ?, q* ?1 w% d, r& {5 s' A
                                bias_set = bias_set - 1;                             7 j5 O# B4 Q5 ^& F8 W1 _/ P- v* y6 L
                          end
, A& H! b/ M4 G/ |  v8 m' J9 C$ F0 q4 `- n4 g  d5 A
                        else if( k4 - k3 == k2 - k1 )9 |6 m2 ?( b7 h9 I
                          begin
2 a: s) R2 x0 U5 R- F& @5 Z% s  U                                show_a = 1;
6 v* a3 z6 Z! t( n0 t1 F  ^  N                                bias_set = bias_set ;                             $ a- ~: ~4 T) n  L  |4 Y9 J
                          end
) e5 F7 }& a; q6 C8 X8 Q                end                        
7 r+ b4 L. [* {( y5 I        end
9 ?$ k2 y% A, a! T, c6 z2 g9 t! K" v0 n" E
end
8 ?. q0 K; s. C2 L1 w+ T
/ Q* `3 p" `- @* I: N9 F& Zendmodule
作者: kokonut    時間: 2009-6-2 06:16 PM
宣告部分用黃色太失敗了" E4 f7 h" |" I) D
! j7 U- N) j* p7 G
我重貼原文黃色部分& L3 b/ K4 e5 ~: V. }! i1 B/ k( G
& o! Y# T' V( ]+ b" J. S! Q- @
//////////////////////////////////8 n) R5 ~. [& |" {, {, u
reg[7:0] bias_set = 8'd8;
2 P; `! `+ L, Cwire[7:0] bias_set_t;0 U. j/ @3 I. E5 O
output[7:0] bias_set_t;4 Y" a* e, q2 I- k3 ]$ H

. y( Z0 Q# N8 [9 p  T1 kassign bias_set_t = bias_set;
8 U0 W# V6 U: Y3 M4 b- }+ Z
" Z4 R3 J# B4 ]2 r% P# _6 U/ D
reg[3:0] show_a;# ]" F9 \; X5 K3 n6 y& C' B9 h/ ?
output[3:0] show_a_t;* \. N# {3 Q2 O& D
wire[3:0] show_a_t;
+ d  c4 K6 V0 P; S7 x6 y0 e* }2 P4 U" }
assign show_a_t = show_a;, H9 }6 n+ ^6 a
//////////////////////////////////
作者: Pegasus222    時間: 2009-6-2 06:50 PM
請改順序如下試試5 Y; [$ x& Q: P* [2 w2 ?/ ^4 s

2 U( W/ z9 h2 X! u7 ]- n8 Xoutput[7:0] bias_set_t;
4 k" K- ]. f8 C4 e( S' g2 A, ~- S! E6 _& c8 G6 O
wire[7:0] bias_set_t;
  N" Z  u, k* n/ Y& S3 K; @3 Zassign bias_set_t = bias_set;
5 T8 |7 U5 d0 f4 C+ K/ u. a! Q0 a/ K# _, d" l4 n) g2 y
Good Luck !
# U2 I* B3 \9 o) ], a$ n" {& Z0 H( G; W) t- Z2 W) n' |
[ 本帖最後由 Pegasus222 於 2009-6-2 07:29 PM 編輯 ]
作者: kokonut    時間: 2009-6-2 10:56 PM
感謝樓上...orz
9 N9 D. ~* ?3 i: p1 k. O" O, O0 |5 h, ^

% E# S4 Z9 Z) I. I+ e真的OK了~
9 H/ L0 A% R1 P2 i9 @" E9 S* o* n3 D2 q: P. K" c
我還需要多多加強~!!!




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2