Chip123 科技應用創新平台

 找回密碼
 申請會員

QQ登錄

只需一步,快速開始

Login

用FB帳號登入

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

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

[複製鏈接]
跳轉到指定樓層
1#
發表於 2009-9-11 23:04:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我用VCS與Verilog-XL模擬下面的程式結果輸出波形不同,# o5 o9 v2 F% A- S! r
有大大可以幫我解答嗎??
7 j3 O, a' T# G! F' |3 ?! t
/ ^( V5 Y/ A) V( ~1 q. a% G; ?  i& Hverilog程式 : % S& j  {# F+ J& {2 n9 a" Y
`timescale 1ns/100ps7 H8 E$ a* Y2 D$ Y& [' s# L
module timing(clk, rst, in, out);
. g. L, ^" y- t. ^) Y
1 @( [: H9 z  |! s5 h1 |& }input clk, rst;7 R3 ~% ]0 S( w0 o' m4 R
input [7:0] in;+ i& a% O- r1 X4 O) J# K
output [7:0] out;
* z3 w) _- S, J! b! ]" ]7 u) Freg [7:0] out;, J4 U6 L1 [3 z; K
- @& q) ~' ~, J& \# a. ?2 |
wire [7:0] out_temp;
4 |% s9 k# r+ V: V/ @
8 S# O- l* g5 M) R5 [
3 O, @$ |& t5 B) U/ ^assign        out_temp = in + 2;! D  W0 v. J$ W1 L

- j  M/ n$ F7 r
% g$ ^+ t1 H% N& S: {) z* Qalways @(posedge clk) begin/ Y4 [( F3 q/ y  l  C' Z& |1 v0 ^" @
        
# k2 x5 p* Q2 i, v5 [0 k( [        if (rst)
: C" ?. u; t& i# s% C3 N8 }                out <= 8'd0;1 s/ ?. x7 O' M; @' }8 Z# `
        else ) i! @+ S% k9 N6 P8 C+ v
                + @* W* `) X5 h) x+ {
                out <= out_temp;
6 p5 y+ ?; \" q               
; D1 }" m. f# E" H; ], qend* h6 |: X: P0 [' ~1 m2 r5 N  a. B, ^

9 O+ R6 v$ M2 B3 ?' r7 q3 G+ Uendmodule
0 i( ^; e4 V$ a$ _5 C" g- O7 r7 c# r0 X2 u' \3 X8 E+ D1 c
, l- D1 n8 O5 R# V
module test();2 f4 u+ @) N  P- k# L  C

& I. Q1 v" L( B& |; Kreg clk, rst;
: E  m5 L, u/ S; sreg [7:0] in;: }1 W4 W; n: `# h5 ?
wire [7:0] out;
; I, m; w& D" H" L9 `, {
3 e: ~0 o- N+ Z/ q9 i7 Z/ m6 s* xtiming timing (clk, rst, in, out);
8 `% _- c: [+ |, m3 E! ?: e& k& n
& {% T; c+ V5 p' |7 h* K- @4 F0 F/ I: Q- a# w( H& `, H
initial begin$ H! `3 v( X, B5 ~! C1 a
        $fsdbDumpvars;
6 f# U* l7 B: q$ X        clk = 0;
, g) M% o0 G. E, x        rst = 1;; K+ h/ ?/ S& R
        #20/ l! o) I* L, F+ e2 T
        rst = 0;- Y( i7 ~: t& q. g: D( E
        #5: o. T! R( {; ^5 j2 _
        in = 5;% `6 @6 ^4 G' y& Q9 ]% k4 f# U
        #10
: Z  ], v7 i' G5 Y* m        in = 6;
% h1 ]% n, d9 g* e5 r& t+ q        #10
5 w1 l2 }' A/ z* k+ s        in = 7;9 v. T$ K$ t% f/ X
        #10- v) w9 T/ ?5 G6 a
        in = 8;
+ y0 x0 H5 L  @1 n  a  Q- y        #10
5 G* P# w3 Y& w6 X$ B8 D0 n4 J% l        in = 9;
- y! Z3 @; d* u) X8 r        #500 $finish;
* p7 Z% p3 j& o! _  ~end
6 O- \9 J( W: }% Y7 v5 `0 D0 t# q, \7 S7 F( b
always #5 clk = ~clk;   
( G0 C: O' v/ t9 J2 E' Y/ I: m4 {8 d0 |# D; Z8 j
endmodule# s. K1 j. N( b8 p  b4 W  W

/ F! b+ s) D+ R% I, e% B5 D------------------------------------------7 O' M- k/ h: I# l. x! H  O6 Q; x
以下是VCS與Verilog模擬的圖+ D% E% O5 x  o; e# n
) w0 @/ V# H; R2 u
5 o8 _" g7 W, ~6 \: E6 {/ a

1 V) O6 g% {& `6 }  z1 l# @, e1 V為什麼會不同??
4 ?# {5 n/ V# \$ G% p8 a7 Z7 ~各位大大請幫我看看% @* f# p0 C4 K3 T3 H

3 Z3 I, G0 _8 P. cPS: 我不是要交作業啦,只是在Simulation遇到問題
  E& C! y& H7 x! X+ N% q+ {- p, a% M1 T# r* K! P3 l
謝謝..............................

本帖子中包含更多資源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 頂 踩 分享分享
2#
發表於 2009-9-15 15:46:20 | 只看該作者
这个很明显是Verilog仿真中的竞争(race)情况。
# N- v' r8 H. V" M' x; y1 G你产生in值的initial block和 产生clk的always block各自独立,所以执行顺序是未定的。
3#
 樓主| 發表於 2009-9-15 22:57:52 | 只看該作者
請問要如何寫才不會有Race的現象??
: E. O. v; C* d2 S: Q6 c* O7 h' H我不知道如何把initial block與always clk 放在一寫??. ~3 n( M% T% _5 H2 b# I
可以告訴我嗎??
3 K& o* h. L7 x- F5 N% Y
6 F9 ]6 u" {. Q4 M: |  G! L# T' Y/ [* W. Y0 X8 J; ?8 v3 N2 M
謝謝.................
4#
發表於 2009-9-18 17:47:59 | 只看該作者

回復 3# 的帖子

不要讓clk 的edge和data的改變在同一個時間發生就可以避免這個現象( `3 J. j& g$ A$ q. c6 [" n
而initial和always 沒辦法一起寫。
5#
發表於 2009-9-23 11:04:33 | 只看該作者
既然你想要的数据和你的时钟是有关系的,为什么不写在一起呢?: x% E# R& q5 j( a4 A7 f
写在两个独立的block,仿真器不可能知道他们有关系的。
6#
發表於 2009-9-23 12:14:03 | 只看該作者
除非你用clock同步0 \" E; D( O! B/ p3 c" f
.....................................................
7#
發表於 2009-10-9 17:19:43 | 只看該作者
You can solve this problem & k. P- V% H5 C8 x* z% d
1. add a delay cell before each register.6 d, Z5 I- u' h1 s% S
2. Synthesize the circuit, simulate the code with SDF.
8#
發表於 2009-10-13 09:15:16 | 只看該作者
這樣說吧/ }9 L+ s( b5 z0 |9 M0 w7 v
initial 是執行一次的迴圈
, f: v  N% @  q; j# q2 falways 是無窮回圈 : b' r# w  S2 y6 H& A
兩者要同步才能避免這問題
. K! A. N- T) ]; z: H0 A* ^% |同步就是在initial用 @(clk) , 不要用 # n
! N- V- a% ~0 u- m; h  O) C
: ~9 O  ~# D" r& {" `- O) N" \以上5 ?5 @1 E. S# `$ J. {! Y5 g
如有錯誤歡迎指正
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

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

GMT+8, 2024-11-16 09:33 AM , Processed in 0.171010 second(s), 19 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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