Die wichtigsten Hersteller von Electronic Design Automation (EDA) -Tools haben jeweils ihren eigenen SystemVerilog-Simulator. Die Werkzeuge werden auch von verschiedenen Leuten zu unterschiedlichen Zeiten geschrieben, genauer gesagt vom Simulationsalgorithmus. Also verhalten sie sich im Allgemeinen auf die gleiche Weise.
Es heißt Unbestimmtheit, und muss darauf geachtet werden, um sicherzustellen, dass die Modelle oder Prüfständen so geschrieben werden, dass nicht Unbestimmtheit keine Rolle.
Indeterminacy: Uncertainty
ersehen aus LRM Beispiel:
assign b = a;
initial
begin
a = 1;
#1 a = 0;
$display(b);
end
Da die Ausführung von Anfängen mit ASSIGN verschachtelt ist, kann der Wert von b b '0' oder ‚1 ', verschiedene Simulator geben unterschiedliche Ausgabe.
Questasim:
-- 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
INCISIV:
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
Wenn Sie in Ihrem Code Rennen haben dann dieser Knick Problem auftreten kann.
Bitte zeigen Sie einige Code, der Konflikt in Simulatoren Verhalten verursacht. – sharvil111