Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,% i9 X5 t- v# R' ]5 j0 g
有大大可以幫我解答嗎??
& k$ Z5 r0 |1 C; z7 E
2 y3 V8 C" k6 _8 Dverilog程式 :
( @( |& m  V( d- z. n- u6 K`timescale 1ns/100ps
9 _3 v& m8 E2 V# X9 _module timing(clk, rst, in, out);
0 D. K7 K+ B7 S/ j: ?$ S3 ]8 {
1 b, u+ Y& ?* i, V5 J4 Linput clk, rst;2 W6 Q) M- ~" Y
input [7:0] in;
! G, o$ ^* T0 K) [) ?3 zoutput [7:0] out;
. \) |1 @) @& N7 c1 Areg [7:0] out;
8 k' W( d1 ^4 ~* D3 P
2 F6 t6 G- D9 @+ zwire [7:0] out_temp;
8 G7 V0 f% _+ R$ t( W5 W9 c4 i
5 E, \, [* x3 w
* J5 }+ p! ?# E0 h! @5 a+ yassign        out_temp = in + 2;
% q4 O/ Q1 H1 |# s) u) d; ~( s4 }
2 t( D* T: n2 m% c5 g2 _
$ x: N( |  S% }" _always @(posedge clk) begin
# w1 `1 B- N4 `. U" W9 F        4 O7 D; a4 [5 [& w( U$ p) b
        if (rst)4 [5 X0 \, f$ J! j% |9 q
                out <= 8'd0;
/ U5 d; S7 U; W; s/ O& y        else
- I7 N0 [5 t  i6 }5 y, Z. C6 Y9 {  b( h+ Q               
8 ?- n3 Q0 o2 w                out <= out_temp;
6 ~; [  Y) n& C, S& Y: K' G" P                ! v1 A( ]( h+ N$ q! F- D  w$ z
end1 o9 A) E8 K! I% n# M! U6 X

3 l$ X+ Y' I" d) s3 b- t: @: xendmodule* v% C2 v  Q) U5 f& v) ^. r

3 ]. ?+ m( d$ c: r
1 ~  D: U6 C# B/ x- l: kmodule test();
( z8 P+ ~) R; v' m3 y) L
8 f$ T; B1 K+ z" @$ V  Treg clk, rst;
) w2 G5 @6 a1 A5 Rreg [7:0] in;
" h3 k9 b" z3 n: Q3 p6 {5 Dwire [7:0] out;5 N, f9 B+ b" y

( m4 D" \# H; r+ xtiming timing (clk, rst, in, out);, W: j  B; P& c2 k6 m! l& C. V2 {( s

5 }4 T, f6 [- u1 ]0 j, |6 |7 E& j/ q3 `& A
initial begin
  b* x) {1 @/ r7 [  L        $fsdbDumpvars;
' C) d! K: q; @# w& O% {1 G. y        clk = 0;
# O/ y" Z! C( p        rst = 1;
5 t, _; l0 [0 C- n        #20
" C5 Q0 l' A7 @& m        rst = 0;! @% A6 e3 l+ O8 E: a* O
        #5
7 n/ a1 N: ?- b( C, Y4 A0 A        in = 5;. G! C( H6 ~  N  `9 ~% z3 i8 }
        #10# x; k3 B) s  W, h8 L
        in = 6;! ]) d* K$ S3 `4 V$ c
        #10
; k& c- [  x' }2 {        in = 7;
8 j( I: R7 |. L5 |$ n        #10
- @2 U- {( Z- ?3 C        in = 8;3 c5 n* Q4 t" D3 _( U6 F6 Y
        #101 ~* K0 {9 X  S% ]% X
        in = 9;3 H& w/ z% C+ X! t' K. ]+ o7 ~: q6 `7 S
        #500 $finish;
8 Q1 \' O' q6 u2 F" D( ~7 ]end
3 c  L( Y7 }3 ], z( t1 O
5 ^! e3 n! v+ Z& q2 K) _always #5 clk = ~clk;   
( x' }3 t, P% o7 H& a# y0 }; v! t$ q) D6 T4 K: B/ x; q
endmodule0 p/ X+ G% v5 J  }' n
6 r; x" C+ t) ]7 {5 W
------------------------------------------& |3 [) i7 m8 V
以下是VCS與Verilog模擬的圖
7 r8 ?  Q2 I' }/ [
8 a$ ?) k$ T6 D* p7 f+ A3 H  B4 x" T0 d  \, S  O$ F, r$ L
- M6 I1 ?6 n' z( `" n9 I, F
為什麼會不同??
' G" F9 m% B# A/ o! F各位大大請幫我看看
6 S2 W0 e$ e, i  E3 Y
3 x9 U8 C: H3 F# D. t3 uPS: 我不是要交作業啦,只是在Simulation遇到問題( I( ~9 v  u8 `* F/ Z
+ }" }) P9 D! i
謝謝..............................

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。
6 ^( W& A% B8 @3 A! m你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??/ E( X: e( ^  B7 x( ~7 c' _
我不知道如何把initial block與always clk 放在一寫??
# E! X3 L7 `' G- o7 ?0 _, g$ ^可以告訴我嗎??
( R/ Q* Q5 ?8 k4 u- [" D3 @
5 P7 Q% I) E2 V. U, t; n) p/ \7 C
* m/ ^1 b9 ^& X0 m9 [3 P謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象
/ {" T# t7 E, t而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?/ o# b/ U6 p1 O0 l6 _+ z' H
写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步% o0 o! w( R7 s* ^
.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem
0 o: v3 G7 `) ^+ M* x1. add a delay cell before each register.# H2 @; u* O2 U, P, ^$ I2 c
2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧
' E3 I6 s+ f# W; |initial 是執行一次的迴圈
$ N9 I6 g' W9 y$ Walways 是無窮回圈 % C% N  t: V0 `) I* G. |& w
兩者要同步才能避免這問題
6 u8 L0 q) u# B! T同步就是在initial用 @(clk) , 不要用 # n: U7 w9 [4 u/ u* e2 k
  ~$ K# N% z! ]3 Q: w
以上4 ~# \/ [; h* q; ^, c
如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-6-1 10:45 AM , Processed in 0.128517 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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