Chip123 科技應用創新平台
標題:
關於verilog的除頻器無法使用modelsim模擬
[打印本頁]
作者:
leon1235
時間:
2010-9-17 11:33 PM
標題:
關於verilog的除頻器無法使用modelsim模擬
下面分別是我寫的除頻器及它的激勵源
. H! I3 t9 R ?9 t0 u1 H
但我使用modelsim時卻無法正確的讓它產生振盪
7 V$ T% c2 J0 v/ l
該波形完全處於0狀態
/ _' L0 J5 F4 R
但實際用fpga燒入以視波器測卻可測得其波形
9 s j' w2 U& w
不知道是modelsim本身看不懂我寫的
6 M8 S' G, V: J# w+ O1 |6 Y$ @' F
還是我根本就寫錯了
7 G* p3 M3 k+ M; ]
又或者是testbench沒寫好?
' v$ Z9 b' t) y% S7 g; @; |4 [9 k5 n
煩請各位大老多多賜教!!
6 }" t+ z6 ?8 y# s
0 t3 Q, X M# H; U. D
/ _/ `+ I* _7 o7 J" v
module F40M20M20k50(F40M, Rst, F20k);
7 ~7 \& F! Z. [. p/ [' |1 B
input F40M;
! C- I G$ S) K& M: V' v* v
input Rst;
7 D* ^. i0 c( ?) @4 I
output F20k;
$ Y4 u- a! ? C0 J5 X) v: k5 |3 |) {
# r$ f4 c0 {! C7 }
# w }* e. C8 V: k4 X/ Q
reg F20k;
3 H$ _ Y% R+ T: j
reg [10:0]B2000;
1 v0 v# V1 L+ }+ y2 K. D; T- D+ i
reg Count;
) V6 v( A& \" M( f+ a' D
# U$ {9 T9 d9 K) h: O5 d( S
1 o8 A: z* S V, L( I6 U1 y3 P
always@(posedge F40M)
. K, `/ \* G# L2 ]9 g
begin
( Y1 C1 V8 D$ M( ^ a
if (Rst)
# C$ ^( m1 n2 k5 D8 T0 c
begin
7 ]6 p3 Z5 W) J* b1 ^; E7 D A+ V# p
B2000 = 0;
( E$ w9 M6 q V' @8 K; y- Z
Count = 1;
. v# v# Y H% W' w, d
end
" B: g7 g* ~# Y M/ n" p
% Q- x# ^$ o* Q7 O) k
else
I5 y7 N: M/ F' A( x7 y. e& x7 X2 K4 e( ]
begin
) Z. `: c: j$ B, G: A: I& i" X( ^
if (B2000 == 2000)
$ i& t1 b% t1 A/ V4 `
begin
( W0 @ `4 z$ u# M9 U
F20k = ~F20k;
" Z& _1 S* o# K: O/ A) N# |7 h, i
B2000 = 0;
8 V/ ?2 U9 ]9 Y. z( o! q& C
end
. p2 ^4 D+ I# [ g. r& h2 ]
else
( i- q7 y9 |6 N9 ^ x" H
begin
5 z+ Z' k& y2 l* O5 a' N6 S
B2000 = B2000 + 1;
, N) ?: d8 B! Y2 F; h' B
end
9 f2 x2 U4 S5 Z/ z( Y* r6 q
end
, s c2 m% x6 U9 G( {1 C
. l- \. G; o! B! o
end
9 ~3 j5 P/ A* M
0 ?9 O/ N' P3 x# D) L
endmodule
) R8 K1 q C" {9 z" X5 J6 ?
+ c! V* E- ?* c# N/ o. D
---------------------------------------------------------------------------
& [# P9 `8 b @- M7 Z
`timescale 1ns/1ns
) m6 g; f# T- u) v( O0 A. H2 }
j, J$ L7 k4 _" r
module testbench;
* b9 \$ W! m4 ?
* ^6 C9 C1 Q% u
, ^) y5 }, c/ ^: b: K( u9 j% z
/ H, @, z1 I9 Q+ X; ?2 ^& ? _! [
reg F40M;
+ I1 \5 e, \: k+ u
reg Rst;
J) p) p: c' a* C5 P4 a" g
wire F20k;
* M0 T f8 B/ b& K. g5 ?/ v
a; U! U& F q$ W2 a/ h! d
F40M20M20k50 ReiRong (.F40M(F40M), .Rst(Rst), .F20k(F20k) );
' ?, l9 Q9 F7 K' Z
) U' o# l- J( K2 U. k
initial $monitor($time, "F40M = %b, Rst = %b", F40M, Rst );
a& k2 `+ _$ ^
+ O7 O; U2 }6 P6 ~) [
initial begin
R6 x3 A& V+ {# I, m
2 s6 M0 H! X' l, N- g
F40M = 0;
! ^5 G+ M" E" }" X- ^3 q
Rst = 1;
- O& j4 g; z; |1 \
/ W8 K+ Z+ [2 I1 E6 M: @
end
8 Z1 k- t+ q$ |' A4 I% ^
! M1 ]% u. o1 m! Y
always #25 F40M = ~F40M;
' ^% n6 j3 a* Q* i
initial
$ u% V$ m, k% z
begin
: w' E2 |8 T, o, e t
#100
1 J6 h% X) y# o$ I' l
Rst = 0;
7 T6 ~: F) t; k0 I
end
$ Z" x: x' B+ t( X3 ]& q
, }6 l6 S# }% ~
endmodule
作者:
呆頭鴨
時間:
2010-9-21 09:24 PM
testbench裡面
6 J0 r N3 W( z( {1 W, n
前面宣告改成
7 E. k2 `; a6 R% ~$ o/ r
reg F40M=0;
4 W* p( m, S6 }1 A0 x, ` O* ?
reg rst=1;
+ o$ Y- F1 c( E9 L' N4 R$ W
下面2個initial 拿掉上面那個(有F40M跟RST的)
/ G, \$ ~9 h6 G4 h8 K
這樣子應該就可以了
作者:
a4894038
時間:
2010-9-28 11:45 AM
小弟認為 testbench 應該不是主要問題,
/ @! q& D+ E( \. T& z4 b" Z9 e8 i
試試看你的同步Rst為1 時給 F20K 一個初值看看吧.
8 i" R1 M( J0 I4 q- P+ N
2 D, Q0 N4 M4 J3 X) I/ u# Q
一開始就沒值,你一直將他反向也沒東西,
- L5 T9 n% p; _" o! f' P1 D. x
你現在的simulation波形應該是 unknow 吧 ?
) Y9 d& @* @( _2 X
* i- _1 @/ `) l. b0 T+ I9 e
FPGA 的 CELL 一開始就會有初值了
3 R. e% C9 q# s3 Y# U
4 g; t8 x1 S4 L8 Q, w5 ^$ n" C
if(Rst)
! I; c9 y3 e# n' S) d; y
begin
$ ?2 ]+ \& _9 D. K
B2000 = 0;
6 ]+ V" N, ~$ b" ?' T
Count = 1;
0 I1 R: [( _& M$ o9 F
F20K = 0;
1 T$ j$ ~0 C5 P7 j) j W
end
作者:
tuby0321
時間:
2010-11-18 05:28 PM
Please try this module...............
6 W, C$ \$ ^2 [
3 t3 s0 v8 m4 c9 j
: H0 J8 C4 {, {/ P i
) A3 W l- L, [2 M5 H* R% J% P
- m/ u- e6 u. z4 @" X s* l l; b( q
$ ^. ~7 `) l6 i [0 o
module F40M20M20k50(F40M, Rst, F20k);
) P) _& s) H* g% k2 P9 ]
input F40M;
' o- ]4 ?- n1 y
input Rst;
7 `- k; N% B! i8 @- L( z) D, \
output F20k;
7 F! q, }. ^. o
& H: m6 H- M# c; P1 G: S r
reg F20k;
9 u3 p0 j0 R; `6 R+ _* M
reg [10:0]B2000;
2 \8 `# Z+ S* `+ p6 ?, ~
reg Count;
* b5 j0 y1 t3 }% i1 y, o
1 D( L" m- r7 m) v7 ?7 B
2 Q8 _: T' q5 ~' k) t
always@(posedge F40M or negedge Rst)
$ A/ x7 t5 J" z+ ` |- H
begin
( f7 ~, U# F2 e6 Z
. i4 ?$ L) D. J5 G
if (Rst)
/ b' Y( V% K& X- k, e a+ p& l
begin
: |4 m2 M8 |2 {
B2000 = 0;
5 n' m0 _; G9 I& y$ l. Z
Count = 1;
$ N: |8 J2 h% |6 ~5 q7 S
end
( ~% \. S; l" y' C. p7 V5 [, M
0 m$ A% a- e; x6 S6 O6 k4 n
else
" ~) p2 ?* H$ v n" ^
begin
+ J! k$ X5 H5 z0 ]$ h- u- z2 C0 F2 K
if (B2000 == 2000)
1 L* j w- d( i
begin
( K# S) ^( G6 ~- k+ M! C+ m
F20k = ~F20k;
6 u+ Z6 m1 S+ `- O" e. o% y
B2000 = 0;
/ V" |& d$ j8 p3 N
end
* j1 }7 v( L; G
, V3 }& D1 G; i
else
J) J }" |2 R) U
B2000 = B2000 + 1;
/ b" U+ p- g j( E" v
6 X% U# s7 P6 S- A# J. D
end
3 p' E$ c6 Q( M9 ^9 Q! e
end
0 Z; p- ^9 H; {1 L
endmodule
歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/)
Powered by Discuz! X3.2