在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → VCS user guide.pdf(共2000多页)

VCS user guide.pdf(共2000多页)

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:13.44M
  • 下载次数:36
  • 浏览次数:1925
  • 发布时间:2021-03-04
  • 实例类别:一般编程问题
  • 发 布 人:gonghiker
  • 文件格式:.pdf
  • 所需积分:2
 相关标签: User Guide GUIDE User IDE GUI

实例介绍

【实例简介】VCS 用户手册, 2020-03
【实例截图】

【核心代码】

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

实例下载地址

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警