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 this
8 ^& 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 g
5 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 R
input[7:0] p ;
4 u) l& ]2 R2 U6 `0 o
input[7:0] q ;
9 Q. a- O# Z& Q) u- a
input[7:0] p1 ;
0 C6 O7 C1 M( }& ~" ~% i1 _& b& X
input[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$ C
wire[15:0] k3;
/ c1 I; e; C; h
wire[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" E
assign 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$ v
assign 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 m
reg[3:0] show_a;
: D* u3 N) G" l4 S2 ~, z5 T
output[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; _" L
3 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
begin
3 G, o# g/ }# y% A c' @
if(!rst)
$ e3 _, {# j9 i( @
begin
2 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
begin
2 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
begin
3 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 `
begin
7 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 g
9 t! K" v0 n" E
end
8 ?. q0 K; s. C2 L1 w+ T
/ Q* `3 p" `- @* I: N9 F& Z
endmodule
作者:
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, C
wire[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 k
assign 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; S
7 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 X
output[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 Z
assign 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