2016-05-10 14 views
-2

ich bin wirklich verwirrt.Verilog-Programm, wenn ich in VCS kompilieren bekomme korrekte Ausgabe, aber wenn ich in IVL Compilier verschiedene Ausgabe

Ich habe Verilog-Programmierung und kompiliert und in VCS ausgeführt. Es gibt korrekte Werte bei erwarteten Taktzyklen.

Wenn ich es ausführe ist es ipl32 es gibt etwas andere Werte.

Ich bin völlig verwirrt.

Kann mir jemand sagen, was das Problem sein wird?

+3

Bitte zeigen Sie einige Code, der Konflikt in Simulatoren Verhalten verursacht. – sharvil111

Antwort

2

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.