Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,
: T  u- B$ Z5 |$ v# Q. U- p有大大可以幫我解答嗎??
: u0 B# U/ v) w  |  o) [! Q  S- T
2 E  i. c& c5 |$ R- v; ~+ _' h6 _verilog程式 : " L5 P5 y# o" B) m3 W% X; W! g
`timescale 1ns/100ps% r1 \8 w0 S. b1 M8 D- F. z; a2 J
module timing(clk, rst, in, out);
9 H: P0 T+ Y: L* E" ]
+ K, C6 k* r  y% i: Cinput clk, rst;
( d8 p; d/ C& Q/ Y, O2 Yinput [7:0] in;
: B$ m) r' i- Y1 G/ O1 C( v6 e3 Foutput [7:0] out;' Q" V0 D5 A% O% D( B) ]
reg [7:0] out;
% V1 e" E, k: [, G& G: V0 o7 `; n* |. u! G; G+ R1 U; F
wire [7:0] out_temp;
3 G8 p6 H- o7 ^/ ?' j8 ], F, P- M% v; {

7 v% o+ `' b/ o1 jassign        out_temp = in + 2;, F$ f% E' h7 X
) O+ Z0 ^2 [) @2 f

5 Z; x5 O) [& k7 _+ ?always @(posedge clk) begin
8 ^$ Z6 [  e$ `0 n; g6 I# w6 V* ]        , L& c* c6 `9 d+ w& W
        if (rst)5 F! I+ B1 T0 N+ a2 g
                out <= 8'd0;8 D* c% w3 }7 E9 A
        else
* h# V3 v* n) C4 F4 o9 a/ z               
  O# l. S5 S0 S' R! a+ k" M8 e                out <= out_temp;$ W' h# H- l7 j8 C8 {/ G
                4 u  b: W3 p3 \+ [
end
3 N, Y) L, Z; O- f, [' m3 |; Z
; D& O" Y5 H# [1 {endmodule
* C7 w5 ^' V8 i9 G0 {9 j  i5 i5 G- [
; A" P* O: |* z6 y' g/ g6 @2 C0 a
module test();" ~# C' ~6 f& }4 e3 N

. F. z; P; |) I- p3 O7 X! sreg clk, rst;+ x. K% |8 H' c7 a+ s+ l
reg [7:0] in;
+ F2 y0 T9 v8 r. G0 y% Rwire [7:0] out;4 C$ G, C6 l# ]6 p$ G$ V- U

' g, x6 G) t6 O7 C: k2 s  u3 Qtiming timing (clk, rst, in, out);6 |; \6 M! I+ n9 L( f& v% ]

8 j4 v7 ]5 i4 s  \) `5 m
) a8 I+ `, {+ i! l! c4 Cinitial begin: c! M9 m. B+ ]* R0 R
        $fsdbDumpvars;
* S; B9 ~* W/ D& e  T' }: X9 J        clk = 0;
& S, ?2 R/ x4 z9 l1 k        rst = 1;; d. X4 ~/ Z% Q2 I- O6 O/ C
        #201 @, F9 k$ z. U5 D0 ~
        rst = 0;4 g; l. R+ Y8 C/ D' L% z7 M
        #5
$ k. Y2 O4 U% \% |6 s        in = 5;
  a% ]) r6 O. p; k1 U        #10
4 w% d  o% P, u" L+ R        in = 6;
  \8 Q3 F. ?5 p3 t$ u0 \+ z3 N        #10/ B2 R& j, Z, Q( ^' O) ^, q
        in = 7;
- ?3 |/ u! s8 q$ @: t* Z3 B3 ^        #10( v2 R9 @" E% T! q2 W% f# P! j
        in = 8;
. k7 y  [; `0 c/ H8 L$ p4 y. b; p6 u0 Z* f        #10: J! Q3 j' b2 L9 X! w! P* d
        in = 9;, X5 w1 ?" o( e8 M  v, e. n
        #500 $finish;* R: K: k) l: C0 |! [4 c* Z$ B" ^
end# [' y7 p3 u1 G- F/ E
( p6 B+ e6 w1 |1 B4 t9 D
always #5 clk = ~clk;    7 b. ~& S9 c( ]5 l7 K  j
2 W3 q! R9 e- M  `' k" B
endmodule
! _/ B7 m4 G0 N! Q0 |
/ J" h9 }( e# g" F2 L! y! S' _------------------------------------------
( N4 s& M- T. V以下是VCS與Verilog模擬的圖2 s5 S6 N+ k3 A* @

$ n: E" q/ G; ^# D2 X' p7 S5 z: M; i5 z3 [( H
; b1 d% I. E7 j3 a0 y8 E9 _/ W: s
為什麼會不同??! R" L* u3 V% J: i! f  Y
各位大大請幫我看看
6 h, Y0 G0 W6 b% j- w' K! x, V
- n- g) F! B; P+ l0 q0 \6 R+ ?7 X+ z8 pPS: 我不是要交作業啦,只是在Simulation遇到問題
# |/ H8 t- d& i8 j! V8 d9 f, d' J# ~
謝謝..............................

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。! n0 U4 K2 E7 q$ ~, y! \; }1 F
你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??( J1 `& x, {8 ~7 q6 G* A0 ?) |7 K
我不知道如何把initial block與always clk 放在一寫??
" T4 P  A3 b3 t; g可以告訴我嗎??
/ w4 T3 R8 {. ]9 c% I  x! k! s# C2 g( U

1 |( y/ v( x4 u$ A& f. {) {' v5 i" X謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象
& [& J+ m% s/ \6 J: q4 P而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?' r; b5 Y, g/ G
写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步% y/ |5 q+ V% x# t9 M  K
.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem
$ o! C( M# @+ h. a) n8 V4 V1. add a delay cell before each register.$ J1 s4 V# T; S
2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧, I  j2 A' N0 _! D8 x* [- f
initial 是執行一次的迴圈
  V8 S. a; F' j4 ialways 是無窮回圈 & W+ _/ i# P( M1 x+ S
兩者要同步才能避免這問題
" ^/ b1 m  w3 l6 j- ~+ P同步就是在initial用 @(clk) , 不要用 # n
, p1 X6 L' O! W5 v) W  X& `& n" K$ J) X, L9 x4 `9 ?
以上
: l) ^4 _" T. Y* l' C如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-5-19 07:18 AM , Processed in 0.115515 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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