Chip123 科技應用創新平台
標題:
關於verilog的除頻器無法使用modelsim模擬
[打印本頁]
作者:
leon1235
時間:
2010-9-17 11:33 PM
標題:
關於verilog的除頻器無法使用modelsim模擬
下面分別是我寫的除頻器及它的激勵源
8 d5 Z3 k7 r: ?
但我使用modelsim時卻無法正確的讓它產生振盪
2 n4 D7 p( ~6 n' W" p. A7 I
該波形完全處於0狀態
+ X+ A( |2 C. t7 Q
但實際用fpga燒入以視波器測卻可測得其波形
6 n+ V7 t9 p7 J3 Y
不知道是modelsim本身看不懂我寫的
* A7 n A; O; j
還是我根本就寫錯了
8 f) h8 f! X/ ?7 Y; _
又或者是testbench沒寫好?
1 D8 T6 Y' l/ h1 P6 [, V
煩請各位大老多多賜教!!
0 L+ v9 u q8 s* U
7 D5 Q2 \6 k/ C* }+ b
) M* `, ]9 \5 }2 q) ~# `! [
module F40M20M20k50(F40M, Rst, F20k);
8 |& e3 ~: P% n& U! x+ f
input F40M;
4 q# s1 R9 o3 @& ?
input Rst;
) @# v; R! J9 h
output F20k;
( }; m2 w; h$ \5 @; { S& s
# X3 M0 a5 [# D
$ L& W: z$ }4 c1 m9 `2 w! a9 J
reg F20k;
; i' t H' e* i* s6 G
reg [10:0]B2000;
1 V, h5 l1 k% X
reg Count;
& J' ]. _# P2 E9 g1 V$ Y
( V$ M# _# i5 ^: P
* B1 @ V h4 k. \4 \& P _9 N# U, B
always@(posedge F40M)
2 K6 L! A# h0 h; y7 }
begin
7 l. _# T! u. X4 C& d
if (Rst)
$ w) }2 f n9 V' a
begin
6 l4 J0 ]! s7 |& h! R+ D$ u
B2000 = 0;
9 i: C, W& p" p1 X! W3 Q, |
Count = 1;
+ P2 I& \$ c( H: a8 a
end
$ H+ |1 a ?" U* L; L* P5 V
1 j: O: R" s, m
else
3 | ^7 I; `& {3 x2 T
begin
- o. ^6 O1 v1 L
if (B2000 == 2000)
$ g, {( Q$ D% y0 g& J, ^
begin
9 g# S2 j9 E' r
F20k = ~F20k;
4 E$ P$ u: f9 `2 k( C; w
B2000 = 0;
) K' ]+ X: \4 a0 J
end
9 w( |0 o" V1 t
else
6 i0 |" d5 z* S6 F6 l/ y; p
begin
' Y5 ]) f$ U" A: _6 n& A W
B2000 = B2000 + 1;
& W8 K8 G* D. B+ r
end
0 [( U$ H& J" G, z
end
% y O8 e& D' a4 u
* X, M& _5 G+ R* X* c& `
end
6 ]2 Z1 o1 j* k8 l* \
! f y6 E$ h% l; R6 O
endmodule
2 P+ E- i' {: E$ P/ }% Q
o9 D! J6 n2 N; P
---------------------------------------------------------------------------
- ?, b* I- i7 F x1 g* `1 d
`timescale 1ns/1ns
9 A3 M: J, M2 I8 X
6 p7 L' ] A2 O) ]
module testbench;
* @6 F+ Q% p! o) n% z S& q/ H
: ~9 Z+ y% s; i6 F9 c
4 K, S- P6 r$ L* `' R
6 k, c# ]! [4 a
reg F40M;
# K) h9 X2 Z- F% _: X$ J8 k" E+ {
reg Rst;
/ r# ~$ e* T& Y6 i3 z) d, {; x$ o
wire F20k;
/ V9 h9 e0 J6 f0 O# i
2 K2 ^( w$ v- Z' `
F40M20M20k50 ReiRong (.F40M(F40M), .Rst(Rst), .F20k(F20k) );
! @2 b) o3 U# m# n
" \' N W# W8 _/ V
initial $monitor($time, "F40M = %b, Rst = %b", F40M, Rst );
. i7 e& \ {9 O' m2 \* g3 a
9 J/ D6 u+ O) ]+ y. f
initial begin
8 T _ P+ C6 W' y/ U& P
' Q. {+ r' @+ o
F40M = 0;
5 U/ s: k3 {" L' C( J5 T
Rst = 1;
) q+ x8 Z4 w b7 G0 O K1 d
( ?6 I' K7 V3 i# U% m
end
0 j6 |% T; X( C" W' ^6 |
. y w) m; F, ?5 Z3 V" u: S& V' T
always #25 F40M = ~F40M;
H6 f( M3 G0 W; F
initial
7 Z* S1 D2 @9 Y5 `% r" I
begin
% J$ d8 a) k5 u4 ^
#100
2 ?% b6 s* a% {, d
Rst = 0;
% N: V8 m! f8 t+ @7 ?5 n& Y
end
9 H* [; h# g G) a
* U5 z: i) U) K; |; ?% o9 N0 L
endmodule
作者:
呆頭鴨
時間:
2010-9-21 09:24 PM
testbench裡面
( D7 b) b' ^# C
前面宣告改成
N* M* A; E' g7 v
reg F40M=0;
/ w! W) L6 S5 q; E( U8 S0 w
reg rst=1;
4 K+ T y% o+ w9 o
下面2個initial 拿掉上面那個(有F40M跟RST的)
# B1 H5 z# {% o5 V6 W
這樣子應該就可以了
作者:
a4894038
時間:
2010-9-28 11:45 AM
小弟認為 testbench 應該不是主要問題,
) \/ c7 e; ^0 k8 r' {& O6 G
試試看你的同步Rst為1 時給 F20K 一個初值看看吧.
$ I/ |4 B! {9 Z
) d) N/ |$ k7 q. ~1 W
一開始就沒值,你一直將他反向也沒東西,
9 Y1 ^' X+ E0 d1 {
你現在的simulation波形應該是 unknow 吧 ?
; l) ]" A* c. x- I5 [
8 T9 p5 q/ J; T) m3 P
FPGA 的 CELL 一開始就會有初值了
1 |) Q; X, E7 c; d& G
1 U2 T& J! e. v* g' c2 O
if(Rst)
" B4 m& @/ V5 }- L [7 O1 Y
begin
4 j- @, `. J# b5 l" W' T1 [
B2000 = 0;
+ p" D! B6 \. H
Count = 1;
# l7 }5 `' @, `- \0 @
F20K = 0;
: y" u# ]! C- I
end
作者:
tuby0321
時間:
2010-11-18 05:28 PM
Please try this module...............
0 F) k9 e$ ]: W/ J7 C. B
. T% p+ X5 ~, i6 j4 |" W4 x2 |/ H* \
; g! u! f1 r* \/ l& n' ~
9 E% W! ^) t; P. o6 P4 r# v
* v+ G' J- W$ }
$ L9 _4 o- a* G# N9 l
module F40M20M20k50(F40M, Rst, F20k);
# S6 q0 J) E" z# g; o, n& G
input F40M;
. j0 [" \8 l3 d, [. W
input Rst;
, T' c4 I! g) X3 z; t" H$ I
output F20k;
; c5 p g5 x9 B7 l
+ P5 g# b* `3 j6 d
reg F20k;
* S+ [9 ], V( j
reg [10:0]B2000;
- F3 b1 ]9 w5 K/ v) |- ~
reg Count;
) K! A, U M0 z. C. \/ o! l1 m( N
- X/ h& q' H1 {4 V7 B/ K2 Z
% q' |1 r c1 N1 Z( B
always@(posedge F40M or negedge Rst)
. s/ T- m9 Y+ |' l* e
begin
) b( Y) g' v# Q& f
; O0 p; t. I! E/ F4 g) `! t* s
if (Rst)
9 h h) H; o! b4 |4 ?/ w
begin
& t( K- Q( _- F& ~8 q
B2000 = 0;
6 x- J) O4 r% s5 m
Count = 1;
* O$ Y3 D, C1 I' C8 r
end
1 v# ^1 F6 M k- g2 ^
0 o( E; e3 j' \' k
else
4 v o* ~/ n1 J6 \! S2 k
begin
; _3 |) |& t5 J( o3 s/ h
if (B2000 == 2000)
& _- V* Y* x* d% v; E# U
begin
/ U- W1 ^: c' w* Z' [$ Y2 e- Q3 r
F20k = ~F20k;
6 E. F2 G& B5 L' a
B2000 = 0;
1 n/ J' ]0 a2 o' {8 J0 x. Z
end
- ]3 S! V9 ~" \6 M- p( |7 G5 h! ~4 \+ W
& F' \7 Y, T- {
else
- M u, }- F# }0 _- e
B2000 = B2000 + 1;
2 O" j7 G6 g( I
: V: T. X8 ~, }0 P0 \! C' P' T
end
$ x9 n$ y! Z& ~
end
- K. h* C5 h/ r
endmodule
歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/)
Powered by Discuz! X3.2