Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

[問題求助] 問一下VCS 與Verilog-XL的模擬結果

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,
. T+ ?( K; @% x有大大可以幫我解答嗎??6 ]4 o" f1 w7 o8 ?' Q

9 w8 G1 L& _3 l- T- I- P& ?+ j8 Cverilog程式 : / T" v! e+ T$ b0 ?2 n% l
`timescale 1ns/100ps
' Z, s5 }0 w5 ~module timing(clk, rst, in, out);/ s; s- p. ?: c" H' U1 p2 i

' }2 M1 C' W: j! k0 Xinput clk, rst;
, U* V) \: k! p3 @9 N( }+ cinput [7:0] in;
. v1 c/ N6 Q+ l, Noutput [7:0] out;
! _" K1 J* M/ O7 Jreg [7:0] out;
6 [! a& f6 x! o
8 `5 h6 S  m6 k! \8 pwire [7:0] out_temp;5 r1 r9 I' _  X/ E
4 k5 f8 [7 }1 U; w0 G9 f4 U: I
2 `* K+ _2 f3 {+ Q5 {( F
assign        out_temp = in + 2;
9 z/ D  L7 q/ Y7 F5 `; Y( j
9 G0 O, @% t. }4 r! l8 y5 V" t! U, W( s( V* X9 i; c
always @(posedge clk) begin
4 s: S$ Y6 x3 x# e        
* j2 q# i4 W0 i6 f$ C        if (rst)
5 b3 A+ K6 f8 ~; S                out <= 8'd0;
7 P# R  {: k3 Q7 y        else ) G5 u) Z  N+ r# @' s4 Y
               
0 F4 u8 D/ ?6 V: j( ]                out <= out_temp;
6 P/ h1 R, Y0 l4 E% Q8 J                2 A+ }2 T  N5 {' I, u/ V! L4 a
end9 q4 K) z" V8 g, K
! o# a8 @% B5 v9 \
endmodule
6 t5 D* {. H0 O& F2 D) @  m- N3 s6 B( f
7 v3 r8 g1 ?  G3 v! E) H/ E
module test();
/ M3 Z4 f8 [6 \. m- @( e" H
6 Q: P, W2 f( s" ureg clk, rst;
6 C. E. v8 ^: ~8 I% J) B  Mreg [7:0] in;& A5 d8 s1 {2 o
wire [7:0] out;
6 P/ I0 j% E$ ]: i
& B0 f* a( i6 ?. ~/ F- w  _* W/ Ttiming timing (clk, rst, in, out);4 ~3 X  }% G+ A. o

: {& F! U3 Z( B4 R, J( C. L& ^
8 ~" c, j* {/ s2 Z$ L7 ^initial begin1 X; Y4 d* A  R6 S2 m
        $fsdbDumpvars;0 [: `! z, j% n+ b2 T) Y
        clk = 0;8 w$ M: j# n! {3 D
        rst = 1;, K& H9 w3 C' I6 c3 n
        #20( E+ D* }0 A1 |( h- h9 L, D
        rst = 0;, w+ M7 w! s9 N9 i/ ]; s3 R$ I
        #5
6 D  W8 N; ~2 `; V0 f        in = 5;* v# h/ i/ v6 V2 U; S
        #10. I9 G/ O* o) j+ D5 o
        in = 6;
8 H% D* E6 \/ o! n        #108 o7 V4 @) l* a5 Y. B. R1 C+ a. W
        in = 7;! z7 W# R$ \- {" i7 A0 f( a% S" j
        #10
. [, u2 Z1 V7 z% c8 ~        in = 8;
) `* t  ]7 J4 U, E7 G; i! H        #10
3 @( P9 E/ e) B9 N        in = 9;4 Y; M: G7 h. w+ e3 E, p6 s6 L0 L
        #500 $finish;: }2 }/ ], e% j3 ]$ t8 m, a: t
end* d5 R$ b* m" ]" N

% i5 u& l( L9 ]5 Q  r; Falways #5 clk = ~clk;    5 [6 P) _+ G" F! }! Y5 r+ H) _- \1 p
/ }7 C; g7 y; U* T$ l3 Q
endmodule
6 X2 Z4 C; l: z, F) |2 e# ~1 g- [& j5 @7 N/ A  x- h: j0 f: B5 i! @
------------------------------------------* |: H( J4 `2 c6 V0 _# [! n
以下是VCS與Verilog模擬的圖# Q) i4 a5 m/ b* @' f& y

- e  C/ J5 k2 d7 s
1 e  i% H/ k7 ~* x, E
) j, q2 O4 r+ M' F( w為什麼會不同??/ p& l& e2 b) t. H
各位大大請幫我看看
2 ]0 l( Y8 B$ ?- n, r2 W/ `( [# K) `% F; }  n! \7 N
PS: 我不是要交作業啦,只是在Simulation遇到問題
/ e2 k* h$ p+ \5 @8 q; @, L
9 D! e- d! Q/ `2 m9 m# Q謝謝..............................

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?申請會員

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。
! g5 B0 O0 v2 r& e$ b- q( p你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??
/ z4 k, F6 H+ y& p: h% z5 v  t9 ]我不知道如何把initial block與always clk 放在一寫??
" X0 k6 A! ^* b- l$ |* O8 s可以告訴我嗎??
7 G% M' A  g' t1 b
. p0 F5 `4 |) s8 L, N1 e3 Y
% `5 U% P' Y/ q7 w謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象- J* m# k" g: t) @* J
而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?
1 t0 ^$ p5 V" m: M6 @) ?) ^, O; |写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步$ O2 t& z* I5 a9 j6 k
.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem * b. u5 X* X( }% V0 A  e
1. add a delay cell before each register./ E* ~2 c, R" ?+ t
2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧
& y: V" X1 Q, Q) H" i8 J. Xinitial 是執行一次的迴圈
  K& q6 g8 o1 F7 jalways 是無窮回圈 7 `$ D" c" A; r- U
兩者要同步才能避免這問題
9 T, e/ f3 i& V2 h4 i7 g2 w) l. R同步就是在initial用 @(clk) , 不要用 # n  _& S) h" P% _9 u# K: Y
3 Y; H- u" l$ |4 }
以上
( L( ]) ?* Z# G# R! F( \1 O( I如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-16 11:20 AM , Processed in 0.114015 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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