Chip123 科技應用創新平台

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

作者: jackyli2k9    時間: 2009-9-11 11:04 PM
標題: 問一下VCS 與Verilog-XL的模擬結果
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,* ?' R* a9 E, N: s" H: Q5 e/ \
有大大可以幫我解答嗎??
0 _6 Z2 m/ G% D1 [, k$ z' _1 h
: G6 e% Z7 Q! C$ _- f# R# C0 Zverilog程式 : & D. H3 J+ U; _/ F- Z: g" ]) l7 e
`timescale 1ns/100ps/ p* B' g* T9 f  f
module timing(clk, rst, in, out);5 m4 U5 N# B" D! j( y2 W5 G
- k) K: g' Q: G; r9 X: b5 G0 L+ E- L
input clk, rst;; }! p2 j5 P" j1 \* k6 C! Z9 l8 B
input [7:0] in;
5 m1 T3 H% u% f$ [output [7:0] out;" g- L# J5 v9 {* j4 a
reg [7:0] out;; }9 L% I/ Q* k
% Z8 K: Q" k6 U! y7 N1 K
wire [7:0] out_temp;! ]% b) l& {, z
5 G- J: Q8 U: ^" u1 w$ ?1 k
9 K2 F$ `8 b. ~0 b+ X( r
assign        out_temp = in + 2;2 N  z5 z0 T3 M( J
9 W4 B. z0 {9 s; |! M4 B7 B! F

& J% w' c6 o7 Walways @(posedge clk) begin
0 c+ k$ J0 K4 v3 q) D2 U0 e5 Q% `& Y        
0 {, Q& n1 u& c  p; b        if (rst)
( h9 ~/ Q7 [4 }) {% j+ k( h                out <= 8'd0;
% G3 O2 G$ Y* ~; c        else
9 `- Z2 u0 d  h7 ~& h/ a) \               
% j: K7 v: ^! X, O                out <= out_temp;( k. u; H3 K" h7 {+ G
                9 K2 g5 @8 z6 H
end, Y4 e9 Z) b8 ]+ T* z
. i8 d; `4 ?' C+ |1 r( t% s! I
endmodule+ k7 i3 {& U( w" `9 ^: s/ ^! L
3 |# p. d/ k. U* r5 `0 u

+ L( C4 Y7 ~6 y$ s: }; k# Nmodule test();- U- _- u) U& h, `

9 I  m2 \0 M0 Y# ureg clk, rst;
) T; w% \5 D4 }2 l* Preg [7:0] in;
7 p8 z: N/ N3 [8 K+ R) `  Xwire [7:0] out;
. T1 ~6 V0 H. V% w4 I/ a  d/ s, t% {% a; \/ E7 t1 e
timing timing (clk, rst, in, out);1 E  r7 m4 E# ~% @. r

0 M* f% j9 b5 r
5 V% U' Y9 F0 c) a6 yinitial begin
+ t8 I* k2 Y5 c: M3 k. J        $fsdbDumpvars;4 d& h9 O) z- R3 i( ?- f
        clk = 0;- |/ u7 v( z+ l% U5 P3 O8 T+ J8 }0 a
        rst = 1;- O3 N2 c- ?" K) k
        #209 {) j9 q! H0 M. c; |# ?# q4 V
        rst = 0;5 x6 K" _+ t. s1 I' f
        #5
; y; M& f$ g% F  a, ?        in = 5;
5 v; \8 u3 @) X& m2 B- @        #10/ d: K. }2 R2 t- T( v, r2 H
        in = 6;
: k/ P9 f6 c1 U. p        #10* D; o! x3 m2 V
        in = 7;
* V  L  I4 C( t  _        #10
9 H5 ^" l) C" O5 t        in = 8;
  i( E7 \! g! y        #10
- I7 f0 ]& S: K) Z, |8 |: i: D        in = 9;% }- \" K: o7 ^* v! }" n
        #500 $finish;
) q0 t, ?5 L( v. @) ~( Bend
, Y& V4 n& S3 v& @
* E$ G. t% J$ ~6 Q# I- g" Ialways #5 clk = ~clk;   
! \, b# L; h3 k( r, y6 `  @8 A$ I
endmodule/ q$ M7 @: T4 |' ^& t% W
- M$ }, ~  i' Z4 e0 T% k5 X
------------------------------------------3 d( K3 C! ?6 d' W7 l6 t
以下是VCS與Verilog模擬的圖
+ {6 Y2 t; x% |9 k. {0 G# z" t( S* |
/ U- g" |' i/ g2 E3 o. q* ?( ?7 r
[attach]7871[/attach]: v& X0 R: ^, f$ Z, r
為什麼會不同??3 @' k4 x7 Z6 E8 [
各位大大請幫我看看
9 o! ~5 l, Z' V2 o% F% G( k9 W4 E+ V5 q; n6 y9 _
PS: 我不是要交作業啦,只是在Simulation遇到問題' v- B7 V: i$ j: j  Z; _

! [8 v3 ]8 e) {* w% o1 j: X謝謝..............................
作者: darylz    時間: 2009-9-15 03:46 PM
这个很明显是Verilog仿真中的竞争(race)情况。
9 s& E, A- G$ y你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
作者: jackyli2k9    時間: 2009-9-15 10:57 PM
請問要如何寫才不會有Race的現象??
8 W3 T" i, w; n+ l$ _/ W我不知道如何把initial block與always clk 放在一寫??9 n1 q5 P4 v. U8 q' _7 a
可以告訴我嗎??$ w: `: f1 [4 J; @" Y' u
/ p( H7 [  ?2 E5 Z" F, R& e
1 ~2 w$ Z& I. P) T
謝謝.................
作者: bakerly    時間: 2009-9-18 05:47 PM
標題: 回復 3# 的帖子
不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象' Z* P' g$ H# k! ^' a$ y2 M2 y  M
而initial和always 沒辦法一起寫。
作者: darylz    時間: 2009-9-23 11:04 AM
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?2 d* S5 u/ G0 x& j: B
写在两个独立的block,仿真器不可能知道他们有关系的。
作者: darylz    時間: 2009-9-23 12:14 PM
除非你用clock同步( V' B# R  D& U9 ]* L* G( ^
.....................................................
作者: ejean    時間: 2009-10-9 05:19 PM
You can solve this problem 5 [6 n' n# x8 Q5 z; P6 P
1. add a delay cell before each register.+ Y( b# H) o+ A2 J
2. Synthesize the circuit, simulate the code with SDF.
作者: masonchung    時間: 2009-10-13 09:15 AM
這樣說吧6 n' b! B- Y! H# A( |9 n6 N! H
initial 是執行一次的迴圈. Y6 c$ ]. w. |# q
always 是無窮回圈 ; I; }  C" a/ J7 F  w8 J
兩者要同步才能避免這問題
2 z0 r# v" V# H; J& Y) }同步就是在initial用 @(clk) , 不要用 # n; L3 ?, {: j2 f

0 T, ^. w. r4 N4 b8 T3 R1 x以上
" ]" e7 E$ ]" J% C' @9 U0 e如有錯誤歡迎指正




歡迎光臨 Chip123 科技應用創新平台 (http://free.vireal.world/chip123_website/innoingbbs/) Powered by Discuz! X3.2