实例介绍
【实例截图】
【核心代码】
Contents 1. Getting Started Simulator Support with Technologies . . . . . . . . . . . . . . . . . . . . . 1-2 Simulation Preemption Support. . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Setting Up the Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-4 Verifying Your System Configuration . . . . . . . . . . . . . . . . . . . 1-5 Obtaining a License . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-6 Setting Up Your Environment. . . . . . . . . . . . . . . . . . . . . . . . . 1-7 Setting Up Your C Compiler. . . . . . . . . . . . . . . . . . . . . . . . . . 1-8 Creating a synopsys_sim.setup File . . . . . . . . . . . . . . . . . . . 1-9 The Concept of a Library in VCS . . . . . . . . . . . . . . . . . . . 1-11 Library Name Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . 1-11 Including Other Setup Files . . . . . . . . . . . . . . . . . . . . . . . 1-12 Using the SYNOPSYS_SIM_SETUP Environment Variable 1-13 Supporting VHDL Non-Locally Static Aggregates . . . . . . 1-13 Displaying Setup Information. . . . . . . . . . . . . . . . . . . . . . . . . 1-15 Displaying Design Information Analyzed Into a Library . . . . . 1-16 Using the Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-17 iv Feedback Two-step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Compiling the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Simulating the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Three-step Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-18 Basic Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-19 Two-step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20 Three-step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-20 Default Time Unit and Time Precision . . . . . . . . . . . . . . . . . . . . . 1-21 Searching Identifiers in the Design Using UNIX Commands . . . 1-22 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-24 2. VCS Flow Three-step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-2 Using vhdlan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 Using vlogan. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-7 Analyzing the Design to Different Libraries . . . . . . . . . . . 2-15 Elaboration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-15 Using VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-16 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19 Interactive Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-19 Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-20 Commonly Used Runtime Options. . . . . . . . . . . . . . . . . . 2-20 Two-step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-22 Using vcs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-23 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-28 v Feedback Interactive Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29 Batch Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-29 Commonly Used Runtime Options. . . . . . . . . . . . . . . . . . 2-29 3. Modeling Your Design Avoiding Race Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-2 Using and Setting a Value at the Same Time . . . . . . . . . . . . 3-3 Setting a Value Twice at the Same Time . . . . . . . . . . . . . . . . 3-3 Flip-Flop Race Condition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-4 Continuous Assignment Evaluation . . . . . . . . . . . . . . . . . . . . 3-5 Counting Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Time Zero Race Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . 3-7 Race Detection in Verilog Code . . . . . . . . . . . . . . . . . . . . . . . . . 3-8 The Dynamic Race Detection Tool. . . . . . . . . . . . . . . . . . . . . 3-8 Introduction to the Dynamic Race Detection Tool . . . . . . 3-9 Enabling Race Detection . . . . . . . . . . . . . . . . . . . . . . . . . 3-12 The Race Detection Report . . . . . . . . . . . . . . . . . . . . . . . 3-12 Post-Processing the Report . . . . . . . . . . . . . . . . . . . . . . . 3-16 Debugging Simulation Mismatches . . . . . . . . . . . . . . . . . 3-18 The Static Race Detection Tool . . . . . . . . . . . . . . . . . . . . . . . 3-20 Race Detection Tool to Identify Race between Clock and Data . 3-23 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-23 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-24 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-27 Optimizing Testbenches for Debugging. . . . . . . . . . . . . . . . . . . . 3-28 Conditional Compilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-29 vi Feedback Enabling Debugging Features at Runtime. . . . . . . . . . . . . . . 3-31 Combining the Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . 3-33 Creating Models That Simulate Faster . . . . . . . . . . . . . . . . . . . . 3-34 Unaccelerated Data Types, Primitives, and Statements . . . . 3-35 Inferring Faster Simulating Sequential Devices. . . . . . . . . . . 3-37 Modeling Faster always Blocks . . . . . . . . . . . . . . . . . . . . . . . 3-41 Using Verilog 2001 Constructs. . . . . . . . . . . . . . . . . . . . . . . . 3-42 Case Statement Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-44 Precedence in Text Macro Definitions . . . . . . . . . . . . . . . . . . . . . 3-44 Memory Size Limits in the Simulator . . . . . . . . . . . . . . . . . . . . . . 3-45 Using Sparse Memory Models . . . . . . . . . . . . . . . . . . . . . . . . . . 3-46 Obtaining Scope Information. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-48 Scope Format Specifications . . . . . . . . . . . . . . . . . . . . . . . . . 3-48 Returning Information About the Scope. . . . . . . . . . . . . . . . . 3-52 Avoiding Circular Dependency . . . . . . . . . . . . . . . . . . . . . . . . . . 3-55 Designing With $lsi_dumpports for Simulation and Test . . . . . . . 3-57 Dealing With Unassigned Nets . . . . . . . . . . . . . . . . . . . . . . . 3-57 Code Values at Time 0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-58 Cross Module Forces and No Instance Instantiation . . . . . . . 3-59 Signal Value/Strength Codes. . . . . . . . . . . . . . . . . . . . . . . . . 3-61 4. Compiling/Elaborating the Design Compiling/Elaborating the Design in the Debug Mode . . . . . . . . 4-2 vii Feedback Optimizing Simulation Performance for Desired Debug Visibility With the -debug_access Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 Incrementally Removing Debug Capabilities . . . . . . . . . . 4-7 Assertion Debug Support . . . . . . . . . . . . . . . . . . . . . . . . . 4-8 Verdi One Search Support . . . . . . . . . . . . . . . . . . . . . . . . 4-9 Reporting Global Debug Capability Diagnostics . . . . . . . 4-9 Specifying Design Regions for -debug_access Capabilities . 4-13 Enabling Additional Debug Capabilities . . . . . . . . . . . . . . . . . 4-15 Reduction in the Objects Being Dumped. . . . . . . . . . . . . . . . 4-17 Using -debug_access With Tab Files. . . . . . . . . . . . . . . . . . . 4-18 Unused Tab File Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Including Tab Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-18 Interaction With Other Debug Options. . . . . . . . . . . . . . . . . . 4-19 Dynamic Loading of DPI Libraries at Runtime . . . . . . . . . . . . . . 4-20 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-20 Dynamic Loading of PLI Libraries at Runtime . . . . . . . . . . . . . . . 4-22 Key Compilation or Elaboration Features . . . . . . . . . . . . . . . . . . 4-23 Initializing Verilog Variables, Registers, and Memories . . . . . 4-23 Initializing Verilog Variables, Registers, and Memories in an entire Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-24 Initializing Verilog Variables, Registers, and Memories in Selective Parts of a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-26 Selections for Initialization of Registers or Memories. . . . 4-30 Reporting the Initialized Values of Variables, Registers, and Memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-31 Overriding Generics and Parameters . . . . . . . . . . . . . . . . . . 4-31 viii Feedback Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-34 Checking for x and z Values In Conditional Expressions. . . . 4-34 Enabling the Checking . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-36 Filtering Out False Negatives. . . . . . . . . . . . . . . . . . . . . . 4-36 Cross Module References (XMRs) . . . . . . . . . . . . . . . . . . . . 4-38 The hdl_xmr Procedure and the $hdl_xmr System Task . 4-39 Data Types Supported . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-40 Using the hdl_xmr Procedure. . . . . . . . . . . . . . . . . . . . . . 4-41 Using the $hdl_xmr Task . . . . . . . . . . . . . . . . . . . . . . . . . 4-43 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-46 $hdl_xmr Support for VHDL Variables . . . . . . . . . . . . . . . 4-52 Data Type Support and Usage Examples . . . . . . . . . . . . 4-53 Support for Native XMR force and release. . . . . . . . . . . . 4-57 Verilog Configurations and Libmaps . . . . . . . . . . . . . . . . . . . 4-63 Library Mapping Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-63 Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-64 Hierarchical Configurations . . . . . . . . . . . . . . . . . . . . . . . 4-68 The -top Compile-Time Option . . . . . . . . . . . . . . . . . . . . . 4-69 Limitations of Configurations . . . . . . . . . . . . . . . . . . . . . . 4-69 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-70 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-70 Using the -liblist Option . . . . . . . . . . . . . . . . . . . . . . . . . . 4-75 Design Cells and Library Cells . . . . . . . . . . . . . . . . . . . . . 4-78 Library Search Order Rules . . . . . . . . . . . . . . . . . . . . . . . 4-80 Example Testcase Files . . . . . . . . . . . . . . . . . . . . . . . . . . 4-89 Usage Examples for Library Search Order Rules for Verilog or SystemVerilog Designs. . . . . . . . . . . . . . . . . . . . . . . . 4-91 ix Feedback Usage Examples for Library Search Order Rules for Verilog or SystemVerilog Designs Without a Configuration File . 4-109 Lint Warning Message for Missing ‘endcelldefine . . . . . . . . . 4-112 Error/Warning/Lint Message Control . . . . . . . . . . . . . . . . . . . 4-116 Controlling Error/Warning/Lint Messages Using Compile-Time Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-117 Controlling Error/Warning/Lint Messages Using a Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-133 Extracting the Files Used in Elaboration/Compilation . . . . . . 4-142 XML File Format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-143 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-149 5. Simulating the Design Using Verdi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-2 Using UCLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-3 -ucli2Proc Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-5 Options for Debugging Using Verdi and UCLI. . . . . . . . . . . . . . . 5-6 Reporting Forces/Injections in a Simulation . . . . . . . . . . . . . . . . 5-8 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-9 Reporting Force/Deposit/Release Information. . . . . . . . . . . . 5-11 Handling Forces on Bit/Part Select and MDA Word . . . . . 5-12 Handling Forces on Concatenated Codes . . . . . . . . . . . . 5-13 Output Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-13 Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-16 Generating Force List Report for Desired Instance Hierarchies 5-24 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-25 Displaying Different ID for Each Verilog Force. . . . . . . . . . . . 5-28 x Feedback Enhanced Force List Report. . . . . . . . . . . . . . . . . . . . . . . 5-28 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-29 Displaying Source Information for VHDL Forces . . . . . . . . . . 5-30 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-30 Displaying Source Information for External Forces . . . . . . . . 5-31 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-33 Viewing Force Information in Interactive Debug Mode . . . . . 5-34 Use model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-34 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-36 Reporting $deposit Value Changes . . . . . . . . . . . . . . . . . . . . 5-38 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-38 Key Runtime Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-41 Overriding Generics at Runtime. . . . . . . . . . . . . . . . . . . . . . . 5-41 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-42 Passing Values from the Runtime Command Line . . . . . . . . 5-46 Using -f Runtime Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-47 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-47 Saving and Restarting the Simulation . . . . . . . . . . . . . . . . . . 5-48 Save and Restart Example. . . . . . . . . . . . . . . . . . . . . . . . 5-49 Save and Restart File I/O. . . . . . . . . . . . . . . . . . . . . . . . . 5-50 Save and Restart With Runtime Options . . . . . . . . . . . . . 5-51 Specifying Long Time Before Stopping the Simulation . . . . . 5-52 Preventing Time 0 Race Conditions. . . . . . . . . . . . . . . . . . . . 5-54 Resolving RTL Simulation Races in Mixed HDL Designs . . . 5-55 Recommended Approach to Resolve Race Conditions . . 5-55 Resolving RTL Simulation Races in Verilog Designs. . . . . . . 5-57 Recommended Approach to Resolve Race Conditions . . 5-58 xi Feedback Supporting Simulation Executable to Return Non-Zero Value on Error Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-62 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-64 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-64 Supporting Memory Load and Dump Task Verbosity. . . . . . . 5-64 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-66 6. The Unified Simulation Profiler The Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-2 Omitting Profiling at Runtime . . . . . . . . . . . . . . . . . . . . . . . . . 6-4 Omitting the -simprofile Runtime Option . . . . . . . . . . . . . . . . 6-5 Omitting Profile Report Writing after Runtime . . . . . . . . . . . . 6-6 Specifying a Directory for the Profile Database . . . . . . . . . . . 6-7 Post Simulation Profile Information . . . . . . . . . . . . . . . . . . . . . . . 6-7 Specifying the Name of the Profile Report. . . . . . . . . . . . . . . 6-8 Running the profrpt Profile Report Generator . . . . . . . . . . . . . . . 6-8 Specifying Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 The Snapshot Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-14 Specifying Timeline Reports . . . . . . . . . . . . . . . . . . . . . . . . . 6-15 Recording and Viewing Memory Stack Traces . . . . . . . . . . . 6-16 Reporting PLI, DPI, and DirectC Function Call Information. . 6-16 Compiling and Running the Profiler Example. . . . . . . . . . 6-17 Profiling Time Used by Various Parts of the Design. . . . . 6-19 Profiling Memory Used by Various Parts of the Design . . 6-20 The Output Directories and Files . . . . . . . . . . . . . . . . . . . . . . 6-21 The Enhanced Accumulative Views. . . . . . . . . . . . . . . . . . . . 6-22 The Comparative View. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-29 xii Feedback The Caller-Callee Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-31 HTML Profiler Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-37 Display of Parameterized Class Functions and Tasks in Profiling Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-66 Hypertext Links to the Source Files . . . . . . . . . . . . . . . . . . . . 6-68 Single Text Format Report . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-71 Stack Trace Report Example . . . . . . . . . . . . . . . . . . . . . . . . . 6-72 SystemC Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-74 Constraint Profiling Integrated in the Unified Profiler . . . . . . . . . 6-81 Changes to the Use Model for Constraint Profiling . . . . . . . . 6-82 The Time Constraint Solver View. . . . . . . . . . . . . . . . . . . . . . 6-83 The Memory Constraint Solver View . . . . . . . . . . . . . . . . . . . 6-92 Performance/Memory Profiling for Coverage Covergroups . . . . 6-96 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-97 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-97 HTML Profiler Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-97 Default Summary View. . . . . . . . . . . . . . . . . . . . . . . . . . . 6-98 Time/Memory Summary View . . . . . . . . . . . . . . . . . . . . . 6-98 Time/Memory Module View . . . . . . . . . . . . . . . . . . . . . . . 6-99 Time/Memory Construct View . . . . . . . . . . . . . . . . . . . . . 6-100 Time/Memory Covergroup View. . . . . . . . . . . . . . . . . . . . 6-101 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-102 Reporting Debug Capabilities for Each Module . . . . . . . . . . . . . 6-103 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-103 HTML Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-104 Text Reports. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-107 xiii Feedback Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-107 Supporting Line-Based CPU Time Profiler . . . . . . . . . . . . . . . . . 6-108 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-108 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-110 Supporting Simulation Time Slice Based Profiler . . . . . . . . . . . . 6-110 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-111 Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-113 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-114 Isolating the Cost of Garbage Collection. . . . . . . . . . . . . . . . . . . 6-114 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-115 Isolating the Cost of Loading Design Database . . . . . . . . . . . . . 6-115 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-115 Support for Third-Party Shared Library Profiler Report . . . . . . . . 6-116 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-117 Enhancements to VHDL Unified Simulation Profiler Report . . . . 6-117 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-119 Enhancing the HSIM View With Simulation Profiler Report. . . . . 6-119 Benefits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-120 7. Diagnostics Using Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Using –diag Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Compile-time Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Libconfig Diagnostics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 xiv Feedback Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-4 Timescale Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-7 Generating Information on Unused Libraries at vlogan . . . . . 7-10 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-10 Generating Information on Unused Libraries at VCS. . . . . . . 7-12 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 Obtaining Statistics on Package Utilization . . . . . . . . . . . . . . 7-14 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-14 Runtime Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-16 Diagnostics for VPI/VHPI PLI Applications . . . . . . . . . . . . . . 7-16 Keeping the UCLI/Verdi Prompt Active After a Runtime Error 7-21 UCLI Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-21 Verdi Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-23 UCLI Usage Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-24 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-26 Diagnosing Quickthread Issues . . . . . . . . . . . . . . . . . . . . . . . 7-26 Diagnosing Quickthread Issues in DPI. . . . . . . . . . . . . . . 7-27 Diagnosing Quickthread Issues in SystemC . . . . . . . . . . 7-28 Post-Processing Diagnostics. . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 Using the vpdutil Utility to Generate Statistics . . . . . . . . . . . . 7-32 The vpdutil Utility Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 7-32 Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-33 Sparse Memory Diagnostics . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-34 Compile Time Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-35 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-37 xv Feedback Runtime Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-38 Sparse Disable Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-40 8. VPD, VCD, and EVCD Utilities Advantages of VPD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-2 Dumping a VPD File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Using System Tasks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 Enable and Disable Dumping. . . . . . . . . . . . . . . . . . . . . . 8-3 Override the VPD Filename . . . . . . . . . . . . . . . . . . . . . . . 8-7 Dump Multi-Dimensional Arrays and Memories . . . . . . . . 8-8 Using $vcdplusmemorydump System Task . . . . . . . . . . . 8-10 Capture Delta Cycle Information . . . . . . . . . . . . . . . . . . . 8-11 Dumping an EVCD File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-12 Using $dumpports System Task . . . . . . . . . . . . . . . . . . . . . . 8-12 Dumping EVCD File for Mixed Designs Using UCLI dump Command 8-13 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 Use Model for Dumping CCN Driver Through INOUT . . . 8-14 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-16 Post-processing Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-17 The vcdpost Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 Scalarizing the Vector Signals . . . . . . . . . . . . . . . . . . . . . 8-18 Uniquifying the Identifier Codes . . . . . . . . . . . . . . . . . . . . 8-19 The vcdpost Utility Syntax . . . . . . . . . . . . . . . . . . . . . . . . 8-20 The vcdiff Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-21 The vcdiff Utility Output Example . . . . . . . . . . . . . . . . . . . 8-29 xvi Feedback The vcat Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-31 The vcat Utility Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-32 Generating Source Files From VCD Files . . . . . . . . . . . . 8-36 Writing the Configuration File . . . . . . . . . . . . . . . . . . . . . . 8-37 The vcsplit Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-41 The vcsplit Utility Syntax . . . . . . . . . . . . . . . . . . . . . . . . . 8-42 The vcd2vpd Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-45 Options for Specifying EVCD Options . . . . . . . . . . . . . . . 8-47 The vpd2vcd Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-47 The Command File Syntax. . . . . . . . . . . . . . . . . . . . . . . . 8-53 The vpdmerge Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-56 The vpdutil Utility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-59 9. Performance Tuning Compile-time Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 Incremental Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 Compile Once and Run Many Times . . . . . . . . . . . . . . . . . . . 9-4 Parallel Compilation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-5 Improving VCS Compile Performance and Capacity. . . . . . . 9-5 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 Runtime Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-6 Using Radiant Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-7 Compiling With Radiant Technology. . . . . . . . . . . . . . . . . 9-8 Applying Radiant Technology to Parts of the Design . . . . 9-8 Improving Performance When Using PLIs. . . . . . . . . . . . . . . 9-17 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-18 Enabling TAB File Capabilities in UCLI Using -debug_access 9-21 xvii Feedback Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-21 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-22 Impact on Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-23 Obtaining VCS Consumption of CPU Resources . . . . . . . . . . . . 9-24 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-25 Compile Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-25 Simulation Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-26 Dumping Design Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-27 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-27 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-28 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-30 10. Using X-Propagation Introduction to X-Propagation . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-2 Guidelines for Running X-Propagation Simulations. . . . . . . . 10-4 Using the X-Propagation Simulator . . . . . . . . . . . . . . . . . . . . . . . 10-6 Specifying X-Propagation Merge Mode . . . . . . . . . . . . . . . . . 10-9 Querying X-Propagation at Runtime . . . . . . . . . . . . . . . . 10-14 X-Propagation Instrumentation Report. . . . . . . . . . . . . . . 10-15 Automatic Hardware Inference of Flip-Flops Enabled by Default 10-17 X-Propagation Configuration File. . . . . . . . . . . . . . . . . . . . . . 10-18 X-Propagation Configuration File Syntax . . . . . . . . . . . . . 10-20 Xprop Instrumentation Control. . . . . . . . . . . . . . . . . . . . . . . . 10-24 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-27 Process Based X-Propagation Exclusion . . . . . . . . . . . . . . . 10-28 xviii Feedback Support for XIndex Element Merging. . . . . . . . . . . . . . . . . . . 10-29 X-Index. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-31 Index BSpace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-31 Addressing Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-32 Merge Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-33 Index Selection Methods . . . . . . . . . . . . . . . . . . . . . . . . . 10-34 Disabling XIndex Merging for Read or Write Operations . 10-36 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-37 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-38 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-42 Bounds Checking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-42 Detecting Unknown Values in Type Conversion Functions . . 10-44 Time Zero Initialization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-45 Handling Non-pure Functions Due to Static Lifetime. . . . . . . 10-45 Supporting UCLI Commands for X-Propagation Control Tasks 10-47 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-47 UCLI Command to Specify the Merge Mode . . . . . . . . . . 10-47 UCLI Command to Control Error Messages or Warning Messages 10-48 VHDL Two-State Objects in X-Propagation. . . . . . . . . . . . . . . . . 10-50 Supported XValues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-50 Supported Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-51 Supported Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-51 Supported Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-57 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-58 X-Propagation Code Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 10-58 If Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-59 xix Feedback Verilog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-59 VHDL Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-61 Case Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-62 Verilog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-62 VHDL Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-64 Unique/Priority Case Variants . . . . . . . . . . . . . . . . . . . . . 10-66 Edge Sensitive Expression . . . . . . . . . . . . . . . . . . . . . . . . . . 10-67 Verilog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-67 VHDL Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-69 Latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-71 Verilog Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-71 VHDL Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-72 Support for Active Drivers in X-Propagation . . . . . . . . . . . . . . . . 10-73 Combinational Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-74 Latches. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-77 Flip-flops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-79 Key points to Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-81 Support for Ternary Operator. . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-82 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10-82 11. Gate-Level Simulation SDF Annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-2 Using the Unified SDF Feature . . . . . . . . . . . . . . . . . . . . . . . 11-3 Using the $sdf_annotate System Task. . . . . . . . . . . . . . . . . . 11-4 Using the -xlrm Option for SDF Retain, Gate Pulse Propagation, and Gate Pulse Detection Warning . . . . . . . . . . . . . . . . . . . . . 11-6 Using the Optimistic Mode in SDF . . . . . . . . . . . . . . . . . . 11-7 xx Feedback Using Gate Pulse Propagation. . . . . . . . . . . . . . . . . . . . . 11-8 Generating Warnings During Gate Pulses . . . . . . . . . . . . 11-9 Enhancing SDF Annotation to Support Nets Through SPICE 11-9 Precompiling an SDF File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-12 Creating the Precompiled Version of the SDF File. . . . . . 11-13 SDF Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-15 Delay Objects and Constructs . . . . . . . . . . . . . . . . . . . . . 11-15 SDF Configuration File Commands . . . . . . . . . . . . . . . . . 11-16 The INTERCONNECT_MIPD Command. . . . . . . . . . . . . 11-17 The MTM Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-18 The SCALE Commands. . . . . . . . . . . . . . . . . . . . . . . . . . 11-18 An SDF Example With Configuration File . . . . . . . . . . . . 11-20 Delays and Timing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-23 Transport and Inertial Delays. . . . . . . . . . . . . . . . . . . . . . . . . 11-23 The Inertial Delay Implementation . . . . . . . . . . . . . . . . . . 11-25 Enabling Transport Delays . . . . . . . . . . . . . . . . . . . . . . . . 11-26 Pulse Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-27 Pulse Control With Transport Delays. . . . . . . . . . . . . . . . . . . 11-29 Pulse Control With Inertial Delays . . . . . . . . . . . . . . . . . . 11-31 Specifying Pulse on Event or Detect Behavior. . . . . . . . . 11-35 Specifying the Delay Mode . . . . . . . . . . . . . . . . . . . . . . . . . . 11-40 Support for Delayed Annotation During Simultaneous Switching on Inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-42 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-42 Using the Configuration File to Disable Timing . . . . . . . . . . . . . . 11-43 Using the timopt Timing Optimizer . . . . . . . . . . . . . . . . . . . . . . . 11-44 xxi Feedback Editing the timopt.cfg File . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-46 Editing Potential Sequential Device Entries . . . . . . . . . . . 11-46 Editing Clock Signal Entries . . . . . . . . . . . . . . . . . . . . . . . 11-47 Using Scan Simulation Optimizer . . . . . . . . . . . . . . . . . . . . . . . 11-48 ScanOpt Configuration File Format . . . . . . . . . . . . . . . . . . . . 11-49 ScanOpt Assumptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-50 Improving the ScanOpt for Debug Support . . . . . . . . . . . . . . 11-51 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-51 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-52 Negative Timing Checks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-54 The Need for Negative Value Timing Checks . . . . . . . . . . . . 11-55 The $setuphold Timing Check Extended Syntax . . . . . . . 11-60 Negative Timing Checks for Asynchronous Controls . . . . 11-63 The $recrem Timing Check Syntax . . . . . . . . . . . . . . . . . 11-64 Enabling Negative Timing Checks . . . . . . . . . . . . . . . . . . . . . 11-66 Other Timing Checks Using the Delayed Signals . . . . . . . . . 11-67 Checking Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-71 Toggling the Notifier Register. . . . . . . . . . . . . . . . . . . . . . . . . 11-72 SDF Back-Annotation to Negative Timing Checks. . . . . . . . . 11-73 How VCS Calculates Delays . . . . . . . . . . . . . . . . . . . . . . . . . 11-74 Using VITAL Models and Netlists . . . . . . . . . . . . . . . . . . . . . . . . 11-76 Validating and Optimizing a VITAL Model . . . . . . . . . . . . . . . 11-77 Validating the Model for VITAL Conformance. . . . . . . . . . 11-77 Verifying the Model for Functionality . . . . . . . . . . . . . . . . 11-78 Optimizing the Model for Performance and Capacity. . . . 11-78 Re-Verifying the Model for Functionality. . . . . . . . . . . . . . 11-79 Understanding Error and Warning Messages . . . . . . . . . 11-80 xxii Feedback Distributing a VITAL Model. . . . . . . . . . . . . . . . . . . . . . . . 11-81 Simulating a VITAL Netlist . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-82 Applying Stimulus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-82 Overriding Generic Parameter Values . . . . . . . . . . . . . . . 11-82 Understanding VCS Error Messages . . . . . . . . . . . . . . . . 11-84 Viewing VITAL Subprograms . . . . . . . . . . . . . . . . . . . . . . 11-85 Timing Back-annotation . . . . . . . . . . . . . . . . . . . . . . . . . . 11-85 VCS Naming Styles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-85 Negative Constraints Calculation (NCC) . . . . . . . . . . . . . 11-86 Simulating in Functional Mode . . . . . . . . . . . . . . . . . . . . . 11-87 Understanding VITAL Timing Delays and Error Messages . . 11-88 Negative Constraint Calculation (NCC) . . . . . . . . . . . . . . 11-89 Conformance Checks. . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-89 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-91 Support for Identifying Non-Annotated Timing Arc and Timing Check Statements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-101 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11-102 12. Coverage Code Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-2 Functional Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 Options For Coverage Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . 12-3 13. Using OpenVera Native Testbench Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-3 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-4 Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-8 xxiii Feedback Importing VHDL Procedures . . . . . . . . . . . . . . . . . . . . . . 13-8 Exporting OpenVera Tasks. . . . . . . . . . . . . . . . . . . . . . . . 13-10 Using Template Generator . . . . . . . . . . . . . . . . . . . . . . . 13-11 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-12 Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-24 Multiple Program Support . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-24 Configuration File Model . . . . . . . . . . . . . . . . . . . . . . . . . 13-25 Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-25 Usage Model for Multiple Programs. . . . . . . . . . . . . . . . . 13-26 NTB Options and the Configuration File. . . . . . . . . . . . . . 13-28 Class Dependency Source File Reordering. . . . . . . . . . . . . . 13-29 Circular Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . 13-31 Dependency-based Ordering in Encrypted Files . . . . . . . 13-32 Using Encrypted Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-32 Functional Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-33 Using Reference Verification Methodology . . . . . . . . . . . . . . 13-33 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13-35 14. Using SystemVerilog Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-2 Using UVM With VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-3 Update on UVM-1.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Update on UVM-ieee . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-4 Natively Compiling and Elaborating UVM-1.1d . . . . . . . . . . . 14-4 Natively Compiling and Elaborating UVM-1.2 . . . . . . . . . . . . 14-5 Natively Compiling and Elaborating UVM-ieee . . . . . . . . . . . 14-6 Compiling the External UVM Library . . . . . . . . . . . . . . . . . . . 14-6 xxiv Feedback Using the -ntb_opts uvm Option. . . . . . . . . . . . . . . . . . . . 14-7 Explicitly Specifying UVM Files and Arguments. . . . . . . . 14-7 Accessing HDL Registers Through UVM Backdoor. . . . . . . . 14-8 Generating UVM Register Abstraction Layer Code . . . . . . . . 14-9 Recording UVM Transactions . . . . . . . . . . . . . . . . . . . . . . . . 14-10 Recording UVM Phases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-10 UVM Template Generator . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-12 Using Mixed VMM/UVM Libraries . . . . . . . . . . . . . . . . . . . . . 14-13 Migrating from OVM to UVM . . . . . . . . . . . . . . . . . . . . . . . . . 14-15 Where to Find UVM Examples. . . . . . . . . . . . . . . . . . . . . . . . 14-16 Where to Find UVM Documentation . . . . . . . . . . . . . . . . . . . 14-16 UVM-1.1d Documentation . . . . . . . . . . . . . . . . . . . . . . . . 14-16 UVM-VMM Interop Documentation . . . . . . . . . . . . . . . . . 14-16 Using VMM with VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-17 Using OVM with VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-18 Native Compilation and Elaboration of OVM 2.1.2 . . . . . . . . 14-18 Compiling the External OVM Library . . . . . . . . . . . . . . . . . . . 14-20 Using the -ntb_opts ovm Option. . . . . . . . . . . . . . . . . . . . 14-20 Explicitly Specifying OVM Files and Arguments. . . . . . . . 14-20 Recording OVM Transactions . . . . . . . . . . . . . . . . . . . . . . . . 14-21 Debugging SystemVerilog Designs . . . . . . . . . . . . . . . . . . . . . . . 14-23 Functional Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-24 SystemVerilog Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-24 Extern Task and Function Calls through Virtual Interfaces . . 14-26 Modport Expressions in an Interface . . . . . . . . . . . . . . . . . . . 14-29 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-31 xxv Feedback Interface Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-31 Difference Between Extends and Implements . . . . . . . . . 14-34 Cast and Interface Class . . . . . . . . . . . . . . . . . . . . . . . . . 14-37 Name Conflicts and Resolution . . . . . . . . . . . . . . . . . . . . 14-38 Interface Class and Randomization . . . . . . . . . . . . . . . . . 14-42 Package Exports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-43 Severity System Tasks as Procedural Statements . . . . . . . . 14-44 Width Casting Using Parameters. . . . . . . . . . . . . . . . . . . . . . 14-45 The std::randomize() Function. . . . . . . . . . . . . . . . . . . . . . . . 14-48 SystemVerilog Bounded Queues. . . . . . . . . . . . . . . . . . . . . . 14-51 wait() Statement with a Static Class Member Variable . . . . . 14-52 Support for Consistent Behavior of Class Static Properties. . 14-53 Parameters and Local Parameters in Classes. . . . . . . . . . . . 14-54 SystemVerilog Math Functions . . . . . . . . . . . . . . . . . . . . . . . 14-55 Streaming Operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-56 Packing (Used on RHS) . . . . . . . . . . . . . . . . . . . . . . . . . . 14-56 Unpacking (Used on LHS) . . . . . . . . . . . . . . . . . . . . . . . . 14-57 Packing and Unpacking . . . . . . . . . . . . . . . . . . . . . . . . . . 14-57 Propagation and force Statement. . . . . . . . . . . . . . . . . . . 14-57 Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-57 Structures with Streaming Operators . . . . . . . . . . . . . . . . 14-58 Support for with Expression . . . . . . . . . . . . . . . . . . . . . . . 14-58 Constant Functions in Generate Blocks. . . . . . . . . . . . . . . . . 14-61 Support for Aggregate Methods in Constraints Using the “with” Construct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-63 Debugging During Initialization SystemVerilog Static Functions and Tasks in Module Definitions . . . . . . . . . . . . . . . . . . . . . . . 14-64 Explicit External Constraint Blocks . . . . . . . . . . . . . . . . . . . . 14-68 xxvi Feedback Generate Constructs in Program Blocks . . . . . . . . . . . . . . . . 14-71 Error Condition for Using a Genvar Variable Outside of its Generate Block. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-73 Randomizing Unpacked Structs. . . . . . . . . . . . . . . . . . . . . . . 14-74 Using the Scope Randomize Method std::randomize() . . 14-74 Using the Class Randomize Method randomize() . 14-78 Disabling and Re-enabling Randomization . . . . . . . . . . . 14-80 Using In-Line Random Variable Control . . . . . . . . . . . . . . 14-84 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-88 Using a Package in a SystemVerilog Module, Program, and Interface Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-89 Disabling DPI Tasks and Functions . . . . . . . . . . . . . . . . . . . . 14-91 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-92 Support for Overriding Parameter Values through Configuration 14-92 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-92 Precedence Override Rules. . . . . . . . . . . . . . . . . . . . . . . . . . 14-93 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-94 Support for Inclusion of Dynamic Types in Sensitivity List. . . 14-94 Support for Assignment Pattern Expression in Non-Assignment Like Context. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-96 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-96 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-97 User-Defined Nettypes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-98 The Resolution Function . . . . . . . . . . . . . . . . . . . . . . . . . 14-98 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-99 Example of User-Defined Nettype . . . . . . . . . . . . . . . . . . 14-99 Example of User-Defined Nettype in Arrays. . . . . . . . . . . 14-100 xxvii Feedback Example of Nettype MDAs of Type Real . . . . . . . . . . . . . 14-102 Example of Nettype MDAs of Type Unpacked Struct. . . . 14-102 Support for Connecting Nettypes through Tranif Gates . . 14-103 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-104 Generic Interconnect Nets . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-104 Converting Wire Nets and Logic Variables to Interconnect Nets 14-105 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-105 Support for Associative Array With Unpacked Structure as Key 14-106 Specifying a SystemVerilog Keyword Set by LRM Version at Command Line. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-107 The -sv Compile-Time Option . . . . . . . . . . . . . . . . . . . . . 14-108 The `begin_keywords and `end_keywords Compiler Directives 14-109 Support for .triggered Property with Clocking Block Name . . 14-110 Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-111 Support for Intra Assignment Delay With Non-Blocking Assignments in Program Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-112 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-112 Extensions to SystemVerilog. . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-112 Unique/Priority Case/IF Final Semantic Enhancements (-xlrm uniq_prior_final Compile-Time Option). . . . . . . . . . . . . . . 14-113 Using Unique/Priority Case/If with Always Block or Continuous Assign. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-114 Using Unique/Priority Inside a Function . . . . . . . . . . . . . . 14-117 System Tasks to Control Warning Messages. . . . . . . . . . 14-120 Controlling Runtime Warning Messages Generated Using Unique/ Priority If Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . 14-121 xxviii Feedback Support for Unique0 in Conditional Statements . . . . . . . . 14-123 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-124 Enhancements to the -xlrm uniq_prior_final Compile-Time Option 14-125 Single-Sized Packed Dimension Extension. . . . . . . . . . . . . . 14-131 Covariant Virtual Function Return Types . . . . . . . . . . . . . . . . 14-133 Self Instance of a Virtual Interface. . . . . . . . . . . . . . . . . . . . . 14-135 UVM Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-137 Support for Shuffle Method for MultiDimensional Arrays . . . . 14-138 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-138 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-138 Enhanced Clocking Block Behavior When Skew is negedge/posedge 14-141 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14-141 Support for Slice of String Variable . . . . . . . . . . . . . . . . . . . . 14-143 15.Aspect Oriented Extensions Aspect-Oriented Extensions in SystemVerilog. . . . . . . . . . . . 15-3 Processing of Aspect-Oriented Extensions as a Precompilation Expansion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-5 Weaving Advice Into the Target Method. . . . . . . . . . . . . . 15-10 Precompilation Expansion Details . . . . . . . . . . . . . . . . . . . . . 15-15 Precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15-16 16. Using Constraints Support for Array Slice in Unique Constraints . . . . . . . . . . . . . . . 16-2 Support for Object Handle Comparison in Constraint Guards . . 16-4 xxix Feedback Support for Pure Constraint Block. . . . . . . . . . . . . . . . . . . . . . . . 16-8 Support for SystemVerilog Bit Vector Functions in Constraints. . 16-14 $countones Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-16 $onehot Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-17 $onehot0 Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-18 $countbits Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-20 $bits Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-21 Inconsistent Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-23 Constraint Debug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-25 Partition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-26 Randomize Serial Number. . . . . . . . . . . . . . . . . . . . . . . . . . . 16-28 Solver Trace. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-29 Constraint Profiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-34 Test Case Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-35 Using multiple ntb_solver_debug arguments . . . . . . . . . . . 16-37 Summary for the ntb_solver_debug Option . . . . . . . . . . . . . 16-37 ntb_solver_debug=serial . . . . . . . . 16-37 ntb_solver_debug=trace . . . . . . . . . 16-37 ntb_solver_debug=profile . . . . . . . . 16-38 ntb_solver_debug=extract . . . . . . . . 16-38 ntb_solver_debug=verbose . . . . . . . . 16-38 Support for Save and Restore Stimulus. . . . . . . . . . . . . . . . . 16-39 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-39 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-40 Constraint Guard Error Suppression . . . . . . . . . . . . . . . . . . . . . . 16-40 Error Message Suppression Limitations . . . . . . . . . . . . . . . . 16-42 xxx Feedback Flattening Nested Guard Expressions . . . . . . . . . . . . . . . 16-42 Pushing Guard Expressions into Foreach Loops. . . . . . . 16-43 Support for Array and Cross-Module References in std::randomize() 16-44 Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-46 Support for Cross-Module References in Constraints. . . . . . . . . 16-46 XMR Function Calls in Constraints . . . . . . . . . . . . . . . . . . . . 16-48 State Variable Index in Constraints . . . . . . . . . . . . . . . . . . . . . . . 16-49 Runtime Check for State Versus Random Variables . . . . . . . 16-49 Array Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-50 Using DPI Function Calls in Constraints . . . . . . . . . . . . . . . . . . . 16-50 Invoking Non-pure DPI Functions from Constraints. . . . . . . . 16-51 Using Foreach Loops Over Packed Dimensions in Constraints . 16-55 Memories with Packed Dimensions. . . . . . . . . . . . . . . . . . . . 16-55 Single Packed Dimension . . . . . . . . . . . . . . . . . . . . . . . . 16-55 Multiple Packed Dimensions . . . . . . . . . . . . . . . . . . . . . . 16-56 MDAs with Packed Dimensions. . . . . . . . . . . . . . . . . . . . . . . 16-56 Single Packed Dimension . . . . . . . . . . . . . . . . . . . . . . . . 16-56 Multiple Packed Dimensions . . . . . . . . . . . . . . . . . . . . . . 16-56 Just Packed Dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 16-57 The foreach Iterative Constraint for Packed Arrays . . . . . . . . 16-58 Randomized Objects in a Structure. . . . . . . . . . . . . . . . . . . . . . . 16-59 Support for Typecast in Constraints . . . . . . . . . . . . . . . . . . . . . . 16-61 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-61 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-61 xxxi Feedback Strings in Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-64 SystemVerilog LRM 1800™-2012 Update . . . . . . . . . . . . . . . . . 16-65 Using Soft Constraints in SystemVerilog . . . . . . . . . . . . . . . . 16-65 Using Soft Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-66 Soft Constraint Prioritization. . . . . . . . . . . . . . . . . . . . . . . 16-67 Soft Constraints Defined in Classes Instantiated as rand Members in Another Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-68 Soft Constraints Inheritance Between Classes . . . . . . . . 16-70 Soft Constraints in AOP Extensions to a Class . . . . . . . . 16-71 Soft Constraints in View Constraints Blocks . . . . . . . . . . 16-74 Discarding Lower-Priority Soft Constraints. . . . . . . . . . . . 16-78 Unique Constraints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-80 Enhancement to the Randomization of Multidimensional Array Functionality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-82 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-84 Supporting Random Array Index . . . . . . . . . . . . . . . . . . . . . . . . . 16-84 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-85 Supporting System Function Calls . . . . . . . . . . . . . . . . . . . . . . . 16-85 $size() System Function Call . . . . . . . . . . . . . . . . . . . . . . . . . 16-86 $clog2() System Function Call. . . . . . . . . . . . . . . . . . . . . . . . 16-87 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-87 Supporting Foreach Loop Iteration over Array Select . . . . . . . . . 16-88 Support for Enumerated Type Methods in a Constraint Expression 16-89 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-89 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16-90 xxxii Feedback 17.Extensions for SystemVerilog Coverage Support for Reference Arguments in get_coverage() and get_inst_coverage() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-1 get_coverage() method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17-2 get_inst_coverage() method . . . . . . . . . . . . . . . . . . . . . . . . . 17-3 18. OpenVera-SystemVerilog Testbench Interoperability Scope of Interoperability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-2 Importing OpenVera Types Into SystemVerilog. . . . . . . . . . . . . . 18-3 Data Type Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-6 Mailboxes and Semaphores . . . . . . . . . . . . . . . . . . . . . . . . . 18-7 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-9 Enumerated Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-10 Integers and Bit-Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-12 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-13 Structs and Unions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-15 Connecting to the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-15 Mapping Modports to Virtual Ports. . . . . . . . . . . . . . . . . . . . . 18-15 Virtual Modports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-16 Importing Clocking Block Members Into a Modport . . . . . 18-16 Semantic Issues With Samples, Drives, and Expects . . . . . . 18-22 Notes to Remember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-22 Blocking Functions in OpenVera . . . . . . . . . . . . . . . . . . . 18-22 Constraints and Randomization . . . . . . . . . . . . . . . . . . . 18-23 Functional Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-23 xxxiii Feedback Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-25 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18-26 19. Using SystemVerilog Assertions Using SVAs in the HDL Design . . . . . . . . . . . . . . . . . . . . . . . . . . 19-3 Using VCS Checker Library. . . . . . . . . . . . . . . . . . . . . . . . . . 19-3 Instantiating SVA Checkers in Verilog . . . . . . . . . . . . . . . 19-3 Instantiating SVA Checkers in VHDL . . . . . . . . . . . . . . . . 19-5 Binding SVA to a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-7 Inlining SVAs in the Verilog Design . . . . . . . . . . . . . . . . . . . . 19-8 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-9 Inlining SVA in the VHDL design . . . . . . . . . . . . . . . . . . . . . . 19-10 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-11 Number of SystemVerilog Assertions Supported in a Module 19-13 Controlling SystemVerilog Assertions . . . . . . . . . . . . . . . . . . . . . 19-13 Compilation/Elaboration and Runtime Options . . . . . . . . . . . 19-13 Concatenating Assertion Options . . . . . . . . . . . . . . . . . . . . . 19-17 Assertion Monitoring System Tasks. . . . . . . . . . . . . . . . . . . . 19-17 Using Assertion Categories . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21 Using System Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-21 Using Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-22 Starting and Stopping Assertions Using Assertion System Tasks 19-24 Viewing Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-29 Using a Report File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-30 Enhanced Reporting for SystemVerilog Assertions in Functions 19-30 xxxiv Feedback Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-31 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-32 Name Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-33 Checker and Generate Blocks. . . . . . . . . . . . . . . . . . . . . . . . 19-33 Controlling Assertion Failure Messages . . . . . . . . . . . . . . . . . . . 19-33 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-34 Options for Controlling Default Assertion Failure Messages . 19-34 Options to Control Termination of Simulation. . . . . . . . . . . . . 19-36 Option to Enable Compilation of OVA Case Pragmas . . . . . . 19-39 Reporting Values of Variables in the Assertion Failure Messages 19-40 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-41 Reporting Messages When $uniq_prior_checkon/$uniq_prior_checkoff System Tasks are Called . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-42 Assertion and Unique/Priority Re-Trigger Feature . . . . . . . . . . . 19-44 Flushing Off the Assertion Re-Trigger Feature . . . . . . . . . . . 19-46 Enabling Lint Messages for Assertions . . . . . . . . . . . . . . . . . . . . 19-47 Fail-Only Assertion Evaluation Mode . . . . . . . . . . . . . . . . . . . . . 19-50 Key Points to Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-51 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-53 Treating x as true on an Assertion Precondition . . . . . . . . . . . . . 19-54 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-55 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-55 Using SystemVerilog Constructs Inside vunits . . . . . . . . . . . . . . 19-56 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-57 xxxv Feedback Calling $error Task When Else Block is Not Present. . . . . . . . . . 19-58 Disabling Default Assertion Success Dumping in -debug_access Option 19-59 Support for Success Count With -assert summary Option by Default 19-60 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-60 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-60 Disabling Success Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-62 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-62 List of supported IEEE Std. 1800-2012 Compliant SVA Features 19-63 Support for $countbits System Function . . . . . . . . . . . . . . . . 19-66 Support for Real Data Type Variables . . . . . . . . . . . . . . . . . . 19-67 Support for $assertcontrol Assertion Control System Task . . 19-67 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-68 Enabling IEEE Std. 1800-2012 Compliant Features . . . . . . . 19-68 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19-68 SystemVerilog Assertions Limitations . . . . . . . . . . . . . . . . . . . . . 19-69 Debug Support for New Constructs . . . . . . . . . . . . . . . . . 19-69 Note on Cross Features . . . . . . . . . . . . . . . . . . . . . . . . . . 19-69 20. Using Property Specification Language Including PSL in the Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-1 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-2 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-3 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-4 Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-5 xxxvi Feedback PSL Assertions Inside VHDL Block Statements in Vunit . . . . . . . 20-6 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-6 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-7 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-8 PSL Macro Support in VHDL. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Using the %for Construct. . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-9 Using the %if Construct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-12 Using Expressions with %if and %for Constructs . . . . . . . . . 20-13 PSL Macro Support Limitations . . . . . . . . . . . . . . . . . . . . . . . 20-14 Using SVA Options, SVA System Tasks, and OV Classes . . . . . 20-15 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20-16 21. Using SystemC 22. C Language Interface Using PLI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-2 Writing a PLI Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-3 Functions in a PLI Application . . . . . . . . . . . . . . . . . . . . . . . . 22-4 Header Files for PLI Applications. . . . . . . . . . . . . . . . . . . . . . 22-5 PLI Table File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-6 Using the PLI Table File . . . . . . . . . . . . . . . . . . . . . . . . . . 22-23 Enabling ACC Capabilities. . . . . . . . . . . . . . . . . . . . . . . . . . . 22-24 Enabling ACC Capabilities Globally . . . . . . . . . . . . . . . . . 22-24 Using the Configuration File. . . . . . . . . . . . . . . . . . . . . . . 22-25 Selected ACC Capabilities . . . . . . . . . . . . . . . . . . . . . . . . 22-28 xxxvii Feedback Using VPI Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-33 Support for VPI Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-34 Support for the vpi_register_systf Routine. . . . . . . . . . . . . . . 22-35 Integrating a VPI Application With VCS . . . . . . . . . . . . . . . . . 22-36 PLI Table File for VPI Routines . . . . . . . . . . . . . . . . . . . . . . . 22-37 Virtual Interface Debug Support. . . . . . . . . . . . . . . . . . . . . . . 22-38 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-38 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-41 Unimplemented VPI Routines . . . . . . . . . . . . . . . . . . . . . . . . 22-41 Modified VPI Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-43 Using VHPI Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-46 Diagnostics for VPI/VHPI PLI Applications . . . . . . . . . . . . . . . . . 22-47 Using DirectC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-47 Using Direct C/C Function Calls . . . . . . . . . . . . . . . . . . . . 22-49 Functioning of C/C Code in a Verilog Environment . . . 22-51 Declaring the C/C Function . . . . . . . . . . . . . . . . . . . . . 22-52 Calling the C/C Function . . . . . . . . . . . . . . . . . . . . . . . 22-58 Storing Vector Values in Machine Memory. . . . . . . . . . . . 22-60 Converting Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-62 Avoiding a Naming Problem. . . . . . . . . . . . . . . . . . . . . . . 22-65 Using Pass by Reference. . . . . . . . . . . . . . . . . . . . . . . . . 22-66 Using Direct Access. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-67 Using the vc_hdrs.h File. . . . . . . . . . . . . . . . . . . . . . . . . . 22-74 Access Routines for Multi-Dimensional Arrays. . . . . . . . . 22-75 Using Abstract Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-76 Using vc_handle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-77 Using Access Routines. . . . . . . . . . . . . . . . . . . . . . . . . . . 22-78 xxxviii Feedback Summary of Access Routines . . . . . . . . . . . . . . . . . . . . . 22-122 Enabling C/C Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 22-127 Mixing Direct And Abstract Access. . . . . . . . . . . . . . . . . . 22-129 Specifying the DirectC.h File . . . . . . . . . . . . . . . . . . . . . . 22-129 Extended BNF for External Function Declarations . . . . . . . . 22-130 Using DPI Open Array . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-131 Using Multi-Dimensional Array as an Actual Argument for DPI Function 22-131 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22-133 23.Support for VHDL 2002 and 2008 VHDL 2002 Protected Type. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 Limitations of VHDL 2002 Protected Type . . . . . . . . . . . . . . . 23-2 VHDL 2008 Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-2 Array Types and Operators . . . . . . . . . . . . . . . . . . . . . . . . . . 23-4 Adding Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-5 Use Clause and Aliases. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-6 Support for Bit String Literals. . . . . . . . . . . . . . . . . . . . . . . . . 23-7 Support for TO_STRING Conversion . . . . . . . . . . . . . . . . . . 23-10 Support for External Names. . . . . . . . . . . . . . . . . . . . . . . . . . 23-12 Specifying The all Keyword in the Process Sensitivity List . . 23-13 Support for Logical Unary Reduction Operator . . . . . . . . . . . 23-14 Support for Matching Relational Operators for Bit and std_ulogic 23-15 Including Non-Static Expressions in Port Map. . . . . . . . . . . . 23-16 xxxix Feedback Standard Environment Package . . . . . . . . . . . . . . . . . . . . . . 23-18 Package Declaration and Instantiations. . . . . . . . . . . . . . . . . 23-18 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-22 Referencing Interface Lists . . . . . . . . . . . . . . . . . . . . . . . . . . 23-22 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-24 Overriding the Value Assigned to a Signal. . . . . . . . . . . . . . . 23-27 Forcing and Releasing Values of Signals. . . . . . . . . . . . . 23-28 Forcing and Releasing Ports of a Design. . . . . . . . . . . . . 23-29 Assigning Composite Value to a Collection of Signals . . . 23-31 Forcing and Releasing Assignment Written in a Subprogram 23-32 Forcing and Releasing Multiple Concurrent Assignments 23-32 Debugging the Force and Release Assignments . . . . . . . 23-32 Matching Case Statements . . . . . . . . . . . . . . . . . . . . . . . . . . 23-33 Conditional Elaboration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-36 Condition Operator in an Expression. . . . . . . . . . . . . . . . . . . 23-43 Reading Output Port . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-47 2008 IEEE Packages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-49 Overview of Additional IEEE Packages . . . . . . . . . . . . . . 23-49 Resolved Elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-56 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-57 Conditional and Selected Assignments . . . . . . . . . . . . . . . . . 23-61 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-63 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-63 Context Declaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-67 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-68 Improved I/O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-70 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-71 xl Feedback Support for Implicitly Constrained Array Elements. . . . . . . . . 23-74 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-75 Support for Unconstrained Element Types . . . . . . . . . . . . . . 23-76 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-78 Support for Enhanced Generics in Entity Interfaces . . . . . . . 23-83 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-83 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-90 Support for Slices in Array Aggregates . . . . . . . . . . . . . . . . . 23-90 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-91 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-95 Support for Type Conversion in VHDL 2008 . . . . . . . . . . . . . 23-95 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-96 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-98 Support for Case Expression Subtype. . . . . . . . . . . . . . . . . . 23-98 Example for Case Expression . . . . . . . . . . . . . . . . . . . . . 23-98 Support for Subtypes of Ports and Parameters . . . . . . . . . . . 23-103 Example for Subtypes of Ports and Parameters . . . . . . . 23-103 Support for Static Composite Expressions . . . . . . . . . . . . . . 23-104 Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23-105 24.SAIF Support Using SAIF Files with VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-2 SAIF System Tasks for Verilog or Verilog-Top Designs. . . . . . . . 24-2 The Flows to Generate a Backward SAIF File . . . . . . . . . . . . . . 24-6 Generating an SDPD Backward SAIF File. . . . . . . . . . . . . . . 24-6 Generating a Non-SPDP Backward SAIF File. . . . . . . . . . . . 24-7 SAIF Calls That Can Be Used on VHDL or VHDL-Top Designs . 24-8 xli Feedback SAIF Support for Two-Dimensional Memories in v2k Designs . . 24-9 UCLI SAIF Dumping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-10 Criteria for Choosing Signals for SAIF Dumping . . . . . . . . . . . . . 24-10 Improving Simulation Time by Reducing the Overhead due to SAIF File Dumping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-11 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-12 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24-13 25.Encrypting Source Files IEEE Verilog Standard 1364-2005 Encryption . . . . . . . . . . . . . . 25-2 The Protection Header File . . . . . . . . . . . . . . . . . . . . . . . . . . 25-3 Unsupported Protection Pragma Expressions . . . . . . . . . 25-6 Other Options for IEEE Std 1364-2005 Encryption Mode . . . 25-6 How Protection Envelopes Work . . . . . . . . . . . . . . . . . . . . . . 25-9 VCS Public Encryption Key . . . . . . . . . . . . . . . . . . . . . . . . . . 25-10 Creating Interoperable Digital Envelopes Using VCS - Example 25-11 Discontinued -ipkey Option . . . . . . . . . . . . . . . . . . . . . . . . . . 25-15 IEEE VHDL Standard 1076-2008 Encryption . . . . . . . . . . . . . . . 25-15 VHDL 1076-2008 Encryption Use Model . . . . . . . . . . . . . . . . 25-16 Encrypting the Entire VHDL Source Files . . . . . . . . . . . . 25-17 Encrypting the Parts of VHDL Source Files . . . . . . . . . . . 25-17 Using the Protection Header File . . . . . . . . . . . . . . . . . . . 25-18 Options for VHDL 1076-2008 Encryption Mode . . . . . . . . 25-20 Protection Envelopes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-21 xlii Feedback The VCS Public Encryption Key . . . . . . . . . . . . . . . . . . . . . . 25-22 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-23 Example for Full Encryption . . . . . . . . . . . . . . . . . . . . . . . 25-23 Example for Partial Encryption. . . . . . . . . . . . . . . . . . . . . 25-25 Debug Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-26 Combining Encrypted and Unencrypted Code. . . . . . . . . 25-27 Assertion and Report Statements . . . . . . . . . . . . . . . . . . 25-29 Hierarchy Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29 Profiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29 VHPI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-29 VPD / VCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-30 Coverage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-30 Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-30 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-30 128-bit Advanced Encryption Standard . . . . . . . . . . . . . . . . . . . . 25-32 Compiler Directives for Source Protection. . . . . . . . . . . . . . . 25-32 Using Compiler Directives or Pragmas . . . . . . . . . . . . . . . . . 25-33 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-34 Automatic Protection Options . . . . . . . . . . . . . . . . . . . . . . . . 25-37 Using Automatic Protection Options . . . . . . . . . . . . . . . . . . . 25-40 Protecting ‘include File Directive . . . . . . . . . . . . . . . . . . . . . . 25-48 autoincludeprotect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-48 Enabling Debug Access to Ports and Instance Hierarchy . . . 25-49 autobodyprotect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-49 Debugging Partially Encrypted Source Code. . . . . . . . . . . . . 25-49 Skipping Encrypted Source Code . . . . . . . . . . . . . . . . . . . . . . . . 25-50 gen_vcs_ip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-51 xliii Feedback Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-53 Analysis Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-53 Exporting The IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-55 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-55 IP Vendor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-55 IP Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-55 IP User . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-56 Licensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25-56 26.VCS Fine-Grained Parallelism Technology Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-58 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-61 Profiling to Detect Design Suitability for Parallelism . . . . . . . . . . 26-66 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26-68 27. Integrating VC Formal With Coverage and Planner Introduction to VC Formal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-2 VC Formal Coverage With Verdi Coverage and Planner . . . . . . 27-3 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27-3 Collecting VC Formal Results in the Coverage Database 27-3 Measuring VC Formal Assert Status in HVP . . . . . . . . . . 27-7 28. Integrating VCS With Certitude Introduction to Certitude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-1 VCS and Certitude Integration . . . . . . . . . . . . . . . . . . . . . . . . . . 28-2 xliv Feedback Loading Designs Automatically in Verdi with Native Certitude . . 28-4 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-4 Points to Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-5 Dumping and Comparing Waveforms in Verdi for SystemC Designs 28-5 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-6 Point to Note . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-7 Reducing Compilation Time in Native Certitude With VCS Partition Compile Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-8 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-8 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-9 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28-11 29. Integrating VCS with Vera Setting Up Vera and VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-2 Using Vera with VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-3 Usage Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-4 Two-Step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-4 Three-Step Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29-4 30.VCS Mixed-Signal Simulation Introduction to VCS and CustomSim. . . . . . . . . . . . . . . . . . . . . . 30-2 Analyzing a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-3 Elaborating a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-3 Running the Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-4 Setting up the Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-4 Licenses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-4 xlv Feedback Required UNIX Paths and Variable Settings . . . . . . . . . . 30-4 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-5 Example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-6 Scheduling Analog-to-Digital Events in the NBA Region. . . . . . . 30-7 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-8 Support of Verilog Force and Release Assignments on Wreal Nets 30-8 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-9 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-10 Support for Wreal Nets in Verilog-AMS Flow. . . . . . . . . . . . . . . . 30-11 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-11 Support for SystemC Designs in Verilog-AMS . . . . . . . . . . . . . . 30-13 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-13 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-13 Support for Wildcard Character and the -exclude Option in the Mixed Signal Control Command. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-18 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-18 Usage Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-19 Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30-19 31. Integrating VCS with Specman Type Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31-2 Usage Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31-4 Setting Up The Environment . . . . . . . . . . . . . . . . . . . . . . . . . 31-4 Specman e code accessing VHDL only. . . . . . . . . . . . . . . . . 31-5 Specman e Code Accessing Verilog Only . . . . . . . . . . . . . . . 31-7 xlvi Feedback Specman e code accessing both VHDL and Verilog . . . . . . . 31-9 Guidelines for Specifying HDL Path or Tick Access with VCSSpecman Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31-12 Using specrun and specview. . . . . . . . . . . . . . . . . . . . . . . . . . . . 31-13 Version Checker for Specman. . . . . . . . . . . . . . . . . . . . . . . . . . . 31-14 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31-15 32. Integrating VCS with Denali Setting Up Denali Environment for VCS . . . . . . . . . . . . . . . . . . . 32-1 Integrating Denali with VCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32-2 Use Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32-2 Use Model for VHDL Memory Models . . . . . . . . . . . . . . . . . . 32-3 Use Model for Verilog Memory Models . . . . . . . . . . . . . . . . . 32-4 Two-Step Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32-4 Three-Step Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32-5 Execute Denali Commands at UCLI Prompt . . . . . . . . . . . . . 32-5 33. Integrating VCS with Native Low Power (NLP) 34. Unified UVM Library for VCS and Verdi Transaction/Message Recording in Verdi with VCS . . . . . . . . . . 34-4 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34-4 Enabling FSDB Transaction Recording . . . . . . . . . . . . . . 34-4 Simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34-5 Dumping Transactions or Messages in Verdi Flow . . . . . 34-5 xlvii
标签: User Guide GUIDE User IDE GUI
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论