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    begin7 ]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
  end9 ~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 _" rmodule 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" gwire 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. kinitial $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
    #1001 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/ rreg 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 eFPGA 的 CELL 一開始就會有初值了
3 R. e% C9 q# s3 Y# U
4 g; t8 x1 S4 L8 Q, w5 ^$ n" Cif(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 yinput  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+ _* Mreg [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) talways@(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 [, M0 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
end3 p' E$ c6 Q( M9 ^9 Q! e
end0 Z; p- ^9 H; {1 L
endmodule




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2