Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,
9 @5 t8 l- B% D! o5 u有大大可以幫我解答嗎??- k/ f6 X5 A0 V; J/ S
! C) E# l; Z! J3 S
verilog程式 :
) X% Q2 ]8 M9 |( G' }`timescale 1ns/100ps: z" i' X. @' C" f# Y2 e1 V! c
module timing(clk, rst, in, out);6 e) s. m1 b7 _+ S1 p
! S- }) u( r$ o+ G! M  b
input clk, rst;- Z1 [" i! r/ {! F
input [7:0] in;
+ H# w" c) }- c0 qoutput [7:0] out;/ b/ |* l( M! e+ B1 T
reg [7:0] out;
$ m; b  i9 ^1 {" P  A0 }5 \, W9 @' }% W% Z
wire [7:0] out_temp;
, a2 ]: e5 r: e
7 Y5 g$ h  `8 U" O% d# I# \. P: _: J3 ]+ k
assign        out_temp = in + 2;4 R) [" |1 t7 M/ k( F3 I. T
1 R( Q# H/ h. V' c* J
" B! V8 \" y( E% ?
always @(posedge clk) begin
# y( J( p; r% |2 Y. n7 w; l# n        
* y$ U' [; l* H; v( [        if (rst)
. s2 E4 _3 f% [5 N& B  K1 |                out <= 8'd0;
; _6 q8 {" N3 @  f+ C: M# D. v        else
- ?& [: B( |# v               
* y# @4 R, T) M3 K# f6 e                out <= out_temp;: ^. i3 x* L$ Z0 r) m& a, Y
               
! P5 ?/ C5 g+ o- L: send7 m% W9 ?+ i3 D$ e  D; j

- k  Z6 ]0 w' W: hendmodule
2 D+ d; J" c" c! V
/ i* J5 A$ E% ]# s* s3 C
7 E$ C* F  n0 H% r& Bmodule test();; V- M( ^; K) u$ O7 z8 ]2 D) M
1 S# h4 y6 l  `8 S
reg clk, rst;* w% r. z: |7 T$ @) C
reg [7:0] in;. E" p( Z( U$ [% v
wire [7:0] out;8 {* }! _" U; ]3 l1 n

4 u' \+ W7 \! v" A$ H4 M3 L- [timing timing (clk, rst, in, out);
4 L' ^/ s# h( c5 U$ `, q/ B( Y9 r, {4 a+ T8 F& ?9 a

* G4 m, z3 M# F( o& a  y" S$ B$ Minitial begin
. c2 X5 s4 K3 S2 d, G: ^. D  f        $fsdbDumpvars;
9 o! K" ~' R) ^! i, z% G        clk = 0;, v7 Y4 A% f' m
        rst = 1;2 @0 o3 p4 \5 n6 M3 Z, i3 t
        #20
* [2 _6 ^  [- }4 ~- }+ ^        rst = 0;
) z* \9 o# f) u) S, ]% n2 F        #5: {+ S$ b7 p8 p
        in = 5;* q7 k" s* c' @* P! V* {
        #104 X/ n& Y$ U% L* q6 J& ~
        in = 6;) Y6 y; B. R6 r5 v
        #10
* \, s5 |1 {1 @! @4 x# Q' O! N        in = 7;% \( l5 L7 q8 m. a; D; U& O% l
        #10# e8 b  u0 ?9 a- ~' b+ x
        in = 8;
# `5 p4 z& N5 h. [        #10
/ X4 E3 k/ r$ O3 G: p        in = 9;
8 i/ V* q( n1 G. ]$ }' R        #500 $finish;
# Q3 }- F( P# z3 Gend
  j; w' Y+ J5 i: b; z- U% `2 T1 g  Z. Q
always #5 clk = ~clk;   
8 F$ c* U" `$ n& }0 t
6 F% C  E& N" e+ u3 J6 m4 j6 cendmodule% }& A' {; e1 v' v( H9 \3 i
4 O% V0 V7 w/ w+ i( i
------------------------------------------
1 b; }8 @4 Z6 d( [4 Z6 Q3 e" M4 ?以下是VCS與Verilog模擬的圖
* U1 {% I( L7 G
9 ?( i0 y: o8 [) p1 w7 C- M" Z9 Z8 y5 v: @
1 d+ X; E- N* x" f3 }
為什麼會不同??
4 V$ z8 R0 k+ ~各位大大請幫我看看
# I: B! V! w( N; ~3 J; w8 Z+ V/ R0 Y+ T/ W; S1 D4 E
PS: 我不是要交作業啦,只是在Simulation遇到問題
0 [+ O6 ^* a; H' @3 N( t( X, s/ Y; C2 \% F6 q3 C# L$ u
謝謝..............................

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。! B! S* }- x- m, N& Y' l7 u" G
你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??
0 H. j/ f8 x" d我不知道如何把initial block與always clk 放在一寫??
! J4 p3 D* n; n! L7 J可以告訴我嗎??7 J0 e: d1 }$ c4 Q- W
( _2 y, Z+ L* d

" }) Y/ P7 X: g5 {& q- a: |謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象3 a. o/ p% g9 k0 q8 @
而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?$ O6 S- T( n' }; d* e7 f: f
写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步- ?) M' g6 `( ?) S" H* H  |
.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem
  M8 K4 S$ [: J# l. {+ u3 m1 o1. add a delay cell before each register.
; A/ _8 W' D2 c9 B6 c$ ~2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧/ N  w6 E# t9 m7 m  z" m0 U/ _
initial 是執行一次的迴圈. i; u* F4 S1 r/ A( }  f" l7 d
always 是無窮回圈
/ c* i# S; m# `& S兩者要同步才能避免這問題; k$ Z/ Q( P) Y* _; T; Q( B
同步就是在initial用 @(clk) , 不要用 # n
" I. s' G7 n. x+ h  b  z8 j6 k6 `# _" c3 ]5 t) \) F+ W
以上
: I, s! I; f! N如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 11:25 AM , Processed in 0.172010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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