Chip123 科技應用創新平台

標題: 問一下VCS 與Verilog-XL的模擬結果 [打印本頁]

作者: jackyli2k9    時間: 2009-9-11 11:04 PM
標題: 問一下VCS 與Verilog-XL的模擬結果
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,5 L$ z' _; ]# f" l/ m
有大大可以幫我解答嗎??0 V7 }! @$ E9 Y/ V8 C4 s4 e7 x; S
! r, ~& S: a* X; t3 i: a: |
verilog程式 : 7 s& b4 U6 p8 X: g3 m0 h' x
`timescale 1ns/100ps
: F2 z. I& a& q3 Y$ v6 E! D1 gmodule timing(clk, rst, in, out);: J( \3 E/ N* e" j
1 `. ~0 r6 o$ [6 d4 X  {
input clk, rst;
8 J1 X+ h8 |# A+ R( y, j7 D$ yinput [7:0] in;
7 ^7 [/ u- B- w" o$ xoutput [7:0] out;# s; @8 f- |6 I+ }
reg [7:0] out;- S7 w# f# x/ u0 a" e
) p( w  `: `6 F) T- x# c
wire [7:0] out_temp;
( `6 }1 R8 k9 V( ?& h' P8 a
8 m# x" G* I- |" V, P9 W
# t1 w. k% c4 h, O5 }  k. K3 W- kassign        out_temp = in + 2;
  q0 Q6 v% |( T; M' V( }  }
0 x3 {  A* C: a* Q; x, f# ?( Y1 K0 k) f' u3 `
always @(posedge clk) begin( z9 w9 B/ Y6 z9 E
        
3 B5 e+ i. L2 h1 d" |        if (rst)0 p4 i& ?9 k- C  D( |1 M
                out <= 8'd0;
, c8 P1 j8 l& e) b        else
0 G+ z9 k3 o% x: c8 E4 ?                0 o3 b8 t0 ?, y) z6 }( C
                out <= out_temp;% C9 n6 {+ `  J
               
3 T9 J' t6 S& X3 D& Uend
8 {; E' T/ Y& |9 }1 [
9 \/ I" c6 L& P/ E) R* Xendmodule
0 x# R3 F; B/ W8 z
6 b1 n6 Y& Z# t) L1 E. `4 O+ o9 t: B4 G; C7 L6 C
module test();
* Y' A* d2 ^3 B* x. X  G' K2 I
9 N7 d+ S" S9 E, M1 @' ^# F; jreg clk, rst;* V5 W% @0 `; ~/ m
reg [7:0] in;
9 C  z# W: ~: Y% ~wire [7:0] out;
* h/ t* h' H3 P
9 k; h8 o* {$ H+ utiming timing (clk, rst, in, out);; ?) q. D5 S0 ]- V5 t

" j) Q# F; X& f$ G% @- P7 P! `1 p8 Q/ U: h6 G3 a1 L3 ~
initial begin
1 [" ]1 w9 o. \2 u5 ~, W5 k  |0 i; g        $fsdbDumpvars;  c5 q( P# x8 \% A; m7 J/ N. v
        clk = 0;7 x! D$ |4 ^; C
        rst = 1;
( u: m9 h% E2 t- P9 R5 K        #20. }3 o6 y9 r& f5 Z4 j
        rst = 0;$ g$ T# l6 Z/ r, D
        #5
% P% Z8 v9 ^! y& Q( n        in = 5;
, `" G6 C0 L4 y( X6 u) n# K; ~8 N7 q        #10
: O" G8 f6 X( C$ L        in = 6;8 p& E! K& B; K% Q& ~7 v% C0 _
        #10) C# C% i! T6 J, F& }+ b* A% L5 t
        in = 7;1 `  A, g: q* S1 M, N
        #10
5 i& d' u% Q4 G2 B# z9 C* O! s        in = 8;, q* C- M7 o  E& `. S
        #10
" k# m4 L7 q$ I4 f% ^. J0 O        in = 9;
5 U. v9 ]8 r8 N* P) f* [        #500 $finish;
, B9 L, Q! |2 o2 o3 X/ a; Dend" a& J8 ?/ B$ U* }+ y1 H* N$ \
" I6 p7 K0 _* R
always #5 clk = ~clk;   
! L: d5 x! W: Y( i; V0 k
& f# ~! N$ D) d6 O9 @endmodule( ]" c8 `% i; ^* d
1 L9 [  T! I) D3 D' C6 Y; G
------------------------------------------
4 E1 J1 S3 L+ N. I. S, M5 N3 z% f以下是VCS與Verilog模擬的圖! T: N8 V3 n4 b% I, l  W# [

6 T" K/ J% J/ e/ V1 j) M6 F& B. Z- d. @1 `0 W' ?
[attach]7871[/attach]: [9 T3 n0 B# ?, H
為什麼會不同??9 w# w& U6 p0 a5 u/ g, L6 g+ O2 b
各位大大請幫我看看- O3 ]9 W& Z# m8 y- a6 p. D
! a  N; j% ^% a! _) q4 O
PS: 我不是要交作業啦,只是在Simulation遇到問題3 U4 D- U) Q6 G3 @  F5 P5 k9 |9 j
% p$ E+ I* a! S) B& _
謝謝..............................
作者: darylz    時間: 2009-9-15 03:46 PM
这个很明显是Verilog仿真中的竞争(race)情况。
  M# a& A/ I# N5 L% Q你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
作者: jackyli2k9    時間: 2009-9-15 10:57 PM
請問要如何寫才不會有Race的現象??3 H) s1 `' V  B
我不知道如何把initial block與always clk 放在一寫??
2 M+ I6 `0 v/ k. a' F+ |( b可以告訴我嗎??: v: j" @7 v3 z' A- {  b9 w

) \( g. g8 Z5 Q* B4 N# W2 j3 ]* R% p
謝謝.................
作者: bakerly    時間: 2009-9-18 05:47 PM
標題: 回復 3# 的帖子
不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象
9 R( S) j  O% G- n# A, k% v而initial和always 沒辦法一起寫。
作者: darylz    時間: 2009-9-23 11:04 AM
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?; R  \# t! ^5 ^- K# _( J
写在两个独立的block,仿真器不可能知道他们有关系的。
作者: darylz    時間: 2009-9-23 12:14 PM
除非你用clock同步' J; E. p/ a/ C/ A  \. ?
.....................................................
作者: ejean    時間: 2009-10-9 05:19 PM
You can solve this problem
; u2 v- ?4 J* `1. add a delay cell before each register.
( C( j( c; W% r, }2. Synthesize the circuit, simulate the code with SDF.
作者: masonchung    時間: 2009-10-13 09:15 AM
這樣說吧! D( V* y- a, z- n% T$ L
initial 是執行一次的迴圈
$ B# X8 n/ z! o; z- I0 R: Balways 是無窮回圈
8 {6 j# |6 l5 g- x6 h" H兩者要同步才能避免這問題9 q7 W1 }6 w- m( H/ ?7 e# w0 X9 N+ @
同步就是在initial用 @(clk) , 不要用 # n
# D( s2 Q+ J) f1 W- a, y9 ~
3 a' H# B- @4 v以上
( m! ?1 n( j" n, f" h/ ]) @如有錯誤歡迎指正




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