当我在VCS中编译得到正确的输出,但当我在IVL中编译得到不同的输出时,Verilog程序

当我在VCS中编译得到正确的输出,但当我在IVL中编译得到不同的输出时,Verilog程序,verilog,system-verilog,iverilog,Verilog,System Verilog,Iverilog,我真的很困惑 我做了verilog编程,并在VCS中编译和执行。它在预期的时钟周期中给出正确的值 当我运行它时,它是ivl32,它给出的值略有不同 我完全糊涂了 有人能告诉我问题是什么吗?主要的电子设计自动化(EDA)工具供应商都有自己的工具 SystemVerilog模拟器。这些工具也是由不同的人在不同的时间编写的,更具体地说是模拟算法。所以一般来说,他们的行为方式是一样的 有一种称为不确定性,必须注意确保模型或测试台的编写方式确保不确定性无关紧要 不确定性:不确定性 参见LRM示例: ass

我真的很困惑

我做了verilog编程,并在VCS中编译和执行。它在预期的时钟周期中给出正确的值

当我运行它时,它是ivl32,它给出的值略有不同

我完全糊涂了


有人能告诉我问题是什么吗?

主要的电子设计自动化(EDA)工具供应商都有自己的工具 SystemVerilog模拟器。这些工具也是由不同的人在不同的时间编写的,更具体地说是模拟算法。所以一般来说,他们的行为方式是一样的

有一种称为不确定性,必须注意确保模型或测试台的编写方式确保不确定性无关紧要

不确定性:不确定性

参见LRM示例:

assign b = a;
initial 
begin
  a = 1;
  #1 a = 0;
  $display(b);
end
由于initial的执行与assign语句交错,因此b的值可能为“0”或“1”,不同的模拟器会给出不同的输出

Questasim:

INCISIV:

irun:12.20-s015:(c)版权所有1995-2013 Cadence Design Systems,Inc。
重新编译。。。原因:文件“/me.v”比预期的要新。
预计时间:2016年5月10日星期二14:31:09
实际时间:2016年5月10日星期二14:33:54
档案:me.v
模块worklib.chk:v
错误:0,警告:0
正在缓存库“worklib”。。。。。。。多恩
详细说明设计层次:
顶级设计单位:
chk
建筑实例覆盖表:。。。。。。。。。。。。。。。。。。。。多恩
生成本机编译代码:
worklib.chk:v
流量:1,字:825
正在加载本机编译代码:。。。。。。。。。。。。。。。。。。。。多恩
构建特定于实例的数据结构。
设计层次结构摘要:
实例唯一
单元:1
登记册:1
标量导线:1-
初始区块:1
续分配:0 1
写入初始模拟快照:worklib.chk:v
正在加载快照worklib.chk:v。。。。。。。。。。。。。。。。。。。。多恩
ncsim>source/sib/tools/Cadence/Install/INCISIV122/tools/inca/files/ncsimrc
ncsim>运行
----*----b的值为::1----*----
ncsim:*W,RNQUIE:模拟完成。
ncsim>退出

如果代码中有赛车,则可能会出现此问题。

请显示一些导致模拟器行为冲突的代码。
-- Compiling module chk

Top level modules:
    chk
Reading pref.tcl

# 10.4

# vsim -lib work chk -c -do "run -all; quit -f" -appendlog -l qverilog.log -vopt 
# ** Note: (vsim-3813) Design is being optimized due to module recompilation...
# //  Questa Sim-64
# //  Version 10.4 linux_x86_64 Dec  2 2014
# //
# //  Copyright 1991-2014 Mentor Graphics Corporation
# //  All Rights Reserved.
# //
# //  THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION
# //  WHICH IS THE PROPERTY OF MENTOR GRAPHICS CORPORATION OR ITS
# //  LICENSORS AND IS SUBJECT TO LICENSE TERMS.
# //  THIS DOCUMENT CONTAINS TRADE SECRETS AND COMMERCIAL OR FINANCIAL
# //  INFORMATION THAT ARE PRIVILEGED, CONFIDENTIAL, AND EXEMPT FROM
# //  DISCLOSURE UNDER THE FREEDOM OF INFORMATION ACT, 5 U.S.C. SECTION 552.
# //  FURTHERMORE, THIS INFORMATION IS PROHIBITED FROM DISCLOSURE UNDER
# //  THE TRADE SECRETS ACT, 18 U.S.C. SECTION 1905.
# //
# Loading work.chk(fast)
# run -all
# ----*---- Value of b is :: 0 ----*----
#  quit -f
# End time: 14:32:20 on May 10,2016, Elapsed time: 0:00:01
# Errors: 0, Warnings: 0
irun: 12.20-s015: (c) Copyright 1995-2013 Cadence Design Systems, Inc.
Recompiling... reason: file './me.v' is newer than expected.
    expected: Tue May 10 14:31:09 2016
    actual:   Tue May 10 14:33:54 2016
file: me.v
    module worklib.chk:v
        errors: 0, warnings: 0
        Caching library 'worklib' ....... Done
    Elaborating the design hierarchy:
    Top level design units:
        chk
    Building instance overlay tables: .................... Done
    Generating native compiled code:
        worklib.chk:v <0x5f262bc0>
            streams:   1, words:   825
    Loading native compiled code:     .................... Done
    Building instance specific data structures.
    Design hierarchy summary:
                    Instances  Unique
        Modules:            1       1
        Registers:          1       1
        Scalar wires:       1       -
        Initial blocks:     1       1
        Cont. assignments:  0       1
    Writing initial simulation snapshot: worklib.chk:v
Loading snapshot worklib.chk:v .................... Done
ncsim> source /sib/tools/Cadence/Install/INCISIV122/tools/inca/files/ncsimrc
ncsim> run
----*---- Value of b is :: 1 ----*----
ncsim: *W,RNQUIE: Simulation is complete.
ncsim> exit