Chip123 科技應用創新平台
標題:
關於verilog的除頻器無法使用modelsim模擬
[打印本頁]
作者:
leon1235
時間:
2010-9-17 11:33 PM
標題:
關於verilog的除頻器無法使用modelsim模擬
下面分別是我寫的除頻器及它的激勵源
& c; ^/ Y, I Z0 u6 B, A, w! F6 d
但我使用modelsim時卻無法正確的讓它產生振盪
" f; Q) E$ K3 `- |# D% b
該波形完全處於0狀態
' L' h/ j2 a0 N/ |' T: f$ F5 o
但實際用fpga燒入以視波器測卻可測得其波形
N& A. q% g( X, B% u3 k
不知道是modelsim本身看不懂我寫的
8 D& T5 p5 C/ e6 C% c7 o1 a6 a& d
還是我根本就寫錯了
+ e" H+ `+ G8 i
又或者是testbench沒寫好?
' ]2 G7 R8 K( Y3 |/ u
煩請各位大老多多賜教!!
3 O' `+ F+ r/ w$ X' ^. r+ e' O
7 t8 C5 @8 L6 W! x( G
& P% ^/ d4 |% C# j
module F40M20M20k50(F40M, Rst, F20k);
5 Z9 H! o5 X: h0 G/ {
input F40M;
3 [& q) p/ x9 V* P7 I$ U
input Rst;
; g: W+ t' M! ` U: a
output F20k;
* v* O' i5 U1 c0 Z) c- K
+ J3 i/ C" o( i
l4 V- e$ N; p0 k: N3 C% j+ O1 V
reg F20k;
* ~8 L- K$ u1 m
reg [10:0]B2000;
0 e1 P! W" j4 w+ J& Y$ a2 F
reg Count;
, r, h4 F( ^3 s R
* N8 c! Y2 e6 t
. X; o* e2 L2 @+ e) R2 \4 T
always@(posedge F40M)
( ~( t, T1 a1 M s8 ~6 C
begin
7 t- n2 W5 n7 z2 v4 _/ T* ^
if (Rst)
" P* ]+ |2 Z: a8 \% W; w
begin
2 s% ~6 [& ]9 ^0 M2 d* T8 n
B2000 = 0;
* j& o! A% O5 h& Q
Count = 1;
R! c% I5 s, Y: g+ e+ G) j
end
( M8 L9 N4 _- c K* [
8 m' T; ?5 Y: u; W6 H3 P! x+ \% W
else
3 h, Y5 |) r9 E* [9 P/ W1 J
begin
+ b5 s$ h% A4 s5 U) c" X. Y
if (B2000 == 2000)
2 n" c( Q3 o8 ?9 H5 j
begin
- B) ^7 t$ Q5 \+ K1 F* J$ \
F20k = ~F20k;
' b/ ?6 `2 `1 Z& ?4 g2 d b. ?
B2000 = 0;
" u3 W2 l1 n- ^) ?" ^" z, E; R0 @
end
% Y T8 V1 v$ u6 C4 Z
else
$ E: S' f6 N$ {0 F0 C+ F' Y
begin
8 w& v8 ^$ N, D5 C3 \& A X/ C
B2000 = B2000 + 1;
+ j* Z% F& a" V9 i* C1 {5 N+ `
end
$ E% C1 t: N+ J$ m# q$ m7 s. E. N
end
2 o3 J% t2 E9 X- M
7 \. e1 w# n, F. k& Q
end
; L5 X* e$ U' X) u; H+ y1 x
2 D I% H5 P6 i+ V' i: k
endmodule
( K# `" N* s: g' h& B9 z' q4 N
- e) Q. p- L2 K3 S/ |
---------------------------------------------------------------------------
- T& a, F5 a3 I; t% V3 K( F" t- e$ d
`timescale 1ns/1ns
) Q" ?3 s3 u, C0 R3 T
8 }: Z W; c9 i; y$ E, p
module testbench;
2 B7 I/ i6 `$ X: g! P0 \
! k5 o; Y* B; j5 v3 x# H
: U9 X4 E$ Y- s! H3 I6 v* o
. h" ?) A6 l( V& Q
reg F40M;
) k6 c8 l- `7 y! L8 [3 a0 e) Z
reg Rst;
( {5 y" v/ C5 l( J
wire F20k;
8 s ^. u* v2 r4 E5 E8 H
& T* P' `: c1 m9 c4 D
F40M20M20k50 ReiRong (.F40M(F40M), .Rst(Rst), .F20k(F20k) );
, M1 V) x: [& y5 X) [0 p" F+ [7 U
: ~5 O3 q0 f- O* M- ^. X4 d
initial $monitor($time, "F40M = %b, Rst = %b", F40M, Rst );
% J. R( z( S, y, B" A9 |4 g
* ]/ W& z& b- P3 L% {
initial begin
# G- G' F, h& v8 ]
3 U0 |& @; o' g! _! r$ l
F40M = 0;
) B5 \+ C8 t9 ?5 A2 M, ~2 k
Rst = 1;
( W2 I6 W% ~. J
1 L1 w5 x' {: d1 @! S6 j4 M
end
: c# [7 k+ ^7 T2 o) r2 {
, [# K8 `6 B$ Q2 G# j2 M% N! H8 e( [
always #25 F40M = ~F40M;
/ n, ^; z! ?/ c6 _* p! t) b
initial
9 i) m4 S R7 x! ?
begin
8 a; W& o; C/ p- O
#100
- T7 q6 v9 [# d5 @2 h: Y; \
Rst = 0;
) `8 S9 h; h3 |: ~
end
& a+ s" T2 ~$ s8 T) }) ]$ m. r
0 H V& [7 }3 R, d; w& ^9 j/ M
endmodule
作者:
呆頭鴨
時間:
2010-9-21 09:24 PM
testbench裡面
+ q E/ o1 Z$ `5 k: A& k. L) S
前面宣告改成
. i& X4 d8 G) }& [, Y) I. x
reg F40M=0;
; L& Y& n {# w% ]" V1 W; P! I
reg rst=1;
2 R. L" z1 q& B
下面2個initial 拿掉上面那個(有F40M跟RST的)
( E5 l; l3 P$ t9 e' }3 r7 [' d
這樣子應該就可以了
作者:
a4894038
時間:
2010-9-28 11:45 AM
小弟認為 testbench 應該不是主要問題,
' s' @ X+ X4 B; H8 I( e* ~
試試看你的同步Rst為1 時給 F20K 一個初值看看吧.
3 q0 j: |# S, p3 k4 I3 Y$ Q6 ~# \2 l
1 W O2 [% r: S& U- s
一開始就沒值,你一直將他反向也沒東西,
+ [6 u3 y7 ]3 f6 n
你現在的simulation波形應該是 unknow 吧 ?
4 L$ y2 y) [) I+ d: ~
7 d! E2 v. O. }& {6 @) ^5 H. D
FPGA 的 CELL 一開始就會有初值了
& |2 e% D. T6 ~/ ^1 @& L5 U ^' O9 E
7 q, m8 I$ [# R9 v f! p# v! M, [
if(Rst)
5 C1 n* e$ @6 j
begin
& A/ t9 \( R& v. ~' ?8 e
B2000 = 0;
* |9 l, ^( Z1 x( D
Count = 1;
9 ^. _3 Q9 ~+ ^+ z3 T; r( Q# Y' {3 F
F20K = 0;
6 D* W+ a3 W; j
end
作者:
tuby0321
時間:
2010-11-18 05:28 PM
Please try this module...............
# b. y+ H' T' a0 D3 U3 v: ^6 u% o) t
! {8 K% G/ k4 _6 G& I: |
7 [' D/ c: E' H1 }3 L+ j
5 c. M- |; O' [9 X( m" P! I
2 B( p0 p7 X p( G
' m* [6 D& ]( T* r8 V
module F40M20M20k50(F40M, Rst, F20k);
- V$ o9 T- m7 Y- R; g0 l
input F40M;
" q1 c; c4 y% f' J4 r
input Rst;
, y3 b+ G# B) ?4 t. X% a6 a
output F20k;
/ f6 g9 D0 `$ e7 w+ P2 |
7 m7 I. A7 s _0 y
reg F20k;
8 E5 M+ p6 ~% A+ c
reg [10:0]B2000;
4 G. Y* X( M$ ?5 N E( T* i
reg Count;
' v: w5 b9 [9 s; K/ i
; }- j) o8 \0 F9 z$ }, S5 A% C, @! r
# v- r+ H+ ^0 ?; [; y! Q
always@(posedge F40M or negedge Rst)
. q9 y( z; I* H
begin
( {3 |8 C: M& `* W
& ^, V2 q, x) T Z9 k& m1 W
if (Rst)
& K# d3 C0 e1 Z! ~+ C# f! P4 v
begin
8 [7 Z" C2 a& o5 w6 u' o$ s$ d5 X2 C8 d
B2000 = 0;
) s, H: T% X1 ^1 }. E+ m. @
Count = 1;
+ O4 T; q+ m' }- J2 s
end
0 e$ _0 ]+ U7 X' V6 `( N1 [
6 K0 S4 [/ p2 d" w6 d
else
, B+ M2 _# b" ~) q: X
begin
2 q7 [# N, o, |6 K% ]0 \2 q& y2 k
if (B2000 == 2000)
# E g' \, Z2 x
begin
% { n1 ]0 @ R: C4 b& c0 }# l
F20k = ~F20k;
. C( X6 D7 z L) m7 }
B2000 = 0;
& W4 h+ O' y V1 r
end
" ]. {% u3 b- a
* Q+ T% M: m6 ?0 T/ s, D
else
4 m. ]+ U# m: z( [8 x0 X! l
B2000 = B2000 + 1;
; U [% W$ t9 {' H
1 }; O9 [% _; f" I3 I! }
end
4 s, z/ v4 P H! C
end
/ \0 ~! R% K; S( k
endmodule
歡迎光臨 Chip123 科技應用創新平台 (http://chip123.com/)
Powered by Discuz! X3.2