Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

搜索
1 2 3 4
查看: 18632|回復: 3
打印 上一主題 下一主題

[問題求助] 關於verilog的除頻器無法使用modelsim模擬

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-9-17 23:33:25 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
下面分別是我寫的除頻器及它的激勵源
; D; n. Q+ h/ R" V但我使用modelsim時卻無法正確的讓它產生振盪8 k* L' ?2 O: H/ v! m; {1 ]- X% f
該波形完全處於0狀態- w; {+ B6 v) D! [
但實際用fpga燒入以視波器測卻可測得其波形" G. E) O6 [5 U2 F" f% c# b
不知道是modelsim本身看不懂我寫的8 ]( _1 U3 l8 L7 Z
還是我根本就寫錯了
; ^  {6 S) S! ~/ |7 Y8 p, h9 O又或者是testbench沒寫好?
, l% j8 _# ~% K; i' t. D9 i* i煩請各位大老多多賜教!!
1 C! O" N" X% H3 k
8 g; R+ n0 Z* F9 Y
& S1 W. H4 ^) S; ?) _2 _module F40M20M20k50(F40M, Rst, F20k);
: Z* B" h! ?4 h4 K+ `' \, ]    input  F40M;% B6 w5 |/ e  h. I" j* E; }
    input  Rst;+ B; P* A/ I; r
    output F20k;5 I7 b$ G) Q/ ^5 U
  
0 a/ _1 X0 p2 t$ V   
) e0 B9 f# h. |8 x- u5 H         reg F20k;
) {" B# n9 ~7 _8 b; M" {  `8 u' [         reg [10:0]B2000;# D" [) j2 C5 b1 k; |2 O" U& @
    reg Count;
) v0 K+ o' g5 u+ L1 S' N9 d5 ?    ( C3 y! ]% x, i. b. g

9 j$ N2 c& y' x; a# y; [6 r$ I, malways@(posedge F40M): P* ?. ?$ h  t$ u$ R& x/ d
begin+ ?: b2 r( |/ B6 H$ L! H9 C
if (Rst) ' v% ]) N) e8 x! U6 a
    begin
0 d  S' o$ O- C+ H' F5 f      B2000 = 0;  ; u/ V( k8 V& }  ?$ ?
      Count = 1;  ( ^2 ]" F  t3 C$ P
    end0 x. X- X& X  m! Y
   
- B( P! @( n. I! Melse % o! o4 B- D% m- X4 O' x% B
      begin
5 \) A" _/ S, ]) s; w6 \- [        if (B2000 == 2000)  
6 w; a+ x: Z3 m% C& u" f' y        begin
9 ]4 |: g: j: C( D4 J/ I          F20k = ~F20k;  
4 g4 u0 V5 g+ L) H          B2000 = 0;  1 G" L  Q" T- \4 A
        end$ R: S3 N. z) i8 p8 I1 \1 v
        else; P# V. h0 W: z9 u  ^9 f4 j
        begin1 R$ S" b5 p5 p- }1 D2 F7 ]
          B2000 = B2000 + 1;  9 T+ h% V" w; `2 @, @! f7 J) y
        end+ C. L5 e0 P6 Z  n3 f# N
      end
9 [! V9 L3 C, A   
. E& p5 s& C% v" X  end
' H) [4 V* o9 z( N) r& `
, E; s: S" i# M7 o9 G/ b( \8 O2 \7 F% Kendmodule
* v0 j1 D, w) B; x7 K! n2 }! D2 b; V* C) U4 \
---------------------------------------------------------------------------8 H4 ~% C, r2 A+ Q8 n5 A
`timescale 1ns/1ns+ u. t' `+ W/ V& w; s

. G+ l- U7 ?. r  X1 m3 `module testbench;
% x: n# W+ l5 x3 E) l2 x
3 e0 v2 x6 K) b0 O1 e) d! N( p; i) c1 C6 \$ U! c9 j! w
* ~( X% f, b& ~
reg F40M;
7 |; l7 l5 i- I% ?. @, D. ]* oreg Rst;: h# M3 f: b) H6 v& \7 g  T- }
wire F20k;
' w+ L0 |! N* q0 ?5 W! }
' W4 X# L7 Y6 g    F40M20M20k50 ReiRong (.F40M(F40M), .Rst(Rst), .F20k(F20k) );
5 i( R  h; S5 \9 ^0 E, |
/ G) p3 ~, J4 l4 b/ xinitial $monitor($time, "F40M = %b, Rst = %b", F40M, Rst );
; {. b7 U/ D' f8 ~
, Z% \6 @4 B1 f: [initial begin
! F* Z6 A- b  ^- I2 ~0 h    5 U: a; R5 Z2 W
    F40M = 0;# W2 j4 c0 m: z4 f8 t/ W
    Rst = 1;
& c) k. ]/ d% E( i0 H2 P5 Y6 A, c   
; u6 _# g. d8 R3 f1 Jend
+ X  {5 Z! I, o& g! y5 S: I& g) n  Z% `/ V. G7 w
always #25   F40M = ~F40M;/ F# k4 @! t6 f! d% V
    initial
, V7 y% j5 Y  @1 A2 Z4 h* Q1 y. V         begin   
' i# b' m" q0 Q2 X7 @9 _" R6 ?9 c    #100
6 R" `$ u  D3 ]2 d  v4 W5 O# m4 Z            Rst  = 0; : p; k9 E, F; i* z- s: F
    end
( p- M; b, k* Q5 C9 k. W0 U6 ~
- I) r/ A0 l; [' iendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
4#
發表於 2010-11-18 17:28:41 | 只看該作者
Please try this module...............
+ P- j8 I0 L- `! y/ E* G8 k
6 M6 G6 q) W3 f
5 A. H% B+ U, u0 y5 ]* S; W7 I. w. P7 n4 t

1 \/ W% t$ i( U& H2 i7 `: l+ T+ M  l! A, F7 F) S5 c. u
module F40M20M20k50(F40M, Rst, F20k);, w0 B' |4 E- ^6 n' T8 `* N1 ?
input  F40M;* s; b: q# v# J1 A7 g, v5 Q- O
input  Rst;- L" k/ l& ?* C3 Y% i1 T( U  W; M
output F20k;6 [0 G% p9 `. I  b, W3 l
2 D$ s: l2 ?0 K2 Q
reg F20k;
5 V; m& [$ k, Y8 @9 f# Treg [10:0]B2000;; S& C! o/ N2 I( D0 x( }
reg Count;5 o! G, _1 D1 g- B' R$ p# ^
2 }2 r) @2 Y5 A0 P2 O: ~+ L2 [

5 g. S1 H9 d9 P! O. `. P# ^always@(posedge F40M or negedge Rst)0 x. Z3 R4 ~' t, O9 Z
begin
* ?6 c( q* o! b# A6 s3 [
  F" Z. j% I( w! |3 d* c if (Rst)  ]6 g' E0 ^) ]; ~' o% ?6 A1 f
begin+ r9 {0 U3 L# Z2 }6 n8 A+ F
  B2000 = 0;
9 w2 V6 Q3 a- U- f) `, t- j$ z  Count = 1;
( Y. W4 C& l! z5 W9 D4 f0 i( h end
0 n# ?, T0 Z9 ]1 t8 t) F6 u5 v( `
( f- f+ b5 g0 R/ J4 Y: f5 s- ]- G else
$ J+ l# n1 W0 m+ g; _ begin
1 G  V& B6 O* f" O  r  if (B2000 == 2000)0 o! y# C/ M/ _
  begin
  @0 H% i% w" P3 ]9 e; e   F20k = ~F20k;1 P1 M6 X) g2 q# e. x1 C" {& g
   B2000 = 0;
5 ]: v. ^: {. C) \& o% K  end
; e+ d/ w5 @) z$ N3 G3 z) U" }
2 `4 v' f. I2 p) l  @6 e0 [8 E        else1 W8 h" T- x1 k( [/ d  U' j) P
  B2000 = B2000 + 1;: w; m0 i: c2 n2 ~

( O( `2 m  y& ]) ]( n. f+ N2 s end
! \* k* y. E  J, Eend9 W/ t& R3 J) F: d$ h) h
endmodule
3#
發表於 2010-9-28 11:45:46 | 只看該作者
小弟認為 testbench 應該不是主要問題,
2 |) [, F+ O$ A5 x$ a試試看你的同步Rst為1 時給 F20K 一個初值看看吧.
1 Q5 O" G4 y* R: @4 Z$ N/ v+ @; |5 K
一開始就沒值,你一直將他反向也沒東西,4 W+ H1 P% m- l2 y& t: d$ N$ R
你現在的simulation波形應該是 unknow 吧 ?
9 G' \% r/ D! Y6 w( Q* k) C9 f/ v8 f/ i1 Y
FPGA 的 CELL 一開始就會有初值了
: D- t2 a) U/ z: m. k/ H* m. m) `/ i
if(Rst)( m. f# i/ W! L9 L" a" Z4 H# j3 F
begin
8 k& e0 X# y1 u4 w# x  B2000 = 0;
# W! n. c1 `( q  U  Count = 1;+ c) W; t) c' I+ K7 y
  F20K = 0;
5 x: N/ Z) Z/ g8 i% g, ^4 _6 Q end

評分

參與人數 1Chipcoin +2 收起 理由
masonchung + 2 FPGA 的 CELL 一開始就會有初值 這是重點 ...

查看全部評分

2#
發表於 2010-9-21 21:24:03 | 只看該作者
testbench裡面' K" {9 I' y. ?% g
前面宣告改成
# z3 j4 b( I6 d% M- c: _reg F40M=0;
% [3 B6 V0 o, p7 r4 Qreg rst=1;
( A  I2 r5 ^6 ^! O7 C下面2個initial  拿掉上面那個(有F40M跟RST的)* w, c0 _% L4 M; s
這樣子應該就可以了
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

首頁|手機版|Chip123 科技應用創新平台 |新契機國際商機整合股份有限公司

GMT+8, 2025-2-23 02:10 PM , Processed in 0.169010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表