Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

  [複製鏈接]
跳轉到指定樓層
1#
發表於 2010-9-17 23:33:25 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
下面分別是我寫的除頻器及它的激勵源$ V3 A8 _2 |( y9 t( _8 t/ ^0 C9 F- f' B
但我使用modelsim時卻無法正確的讓它產生振盪
6 Y6 h9 {" q  x" Y! A2 y! e該波形完全處於0狀態$ P) I) p  q8 k! |1 v
但實際用fpga燒入以視波器測卻可測得其波形
0 i7 x! P, E( F6 ]不知道是modelsim本身看不懂我寫的3 X2 v% j7 H5 a
還是我根本就寫錯了
0 ]$ F0 c- x' X2 @' B6 Q  f# n又或者是testbench沒寫好?# {) q1 A: f" c& O* d
煩請各位大老多多賜教!!9 N/ A3 @: s; L) i+ p5 F5 p

  G3 N2 |+ A: C) u' j5 ~  k% p7 y0 v9 V! ?8 r: k5 r8 W
module F40M20M20k50(F40M, Rst, F20k);
1 P  t/ A6 \2 F1 e    input  F40M;
, Q4 _, G: R8 W, g! e7 O' n    input  Rst;5 B8 V- O) b$ a
    output F20k;
1 I# L* \4 R+ W' f3 a7 X+ [  
% y8 ~9 w1 L# B2 t' [  s9 b    $ Y, |8 Z/ N, L" D
         reg F20k;
; r4 H+ D1 u( _         reg [10:0]B2000;5 P/ {% E7 f0 Y6 s4 b4 [
    reg Count;: K( v4 C7 Y+ _6 b. A( d! _/ c" h
   
+ _6 ^7 j  t9 V# C, a/ T$ K1 P. D$ _' u" l
always@(posedge F40M)7 g  E. H7 N9 ^2 n
begin
9 w* q. `& z9 h# v3 r3 Uif (Rst)
" e4 i( u8 Y/ Y' s- B4 B7 x    begin- M6 Q/ X  w" d. k
      B2000 = 0;  
* x; a2 U; o4 c2 o, b+ J4 r/ O      Count = 1;  " M5 G2 \) X, p7 c
    end
4 ^" {2 g$ H  D7 `, Z    ; M+ l7 t6 z: U0 h1 s
else 4 ?1 L4 S! U0 Z
      begin
2 G+ n$ Y, k8 i+ K: \5 D8 r        if (B2000 == 2000)  
8 }1 G* s" d9 s1 n        begin
! T- O9 F4 u) b$ k0 u5 v6 O          F20k = ~F20k;  , ]6 ]0 y; t* y: ~. b
          B2000 = 0;    u+ o0 i1 x( E) x
        end
1 P: I& ?  p7 o0 l0 X        else( ?4 B- I, f3 {, N: z- C
        begin. h8 k+ a1 R& ?) `
          B2000 = B2000 + 1;  
' u, N  v2 F+ `% k( ?        end2 }6 A5 k3 v8 l! s/ `3 V
      end$ l: Z4 l2 ~2 Z* \: ?
    # C$ S+ T; ^! H- U
  end: [+ s# B/ a3 z: t; L9 d: G7 M9 N
! t; n" s  u, ~1 g0 U: H4 ^
endmodule7 f+ `; Q: H0 U; g6 [* x
) R: y8 j: g# o/ l' Z
---------------------------------------------------------------------------
+ u. B* B: t+ U# e1 J`timescale 1ns/1ns
9 F: d% y. t' u. w* [/ n0 o$ @5 T* w( _+ r
module testbench;
+ m6 Q+ `  ~4 M; V' k
! l. p2 P; U9 g3 U* ^$ s) U' L8 {6 ^* U. A1 ~
3 p/ M6 m' u0 Z) ~! k
reg F40M;: X5 }* p  J* i6 x; L
reg Rst;
) |) Q9 i" M' X0 S  a! [wire F20k;
* b0 s2 t& U' \
5 |% x$ c% X  @! s    F40M20M20k50 ReiRong (.F40M(F40M), .Rst(Rst), .F20k(F20k) );
& N  a! j/ e& Q. \1 T: z2 a
+ F9 Z- W; K  H4 O9 Qinitial $monitor($time, "F40M = %b, Rst = %b", F40M, Rst );2 R' j) i) H4 M3 r' I( r/ f0 q$ Y
9 s0 O7 U$ a; F. N
initial begin
( D# X: @% ]5 y- F2 V( T% E* o   
6 H* O: K; z5 E  k    F40M = 0;
1 y6 d, e5 F: O5 }3 ?* _    Rst = 1;8 O8 |$ _8 r+ C3 V' [5 v  }
    % |0 F* m( ?; O& f
end( W4 Y2 @4 m0 ?& Q/ r

* d+ {) O1 {) Z( {4 c2 o) r% X always #25   F40M = ~F40M;
6 V5 I7 u5 e: i1 j, F3 n- |    initial( _. B7 a- H" t! {( _* E) V
         begin    8 L$ `2 e3 s1 c# ]  ?; m& m% ]
    #100
- M  F# M% W) }) U            Rst  = 0;
* D; d! N8 h; k4 Z4 h7 S' ~/ ^    end
! B+ l1 S2 }- M& T, ]- D3 @8 @
2 `2 ^3 i3 e7 ^, ~; H% Xendmodule
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂1 踩 分享分享
2#
發表於 2010-9-21 21:24:03 | 只看該作者
testbench裡面5 b* r! g. [9 F$ T3 t
前面宣告改成7 z/ t/ D7 Q" A
reg F40M=0;) h) F5 K6 u* I% [
reg rst=1;
: `$ Z% j& g) k  S* u4 g- ]1 g" Y# b7 F下面2個initial  拿掉上面那個(有F40M跟RST的)
* b" [* i3 z$ b+ w5 U4 k這樣子應該就可以了
3#
發表於 2010-9-28 11:45:46 | 只看該作者
小弟認為 testbench 應該不是主要問題,
1 t+ h/ B% G6 a4 f) A: ]& j( W試試看你的同步Rst為1 時給 F20K 一個初值看看吧.( L0 D( Z4 k" @. O" z1 e* o

4 e. {, |( Y- T# B( U( r) {% o# {一開始就沒值,你一直將他反向也沒東西,
- ?4 |) m; Z. o) s' X2 ]9 m你現在的simulation波形應該是 unknow 吧 ?- ?" y) G, o$ i7 v) @
% w% B, r% U8 m" K  v8 v
FPGA 的 CELL 一開始就會有初值了
: f" T1 T; d" ^( V$ Z: F8 M
9 c( C: O7 {) {/ _$ p" T* r  lif(Rst): G. \- N4 O! k- k( X5 v
begin
  ?; w3 s! k! T  B2000 = 0;
7 k, Z& A$ q6 {) [7 Q  Count = 1;1 |8 v6 M, q! V0 r$ W: F, M
  F20K = 0;
$ W' \. r) ^" Z9 D* o end

評分

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

查看全部評分

4#
發表於 2010-11-18 17:28:41 | 只看該作者
Please try this module...............
1 Y7 k, m* Q4 R$ ^( F- d5 G& Q8 Y2 Q9 U  x; x7 _. f
" i, {; O8 E) t3 B! [
2 \2 ~, {6 w' p# z
$ c: Z" t( C7 l+ l' Q2 v

4 T! u  O! O2 x3 x2 \6 m4 q6 [7 imodule F40M20M20k50(F40M, Rst, F20k);, W1 g" U1 Z+ V# S* B
input  F40M;
) D) Q8 ]4 ?3 ?7 j. iinput  Rst;) N3 D, n: Q: l5 [
output F20k;
& N# M; |0 M5 t/ J( |( }4 i) {* _6 G
reg F20k;
5 U3 B$ T/ j  Q3 c: [4 D' breg [10:0]B2000;! a) S! i1 O( Q  S. I$ l
reg Count;7 `  l( |1 W0 r% o7 [$ y

( H$ P% y0 q6 n+ Q% V8 q4 q3 |6 }+ }% I' M5 r6 l
always@(posedge F40M or negedge Rst)
( [- n2 i% l. V6 ^8 `  G, xbegin5 W  y* h1 C* p) H; z* E7 s3 |$ Q0 L) s

- g6 z# y# w) m8 h5 r0 o if (Rst)  \; e- X$ A* c6 V
begin
3 L: t1 h+ y# n: C+ O  B2000 = 0;/ X- n2 M+ t% r, H9 j' z
  Count = 1;
! b8 j' V; j- I, b( c' {8 {) D' S6 i- z end# U- N) n0 S' m2 X( A9 O
7 z$ M/ H$ z  g' u8 y
else
- y3 w2 p/ V1 A* @) e4 W begin
% s: {( C) I; B( z4 L& e* B1 d  if (B2000 == 2000). ^4 a3 @3 i) N% [
  begin
1 i" ^9 @, u  i% j" s   F20k = ~F20k;- c, O* N) D' x0 |/ X- v1 e: D7 m  C
   B2000 = 0;& A" p) H8 e' X2 O$ i6 a
  end
; o0 p2 i7 p2 D  S; P) V9 N+ K0 X, d" O6 }
        else
7 r. [$ K6 q4 h& O5 X$ q& K( Y  B2000 = B2000 + 1;
$ b+ `1 a  S# H! u8 E7 [: Y2 j* L
( X0 S$ G: O( t5 Z/ t: U6 ? end
6 ?, @, r. ?! q: c$ ~2 ~end: y: V) Y' }% {0 H% i$ c3 o
endmodule
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-4-27 11:33 PM , Processed in 0.109006 second(s), 18 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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