Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,  ^. c2 H  e4 X- J% a4 z
有大大可以幫我解答嗎??. N4 q9 |! z5 b9 |6 Q: e5 P2 V
; t) L9 u1 H. Y# K/ S; s
verilog程式 :
7 O- a5 k% b5 D  ]/ g9 m6 m  @`timescale 1ns/100ps# U$ k' r; M1 X- w' a" A% U
module timing(clk, rst, in, out);' D6 F: s8 M* W0 b! l4 f& z6 r: N

( |; N3 j1 C8 J( ?! n$ ginput clk, rst;4 l$ C3 n5 \, d, b7 Y$ [6 P( o) b
input [7:0] in;3 }0 A8 M! N4 b
output [7:0] out;
; H% s/ Z7 @' m+ ~reg [7:0] out;8 _$ y6 ?1 A2 @: j( M( y# J+ q

& @& `4 L; F( v3 a' X0 swire [7:0] out_temp;
& e1 I' ?# p% H; Z* [/ I* w0 N5 n9 F7 K" {; C

6 F' `3 T$ l; D9 N: d* q9 N' }assign        out_temp = in + 2;
+ n8 U8 F/ n5 h- K  X: q! |! }) d7 j4 j3 n) Z, _+ z8 w/ j
+ w9 `: R) Z  C& Y5 Y9 ?
always @(posedge clk) begin$ z3 P# y+ w% p2 d, y9 a: S* b% K+ O. A
        
4 V# W9 a* F3 O3 |4 \        if (rst)
: w- k. N) E1 d9 h/ X; M                out <= 8'd0;% r8 g. u0 O3 x- n
        else
' |$ B+ }+ d, E/ g               
0 ~7 ~# z( ~9 p9 @                out <= out_temp;
' b6 ?% |7 _7 [; n" z, M               
! Z, `# X) x4 Vend
$ A, D" U+ j5 m
1 {4 [% u0 }% Kendmodule
6 }. X5 f1 I9 @5 O7 a  I. w! n% l5 E/ Z2 [) w2 d" F: q; R

2 a; Y' W& Z; ^module test();- p' ?( o" D; `0 E1 K
% F& \; ]; ]0 ~
reg clk, rst;+ G! u6 W1 S; P0 j
reg [7:0] in;
9 v0 j9 o9 r" X$ j7 Dwire [7:0] out;
  t7 A3 m2 A- _% i8 \' {$ T; c+ ]; @6 [' i! U! W! A/ B: L
timing timing (clk, rst, in, out);% O4 `4 K6 C/ w9 j

; B3 l! M3 ?7 Q6 O' Q& Z" j7 W- {: S3 ]: C1 b& i
initial begin
4 V4 K  J( W8 R1 J        $fsdbDumpvars;
' i" H" Q; C! i4 i. F  _( W7 v6 \        clk = 0;
  k' Z0 ~. x& W+ v        rst = 1;- ?2 \+ s- V3 K# i6 z$ d
        #20
6 D3 p( V8 \3 f  S* A5 K- y        rst = 0;
# C  H( _0 o. h; I        #5
$ d, j, q- V; b& l. ~* O4 A        in = 5;
. h6 o: d$ k! W' w3 q( g! g$ J/ e        #10
/ Z6 H4 u! ]+ ^3 v: ^        in = 6;
3 C. \4 O) s; ]9 M        #10, `  M8 N' j' v
        in = 7;
! v7 ~5 k/ o  X' z: s+ Q7 N& h7 t        #106 I) y9 |; i% }( h
        in = 8;& z* G' C5 n/ I* J, \+ L
        #10% {- g' y' n! U0 j
        in = 9;
+ F; \% F7 h/ k* J6 }; g' P; v        #500 $finish;- \) K$ a' I8 W4 U1 R! s+ X& j
end
  M! \0 ~0 C# {! K0 h$ W  u- z+ S9 `+ R. a4 m
always #5 clk = ~clk;    ( O! v5 }* z) S

  z4 U7 I# L; u/ G, F' S, T3 z9 cendmodule/ m8 w2 n+ L# h  c. J* j+ t/ U
! ^1 P: O" P) w1 Y
------------------------------------------$ m$ e) v" ?% |1 [$ L
以下是VCS與Verilog模擬的圖
' ^; T, `9 l. r9 u* n! ~% y
; T4 y* ~+ \/ R& d  ?# P) P% e. V7 d9 l' D* W  }7 i4 C8 Y9 n
1 p8 n0 G6 ]8 H. C4 q
為什麼會不同??
! _" q/ }; S$ t$ }8 G: I各位大大請幫我看看6 \; Y5 v' p9 C1 J( Z( P- A) J

2 X. A, k, e2 v8 V. L3 D  `PS: 我不是要交作業啦,只是在Simulation遇到問題
3 P3 M* V$ O$ s0 U6 ?6 @' o1 i9 m2 }$ _' i% a% M% J
謝謝..............................

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。
) g: V$ \. Q- |: c. Q2 g' M你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??! c2 T$ j) J9 k3 _# p+ l' h7 z
我不知道如何把initial block與always clk 放在一寫??
9 _4 Y- u( [! @可以告訴我嗎??
. a: Y% L  \* |3 Q& F
; y) B+ w5 B* s5 [) l6 c. \0 Q- M7 W) D3 E4 c" U5 M
謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象
; _& N: q! `8 P" K而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?
: a" L7 l$ P! P" l, _写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步
$ ~: I, M$ u" f: g+ a* p/ `  S.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem
) a2 Z! `5 F/ b: k8 P1. add a delay cell before each register.
: Z( z/ M& c& e1 I% e  H* I6 T$ h. q$ j2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧
  H$ p' T. o; m, vinitial 是執行一次的迴圈, r1 d6 B1 z# R$ s" z
always 是無窮回圈 . ]# U. v! C! q, k* }
兩者要同步才能避免這問題6 S+ f6 A* U9 I# }. u7 U: u
同步就是在initial用 @(clk) , 不要用 # n: {8 B& U! q3 ?2 q. `$ A$ O& N

0 Z8 j- c, }, m以上  ^: V) T2 U/ A7 _
如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-9-29 05:38 AM , Processed in 0.190011 second(s), 20 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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