VSVN
VSVN
Cadence Design Systems, Inc. (Cadence), 2655 Seely Ave., San Jose, CA 95134, USA.
Open SystemC, Open SystemC Initiative, OSCI, SystemC, and SystemC Initiative are trademarks or registered
trademarks of Open SystemC Initiative, Inc. in the United States and other countries and are used with permission.
Trademarks: Trademarks and service marks of Cadence Design Systems, Inc. (Cadence) contained in this document
are attributed to Cadence with the appropriate symbol. For queries regarding Cadence's trademarks, contact the
corporate legal department at the address shown above or call 800.862.4522.
Restricted Permission: This publication is protected by copyright law and international treaties and contains trade
secrets and proprietary information owned by Cadence. Unauthorized reproduction or distribution of this publication, or
any portion of it, may result in civil and criminal penalties. Except as specified in this permission statement, this
publication may not be copied, reproduced, modified, published, uploaded, posted, transmitted, or distributed in any way,
without prior written permission from Cadence. Unless otherwise agreed to by Cadence in writing, this statement grants
Cadence customers permission to print one (1) hard copy of this publication subject to the following conditions:
1. The publication may be used only in accordance with a written agreement between Cadence and its customer.
2. The publication may not be modified in any way.
3. Any authorized copy of the publication or portion thereof must include all original copyright, trademark, and other
proprietary notices and this permission statement.
4. The information contained in this document cannot be used in the development of like products or software,
whether for internal or external use, and shall not be used for the benefit of any other party, whether or not for
consideration.
Disclaimer: Information in this publication is subject to change without notice and does not represent a commitment on
the part of Cadence. Except as may be explicitly set forth in such agreement, Cadence does not make, and expressly
disclaims, any representations or warranties as to the completeness, accuracy or usefulness of the information
contained in this document. Cadence does not warrant that use of such information will not infringe any third party rights,
nor does Cadence assume any liability for damages or costs of any kind that may result from use of such information.
Cadence is committed to using respectful language in our code and communications. We are also active in the removal
and replacement of inappropriate language from existing content. This product documentation may however contain
material that is no longer considered appropriate but still reflects long-standing industry terminology. Such content will be
addressed at a time when the related software can be updated without end-user impact.
Restricted Rights: Use, duplication, or disclosure by the Government is subject to restrictions as set forth in
FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.
Virtuoso SystemVerilog Netlister User Guide
Table of Contents
Contents
1 6
Introduction to Virtuoso SystemVerilog Netlister 6
Licensing Requirements 6
Benefits of SystemVerilog Netlister 7
Benefits of SystemVerilog Netlister over NC Verilog Netlister 10
Prerequisites for Using SystemVerilog Netlister 11
Launching SystemVerilog Netlister 12
SystemVerilog Netlister Batch Mode 14
SystemVerilog Config Views 15
Migrating SystemVerilog Integration Designs to SystemVerilog Designs 16
Exporting SystemVerilog Netlister Settings as Environment Variables 17
2 18
Netlist Generation 18
Netlist Generation Flow in SystemVerilog Netlister 18
Specifying a Design for Netlist Generation 20
Configuring Netlist Generation Options 21
Configuring Design Variables 23
Generating and Regenerating a Netlist 24
Viewing a Netlist 25
State Management 26
ATPG Compatible Verilog Netlists 27
Generating ATPG Compatible Verilog Netlists 28
Importing a SystemVerilog Package File 29
Specifying Additional xrun Arguments in SystemVerilog Netlister 31
DataType Propagation 32
Netlist Customization Using the .simrc File 37
3 41
SystemVerilog Netlister Forms 41
Additional Arguments Form 41
Editing Design Variables Form 42
Export Environment Variables Form 42
Load State Form 43
printDirectivesForVerilog2001 78
printParamForTextInst 79
netlistNoWarn 80
genUniqCellNameIfConflict 81
5 82
SKILL Functions and Flags 82
asiDigitalSimAutoloadProc 82
SKILL Flags 83
6 85
Batch Mode Options in SystemVerilog Netlister 85
runsv 85
cdsCreateConfig 89
si2runsv 90
1
Introduction to Virtuoso SystemVerilog
Netlister
Digital system verification uses the SystemVerilog language extensively, and this has introduced
the Digital-Mixed-Signal (DMS) use model. The DMS use model allows discrete models to
represent analog circuits. SystemVerilog allows you to use user-defined type and resolution
functions, which make the net obsolete as a scalar object.
These use-model changes require a netlister that supports modern constructs, imports data from a
design database, and produces a simulator-compatible netlist. A netlister that has these capabilities
can traverse the design hierarchy to build the complete structure of a netlist. In such cases, the
hierarchy can be a schematic view and a text view, or only a text view.
Virtuoso® SystemVerilog Netlister is a utility that helps you generate netlists of digital
SystemVerilog designs. This utility imports configuration views of digital designs for netlist
generation, directly parses and accesses SystemVerilog and Verilog text models and creates LRM-
compliant SystemVerilog configurations to generate compatible netlists.
This topic describes how to use the SystemVerilog Netlister to configure the environment for
generating netlists of SystemVerilog designs. This topic is aimed at developers and designers of
integrated circuits and assumes that you are familiar with:
The Virtuoso Studio design environment and application infrastructure mechanisms designed
to support consistent operations between all Cadence® tools.
The applications used to design and develop integrated circuits in the Virtuoso Studio design
environment, notably, Virtuoso Schematic Editor.
The Virtuoso Studio design environment technology file.
Licensing Requirements
Virtuoso SystemVerilog Netlister requires the following licenses:
Cadence Design Framework II license (License Number 111)
Virtuoso Schematic Editor Verilog(R) Interface license (License Number 21400)
Virtuoso AMS Designer Environment license (License Number 70000) or Virtuoso Schematic
Editor XL license (License Number 95115)
For information about licensing in the Virtuoso Studio design environment, see Virtuoso Studio
Design Environment Licensing Setup .
Related Topics
Virtuoso Studio Design Environment Licensing Setup
Benefits of SystemVerilog Netlister
Benefits of SystemVerilog Netlister over NC Verilog Netlister
Launching SystemVerilog Netlister
SystemVerilog Netlister Batch Mode
Migrating SystemVerilog Integration Designs to SystemVerilog Designs
Feature Description
Dual Provides a graphical user interface and a command-line interface. Supports the
Interface batch or command-line mode using the runsv command.
LRM- Uses only SystemVerilog LRM constructs. This makes the netlist simulator-
compliant independent and available to a SystemVerilog-compliant tool. Vendor
Netlist extensions are not supported.
HED Config Fully supports HED configurations that match UNL. Netlist generation is based
on HED configurations.
Direct
Restricts the use of the direct access OA file.
Access to
HDL File Updating the OA for text or symbol for text-in-text instance is redundant.
Supports read-only libraries.
Supports handling ports of packed or unpacked arrays in the design.
Ensures accurate datatype propagation from leaf-level SystemVerilog and
Verilog cellviews to top-level schematic views. The datatype propagation is
based on the native datatype definitions from text files. By default, datatype
propagation is disabled.
Ensures that instances are saved with explicit port connections. Supports
smart connections with module ports of Verilog and SystemVerilog views.
Requires the following:
Instance parameters are netlisted correctly and parameters are
propagated in a UNL-supported method.
Instance parameters that differ from the default parameters use the
explicit declaration format.
Text on Top Supports digital text-on-top views (Verilog, SystemVerilog). Allows descending
into the leaf-level schematic or text views.
Creation of Supports:
SV 2001
Same cell from different libraries
Config for
Bindings Multiple views of the same cell
Config in Supports config-in-config views where config view has the top-level schematic
Config of different cells.
Symbol Avoids the requirement for a symbol unless the cell is instantiated in a
Avoidance schematic view.
Data type Supports SystemVerilog data types. Requires that any net, port, or bus from a
Handling schematic or symbol uses the interconnect net type, by default. Support for the
wire net type is also available. Allows declaring internal signals with these
nettypes.
Port Ensures that instances are saved with explicit port connections. Supports smart
Connection connections with module ports of Verilog and SystemVerilog views.
Handling
Optional Creates an xrunArgs file, which includes the full set of generated files.
xrunArgs File
Creation
Self- Creates a self-contained set of files without links to the text views in dfII*.
contained
Netlist
Creation
Design Supports the use of design variables. All design variables are saved in the
Variable cds_globals.sv file.
Support
Save/Load Supports saving states with specified settings and subsequently loading these
State saved states for reuse.
cdsenv Provides various .cdsenv options for configuring netlist generation. Saves the
Support values of these options into states.
Related Topics
Defining Parameters
Introduction to Virtuoso SystemVerilog Netlister
Benefits of SystemVerilog Netlister over NC Verilog Netlister
Prerequisites for Using SystemVerilog Netlister
Launching SystemVerilog Netlister
SystemVerilog Netlister Batch Mode
Migrating SystemVerilog Integration Designs to SystemVerilog Designs
Related Topics
To ensure that you use the 64-bit version of Virtuoso and Xcelium, add the environment
variable setenv CDS_AUTO_64BIT ALL to your .cshrc file.
Related Topics
Introduction to Virtuoso SystemVerilog Netlister
Benefits of SystemVerilog Netlister
Launching SystemVerilog Netlister
SystemVerilog Netlister Batch Mode
Migrating SystemVerilog Integration Designs to SystemVerilog Designs
Alternatively, to first select the design and then launch SystemVerilog Netlister:
1. Launch Virtuoso.
2. In the CIW, choose Tools – Library Manager.
The Library Manager window appears.
3. In the Library Manager window, select a library from the Library list.
The cells present in the specified library appear in the Cell list.
4. Select a cell from the Cell list.
The views present in the specified cell appear in the View list.
5. Select a dnl_state* view from the View list.
The SystemVerilog Netlister window appears and shows the design.
Related Topics
Introduction to Virtuoso SystemVerilog Netlister
Benefits of SystemVerilog Netlister over NC Verilog Netlister
Prerequisites for Using SystemVerilog Netlister
SystemVerilog Netlister Batch Mode
Migrating SystemVerilog Integration Designs to SystemVerilog Designs
For example, if you have a design topLib/topCell/config_sv and you specify the project directory
as runsv_run, use the following command to generate the netlist in batch mode:
runsv -lib topLib -cell topCell -view config_sv -netlist -rundir runsv_run
To increase performance, load the initialization details in a .runsvinit file instead of the .cdsinit
file.
You can optionally use the -cdsenv option to read the file. However, if you want to enable
data type propagation or create an additional argument file, set the enableDataPropagate,
defaultNettype, mergedNetlist, and createXrunArgs environment variables in the .cdsenv
or the .cdsinit file.
Related Topics
For example, if you have a design topLib/topCell/schematic, use the following command in the
terminal window to create a config view:
cdsCreateConfig -lib topLib -cell topCell -view schematic
To view the various options available with the cdsCreateConfig utility, type the following command
in the terminal window.
cdsCreateConfig -help
Related Topics
cdsCreateConfig
Introduction to Virtuoso SystemVerilog Netlister
For example:
si dir1 -batch -command netlist
To view the various options available with the si2runsv utility, type the following command in
the terminal window.
si2runsv -help
Related Topics
si2runsv
Introduction to Virtuoso SystemVerilog Netlister
SystemVerilog Netlister Batch Mode
Related Topics
Export Environment Variables Form
SystemVerilog Netlister Graphical User Interface
2
Netlist Generation
Use the SystemVerilog Netlister to specify a design, configure the netlist generation options,
configure design variables, netlist the design, view the netlist, and manage the states. You can
generate a netlist, which contains connectivity information of a design, after you have specified the
design. Configure the netlist generation options before you generate the netlist. When you generate
the netlist, SystemVerilog Netlister creates a netlist file of your design based on the settings that you
specify and lets you view the netlist file.
Related Topics
Specifying a Design for Netlist Generation
Configuring Netlist Generation Options
ATPG Compatible Verilog Netlists
Importing a SystemVerilog Package File
Specifying Additional xrun Arguments in SystemVerilog Netlister
DataType Propagation
Netlist Customization Using the .simrc File
To know about any issues that you might encounter while using SystemVerilog Netlister, refer to the
log in the Virtuoso CIW. The status of the last operation is also visible on the SystemVerilog
Netlister window.
Related Topics
Specifying a Design for Netlist Generation
ATPG Compatible Verilog Netlists
Importing a SystemVerilog Package File
Specifying Additional xrun Arguments in SystemVerilog Netlister
DataType Propagation
Netlist Customization Using the .simrc File
Related Topics
Launching SystemVerilog Netlister
To configure netlist generation options, based on which the SystemVerilog Netlister generates a
netlist:
1. Launch SystemVerilog Netlister.
2. In the Settings group box, click Open Option Form to set additional options.
The SystemVerilog Netlister Options Form appears with the Netlister tab selected.
3. In the Netlister and Miscellaneous tabs of the SystemVerilog Netlister Options form, specify
the required values or options and click OK.
For Verilog cellviews, specify the values or options on the Verilog tab of the SystemVerilog
Netlister Options form.
The SystemVerilog Netlister options are successfully configured.
Related Topics
SystemVerilog Netlister Options Form
Launching SystemVerilog Netlister
SystemVerilog Netlister Graphical User Interface
Generating and Regenerating a Netlist
Viewing a Netlist
5. Click Delete to delete a design variable by selecting the variable name from the Design
Variables list box.
6. Click Change to change the name or value of a design variable by selecting the variable
name from the Design Variables list box.
Edit the name or the value of the design variable, as required.
7. Click OK.
The design variable is updated as specified.
Related Topics
Launching SystemVerilog Netlister
SystemVerilog Netlister Graphical User Interface
Editing Design Variables Form
Related Topics
Viewing a Netlist
A netlist contains the connectivity information of a design. To view the netlist of your design:
In the Actions group box of the SystemVerilog Netlister window, click View.
The netlist.sv file opens.
The following figure illustrates how SystemVerilog Netlister displays the netlist file:
Related Topics
Launching SystemVerilog Netlister
SystemVerilog Netlister Graphical User Interface
Netlist Generation Flow in SystemVerilog Netlister
State Management
You can save the current state of your settings or load saved states of settings in SystemVerilog
Netlister. It is useful when you want to avoid repeated setups of netlisting settings.
To save a state with the specified settings:
1. In the Settings group box of the SystemVerilog Netlister window, click Save State. The Save
State form appears.
2. In the State field, specify a new name for the current state.
3. Click OK.
The current settings are saved as a state in SystemVerilog Netlister.
To load a saved state when you launch SystemVerilog Netlister:
1. In the Settings group box of the SystemVerilog Netlister window, click Load State. The Load
State form appears.
2. In the State list, select the name of the state that you want to load.
3. Click OK.
The saved state is loaded in SystemVerilog Netlister.
Related Topics
Save State Form
Load State Form
Launching SystemVerilog Netlister
SystemVerilog Netlister Graphical User Interface
with the ATPG technology. These netlists let you find an input or test sequence in Verilog text files.
The ATPG functionality within Virtuoso SystemVerilog Netlister has the following main features:
All text views must be Verilog constructs. Views created in other languages are not supported.
All nets are defined as wire in the netlist.
All parameters of cells or instances are ignored and are not printed in netlist.
All instance arrays are expanded by default.
Aliases can be printed using tran statements instead of using cds_alias, cds_thru, or assign
statements.
Generates a single netlist file. This netlist file contains the Verilog modules created from the
schematic and the Verilog modules from the text views. Cells with same names from different
libraries and different views are generated in a single netlist file with unique names.
Related Topics
Generating ATPG Compatible Verilog Netlists
Verilog Tab
enableVerilogATPG
useTranForCdsAliasThru
vlogCompatVersion
Related Topics
d. Click OK.
The New File form closes, and the View list in the Library Manager shows the new view.
Related Topics
6. Click OK.
The Additional Arguments form closes.
Related Topics
DataType Propagation
The SystemVerilog Netlister allows you to modify the dataType, portKind, and isUnpacked
properties, which are specific to an instance.
The datatype can be propagated from the following:
From text views
From instance ports on the symbol (place master).
From instance ports in the schematic
When ignoreDataType is set to t, the dataType, portKind, and isUnpacked properties are ignored.
Instead, the dataType information that is propagated from the bottom-level cell to the top-level cell is
considered.
You can add the ignoreDataType property on a specific instance terminal in the schematic. If this
property is selected, the SystemVerilog Netlister will not print the Master Value and the Local Value.
Additionally, you can modify the local values of the dataType, portKind, and isUnpacked port
properties that are associated with a specific instance of a cell.
The following table clearly describes the impact of enabling and disabling the ignoreDataType
property on the port of an instance in different scenarios:
ignoreDataType The local value of The local value of the specific instance is used
= nil dataType is set to cu instead of the value set on the symbol cell.
stom_value.
ignoreDataType The local values are The master value of the symbol cell property is
= nil not set for dataType, used.
portKind, and
isUnpacked.
Example
Consider the input port I2 in the following schematic and the related condition scenarios that follow.
The following example shows how the netlist displays the port information in this scenario:
module tb_w_voltage (
output wire logic VOUT0,
output wire logic VOUT1,
output wire logic VOUT2,
input wire logic GNDA_ADC,
input voltage VIN0,
input voltage VIN1
);
Here, the wire logic value is derived from the dataType property of the bottom-level cell.
When ignoreDataType is set to nil and the local value of dataType is set to
custom_value
When you set ignoreDataType to nil on I2 and the local value dataType to myvoltage, the
local value myvoltage of the specific instance is used, instead of the master value voltage that
is set on the symbol cell.
The following example shows how the netlist displays the port information in this scenario:
module tb_w_voltage (
output wire logic VOUT0,
output wire logic VOUT1,
output wire logic VOUT2,
input myvoltage GNDA_ADC,
input voltage VIN0,
input voltage VIN1
);
Here, the local value overrides the master value.
When ignoreDataType is set to nil and the local value of dataType is not set
When you set ignoreDataType to nil on I2 and the local values of dataType and portKind are
not set, the master value voltage of the symbol cell property is used.
The following example shows how the netlist displays the port information in this scenario:
module tb_w_voltage(
output wire logic VOUT0,
output wire logic VOUT1,
output wire logic VOUT2,
input voltage GNDA_ADC,
input voltage VIN0,
input voltage VIN1
);
Here, the property of the symbol cell (master value) is used.
Related Topics
SystemVerilog Netlister might not always support all the variables in the .simrc file that are
supported by the SI Netlister.
Variable Description
hnlUserShortCVList Allows specifying a shorting list that contains devices that need to be
shorted.
Example: hnlUserShortCVList=list(list(<libName> <cellName>))
simVerilogEnableEscapeNameMapping
simSVPortPropertyList
Here,
"analogLib" indicates the library name
"PLUS real var" indicates that datatype is set to real, and portKind
is set to var on port PLUS;
vlogExpandIteratedInst
When set to nil, allows instances in the array in the following format:
"I_iter[0:2]"
hnlVerilogDumpIncludeFilesInNetlist
When set to t, copies the content of an included HDL file directly to the
netlist, instead of inserting an `include statement.
The contents of the text cellviews in the design hierarchy are copied to
the netlist. Any file specified in the Pre-Module Include File or In-Module
Include File option of the SystemVerilog Netlister Options form is also
copied to the netlist.
This variable works only in single netlist file mode. It does not support
recursive inclusion of text files. Consider that fileA.sv includes
fileB.sv. If you copy the contents of fileA.sv in the netlist using this
variable, the contents of fileB.sv will not be copied in the netlist.
Default: nil
simVerilogGenerateSingleNetlistFile
hnlUserStopCVList List of user specified cellviews, which are treated as stop views while
netlisting a design. You can specify this list in the .simrc file. Although
instances of such a cellview appear in a netlist, the cellview module is
not printed in the netlist.
In the example below, all the cellviews in the libN library will be treated
as stop views. However, in the lib1 library, only the cell1, cell2, and
cell3 cellviews will be treated as stop views.
hnlUserStopCVList = list
The list should have only one entry for each library, listing all the
cellviews that need to be treated as stop views.
vlogifDeclareGlobalNetLocal
A flag to declare global signals locally. When you disable this flag, the
netlister uses the default signals (Global Power Nets and Global
Grounds Nets). If the vlogifDeclareGlobalNetLocal flag is set to nil,
global signals are declared in the cds_globals module.
Related Topics
3
SystemVerilog Netlister Forms
This chapter describes the various forms in the SystemVerilog Netlister environment. These
include:
Additional Arguments Form
Editing Design Variables Form
Export Environment Variables Form
Load State Form
Save State Form
Select Design/Directory Form
SystemVerilog Netlister Graphical User Interface
SystemVerilog Netlister Options Form
Field Description
Additional Specifies the name of the xrun argument. Click the field to add a new argument
Argument name or edit an existing argument name.
Related Topics
Field Description
Change Specifies the name of the xrun argument. Click the field to add a new argument
name or edit an existing argument name.
Related Topics
SystemVerilog Netlister Forms
Field Description
Save Lets you specify the file to which the GUI settings and options available in the
to file SystemVerilog Netlister form are exported as environment variables in a format similar
to that of the .cdsinit file.
Related Topics
SystemVerilog Netlister Graphical User Interface
Exporting SystemVerilog Netlister Settings as Environment Variables
Field Description
Library Specifies the name of the library that contains the design.
Cell Specifies the name of the cell in the selected library for which the state needs to be
saved.
Related Topics
SystemVerilog Netlister Forms
Field Description
Library Specifies the name of the library that contains the design.
Cell Specifies the name of the cell in the selected library for which the state needs to be
saved.
Related Topics
SystemVerilog Netlister Forms
Field Description
Library Specifies the name of the library that contains the design.
Cell Specifies the name of the cell in the selected library that contains the design.
Project directory
Specifies the name of the project directory. If the project directory name already exists,
a dialog box is displayed to confirm if the previous project directory must be
overwritten. If you choose not to overwrite the project directory, specify a new name in
the text field.
The default project directory name is sv-netlist.
The project directory contains various subdirectories. When you select a library,
cell, and view in the Select Design/Directory window, a new subdirectory is
created in the project directory. The subdirectory derives its name from the
library, cell, and view names that you select in the design. For example, the
typical directory structure of a design is as follows: projectDir/lib_cell _view /netl
ist
Related Topics
SystemVerilog Netlister Forms
Section Description
Design Specifies the library, cell, and view of the top-level design.
Setting Specifies the options and design variables required for netlist generation.
Actions Specifies the netlisting actions. You can generate or regenerate a netlist to view the
netlisting results.
Related Topics
Specifying a Design for Netlist Generation
Configuring Netlist Generation Options
Configuring Design Variables
Netlist Generation Flow in SystemVerilog Netlister
Export Environment Variables Form
Tab Description
Netlister Tab Lets you specify port declaration format, default nettype, enablement
of datatype and array type propagation, auto-package import,
merging text files to a single netlist, and values for global ground and
power nets and pre-module and in-module include files.
Miscellaneous Lets you specify the hdl.var file, pre-compiled libraries, creation of
Tab argument files, creation of binding files for xrun, printing the global
time scale, and additional arguments.
Verilog Tab Lets you specify options for generating Verilog netlists.
Netlister Tab
Merge text source to single netlistThe following table describes the fields available on the Netlister
tab of the SystemVerilog Netlister Options form.
Field Description
Default Specifies one of the following nettypes to netlist the nets on the schematic:
Nettype
interconnect (default): If no nettype is propagated, the net and the bus are
declared explicitly as interconnect.
wire: A net without another explicitly set type is not declared. Here, only the
bus is declared. Single-bit wires are not saved in the declaration because
Xcelium resolves signals that are not explicitly declared to be of type wire.
Enable auto Enables the auto-package handling feature, which allows SystemVerilog
package Netlister to automatically search and find the SystemVerilog package files on
importing which the systemverilog modules in the design depend. It is not selected by
default.
Alternatively, you can manually pre-compile a package into a library that you
define.
Merge text Merges the text files to create a single and self-contained netlist.sv file. This
source to file includes the netlist from the schematic and the original source files from the
single netlist text view.
If you select the Merge text source to single netlist check box, the contents of the
cds_alias.sv or the cds_globals.sv file are printed in the netlist.sv file.
However, deselecting the Merge text source to single netlist check box results
in the following:
The absolute path of cds_alias.sv is printed in textInputs but removed from
the netlist.sv file.
Rename Detects the cell name conflicts in schematic, Verilog, or SystemVerilog cells
cells with and renames the cells with naming conflicts in a single netlist file.
naming
conflicts This option is enabled only when Merge text source to single netlist check box
is selected.
Output Specifies whether to save the design hierarchy details with the instances and
design components information for non-ATPG netlisting mode.
hierarchies
in XML
format
Split Netlist Generates split netlists for all modules in the design. For example, if the cell
File contains multiple modules, such as module1, module2...moduleN, instead of a
single netlist, separate netlists named module1.sv, module2.sv....moduleN.sv are
generated. By default, the option is deselected.
netTypes to Specifies the net types that must be ignored during netlising.
ignore on
schematic
nets
supply0 Specifies a value to set the global ground net. This value is saved in the
cds_globals.sv file.
This option supports only global signals in the design. Cross-checking with the
schematic is not supported.
supply1 Specifies a value to set the global power net. This value is saved in the
cds_globals.sv file.
This option supports only global signals in the design. Cross-checking with the
schematic is not supported.
Pre-Module Specifies the file that the netlister must use as the include file before the module
Include File declaration in the netlist file generated for each hierarchical cellview.
To print the contents of the include file in the generated netlist file instead of
using the file inclusion directive 'include, set
hnlVerilogDumpIncludeFilesInNetlist to t.
When Merge text source to single netlist is selected, the contents of the
include file are also printed in a single netlist file even if
hnlVerilogDumpIncludeFilesInNetlist is not set.
Flag: vlogifPreModuleIncludeFile
In-Module Specifies the file that the netlister must use as an include file immediately after
Include File the module declaration in the netlist file generated for each hierarchical
cellview.
To print the contents of the include file in the generated netlist file instead of
using the file inclusion directive 'include, set
hnlVerilogDumpIncludeFilesInNetlist to t.
When Merge text source to single netlist is selected, the contents of the
include file are also printed in a single netlist file even if
hnlVerilogDumpIncludeFilesInNetlist is not set.
Flag: vlogifInModuleIncludeFile
Suppress Ignores the specified SystemVerilog Netlister messages of INFO or WARNING type
specific that start with the prefix VSVN-, AMS- and, VLOGNET- and does not print them in the
netlister log file and the CIW.
info/warnings
You can specify multiple SystemVerilog Netlister messages of INFO or WARNING
type as space-separated values.
The following example ignores the specified messages and does not print them
in the log file and the CIW.
VSVN-1206 VLOGNET-55
Netlist File Specifies the name of the generated netlist file. The default name of the
Name generated netlist is netlist.sv.
Miscellaneous Tab
The following table describes the fields available on the Miscellaneous tab of the SystemVerilog
Netlister Options form.
Field Description
hdl.var file Specifies the name of an hdl.var file to include the simulation options.
For more details on the hdl.var file, see The hdl.var File.
Pre- Specifies the name of a pre-compiled library. If you have a package definition, you
compiled can pre-compile the package into the same library or different libraries.
libraries
(-reflib) To manage text views of a design, pre-compile all the packages into a
library. You can use –reflib to include all the libraries that contain the pre-
compiled packages required in the design.
Create Creates the xrunArgs file and other standard binding files. This file includes
arguments netlist.sv, config.sv, textInputs, binding files, and other files, such as
file cds_globals.sv and cds_alias.sv. These files are generated during netlisting and
are needed for simulations.
Create Select this check box only if you use xrun. Selecting this check box automatically
binding selects the Create arguments file check box and creates two sets of binding files in
files for the netlist directory: xrunArgs, xrunArgs_vy (compatible with Xcelium), and the
xrun only hdl.var, cds_xrun.lib and lib.map files.
textInputs file
Additionally:
xrunArgs includes the lib.map file.
You do not need to select this check box if you use a third-party simulation
tool.
Print Prints the global timescale. By default, SystemVerilog Netlister does not print the
global timescale globally.
timescale
Enabling Print global timescale prints the following:
'timescale on the module header of each schematic cell in netlist
Global sim Specifies the simulation time in global timescale. The possible values are 1, 10,
time and 100. The default is 1.
This field is enabled only when Print global timescale is selected.
Unit for Specifies the unit to be used for simulation time in global timescale. The possible
global sim values are s, ms, us, ns, ps, fs. The default is ns.
time
This field is enabled only when Print global timescale is selected.
Global sim Specifies the simulation precision in global timescale. The possible values are 1,
precision 10, and 100. The default is 1.
Unit for Specifies the unit to be used for simulation precision in global timescale. The
global sim possible values are s, ms, us, ns, ps, fs. The default is ns.
precision
This field is enabled only when Print global timescale is selected.
Related Topics
Verilog Tab
The following table describes the fields available on the Verilog tab of the SystemVerilog Netlister
Options form.
Field Description
Use tran Prints tran statements for aliases or patches instead of using the cds_alias and
statement cds_thru and cds_thrualias constructs. All buses and concatenated bundles are
for aliasing expanded and printed in tran statements.
Text Checks the Verilog IEEE Standard compliance for text source in the design using
source Verilog command-line compilation options.
compliance
Possible values are as follows:
with xrun
None: Compiles text source files using xrun default standard.
Verilog-2001: Compiles text source files using the xrun option, -v2001.
Verilog-1995: Compiles text source files using the xrun option, -v1995.
The selected option is added to the xrun command line for mapi compilation
during netlisting. It is also printed in the xrunArgs files if the Create arguments file
option is enabled.
Add prefix Adds a predefined prefix to cell names in the generated netlist.
to cell
Possible values are as follows:
names
None: Default. Does not add prefix to cell names.
All: Adds the prefix specified in the Cell prefix name field to all cell names,
including the top cell and non-textual stopping cells. These non-textual
stopping cells are cells without module definitions.
Keep name of top cell and symbol cells: Adds the prefix specified in the Cell
prefix name field to all cell names, excluding names of the top cell and non-
textual stopping cells. These non-textual stopping cells are cells without
module definitions.
Cell prefix Specifies a prefix string for cell names. The prefix must start with either an
name alphabetic character or an underscore and the remaining string may contain only
alphanumeric characters or underscores.
Related Topics
4
Environment Variables
This chapter describes the environment variables that control the characteristics of the
SystemVerilog Netlister environment.
Compiler
refLib reUseHdlCompilationSetup
Elaborator
simTime simTimeUnit
NC-Verilog
addArgTableList vlogCompatVersion
Netlister
vlogSupply1Sigs
addArgTableList
digitalSim.ncverilogOpts addArgTableList string ""
Description
Controls the default setting for the Create arguments file check box in the SystemVerilog Netlister
Options form.
The default is "".
GUI Equivalent
Examples
envGetVal("digitalSim.ncverilogOpts" "addArgTableList")
Related Topics
Configuring Netlist Generation Options
addPrefixToCells
digitalSim.netlisterOpts addPrefixToCells string { "None" | "All" | "Keep name of top
cell and symbol cells" }
Description
Adds a predefined prefix to cell names in the generated netlist.
Possible values are as follows:
None: Default. Does not add a prefix to cell names, even if it is defined using the Cell prefix
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "addPrefixToCells")
Related Topics
cellPrefixName
digitalSim.netlisterOpts cellPrefixName string { "prefixstring" }
Description
Specifies a prefix for cell names. The prefix must start with either an alphabetic character or an
underscore and the remaining string may contain only alphanumeric characters or underscores.
This setting applies to the selection made using the Add prefix to cell names check box in the
Verilog tab of the SystemVerilog Netlister Options form or the addPrefixToCells environment
variable.
The default is "".
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "cellPrefixName")
Related Topics
Configuring Netlist Generation Options
createXrunArgs
digitalSim.compilerOpts createXrunArgs boolean { t | nil }
Description
Controls the default setting for the Create arguments file check box in the SystemVerilog Netlister
Options form.
GUI Equivalent
Examples
envGetVal("digitalSim.compilerOpts" "createXrunArgs"
Related Topics
Configuring Netlist Generation Options
createXrunBinding
digitalSim.compilerOpts createXrunBinding boolean { t | nil }
Description
Creates the hdl.var and cds_xrun.lib files in the netlist directory when you use xrun.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.compilerOpts" "createXrunBinding")
Related Topics
Configuring Netlist Generation Options
defaultNettype
digitalSim.netlisterOpts defaultNettype string { "interconnect" | "wire" }
Description
Sets the default net type to netlist nets on the schematic.
interconnect prints all interconnects in the netlist.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "defaultNettype")envSetVal("digitalSim.netlisterOpts"
"defaultNettype" 'string "wire")
Related Topics
Configuring Netlist Generation Options
enableDataPropagate
digitalSim.netlisterOpts enableDataPropagate boolean { t | nil }
Description
Controls the datatype propagation in SystemVerilog Netlister. The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "enableDataPropagate")
Related Topics
enableVerilogATPG
digitalSim.netlisterOpts enableVerilogATPG boolean { t | nil }
Description
Enables the creation of ATPG compatible netlists in Virtuoso SystemVerilog Netlister.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "enableVerilogATPG")
Related Topics
expandIterateInst
digitalSim.netlisterOpts expandIterateInst boolean { t | nil }
Description
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "expandIterateInst")
Related Topics
enableTimeScale
digitalSim.elabOpts enableTimeScale boolean { t | nil }
Description
Enables printing the global time scale.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.elabOpts" "enableTimeScale")
Related Topics
hdlVarFile
digitalSim.compilerOpts hdlVarFile string { "pathName" }
Description
GUI Equivalent
Examples
envGetVal("digitalSim.compilerOpts" "hdlVarFile")
Related Topics
Configuring Netlist Generation Options
The hdl.var File
SystemVerilog Netlister Options Form
isPortInANSIFormat
digitalSim.netlisterOpts isPortInANSIFormat string { "Non-ANSI" | "ANSI" }
Description
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "isPortInANSIFormat")
Related Topics
Configuring Netlist Generation Options
mergedNetlist
digitalSim.netlisterOpts mergedNetlist boolean { t | nil }
Description
Merges the text files to create a single and self-contained netlist. This netlist includes the netlist
from the schematic and the original source files from the text view.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "mergedNetlist")
Related Topics
Configuring Netlist Generation Options
nettypesToIgnore
digitalSim.netlisterOpts nettypesToIgnore string ""
Description
Controls the net types to be ignored.
The default is "".
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "nettypesToIgnore")
Related Topics
Configuring Netlist Generation Options
refLib
digitalSim.compilerOpts refLib string ""
Description
Allows the selection of a pre-compiled library from a specific location. If you have a package
definition, you can pre-compile the package into a single library or multiple libraries.
The default is "".
GUI Equivalent
Examples
envGetVal("digitalSim.compilerOpts" "refLib")
Related Topics
reUseHdlCompilationSetup
digitalSim.compilerOpts reUseHdlCompilationSetup boolean { t | nil }
Description
Controls whether the HDL package setup is reused by Virtuoso SystemVerilog Netlister.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.compilerOpts" "reUseHdlCompilationSetup")
Related Topics
simPrecision
digitalSim.elabOpts simPrecision int pre-defined_numeric_value
Description
Specifies the simulation precision in global timescale. Possible values are 1, 10, and 100.
The default is 1.
GUI Equivalent
Examples
envGetVal("digitalSim.elabOpts" "simPrecision")
Related Topics
simPrecisionUnit
digitalSim.elabOpts simPrecisionUnit string { "s" | "ms" | "us" | "ns" | "ps" | "fs"}
Description
GUI Equivalent
Examples
envGetVal("digitalSim.elabOpts" "simPrecisionUnit")
Related Topics
simTime
digitalSim.elabOpts simTime int pre-defined_numeric_value
Description
Specifies the simulation time in global timescale. Possible values are 1, 10, and 100.
The default is 1.
GUI Equivalent
Examples
envGetVal("digitalSim.elabOpts" "simTime")
Related Topics
simTimeUnit
digitalSim.elabOpts simTimeUnit string { "s" | "ms" | "us" | "ns" | "ps" | "fs"}
Description
Specifies the unit to be used for simulation time in global timescale.
The default is "ns".
GUI Equivalent
Examples
envGetVal("digitalSim.elabOpts" "simTimeUnit")
Related Topics
termMismatch
digitalSim.netlisterOpts termMismatch string { "ignore" | "warning" | "error" }
Description
Controls the tool behavior when terminal mismatch is found between the switch master and the
place master. The valid values are ignore, warning, and error,
ignore: Ignores any terminal mismatch found between the switch master and place master in
the text view and continues netlisting.
warning: Displays a warning message when terminal mismatch is found between the switch
master and place master in the text view and continues netlisting.
error: Displays an error if terminal mismatch is found between the switch master and place
master in the text view and stops netlisting.
GUI Equivalent
None
Examples
envGetVal("digitalSim.netlisterOpts" "termMismatch")
Related Topics
termDirectionMismatch
digitalSim.netlisterOpts termDirectionMismatch string { "ignore" | "warning" | "error" }
Description
Controls the tool behavior when mismatch in terminals directions is found between the switch
master and the place master. The valid values are ignore, warning, and error,
ignore:Ignores any mismatch in terminals directions found between the switch master and
place master in the text view and continues netlisting.
warning: Displays a warning message when mismatch in terminals directions is found
between the switch master and place master in the text view and continues netlisting.
error: Displays an error if mismatch in terminals directions is found between the switch
master and place master in the text view and stops netlisting.
The default is error.
GUI Equivalent
None
Examples
envGetVal("digitalSim.netlisterOpts" "termDirectionMismatch")
Related Topics
useTranForCdsAliasThru
digitalSim.netlisterOpts useTranForCdsAliasThru boolean { t | nil }
Description
Prints tran statements for aliases or patches instead of using the cds_alias and cds_thru
constructs. This option is only available when the Create ATPG compatible netlist option is enabled
on the Verilog tab of the Virtuoso SystemVerilog Netlister Options form.
The default is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "useTranForCdsAliasThru")
Related Topics
vlogCompatVersion
digitalSim.ncverilogOpts vlogCompatVersion string { "None" | "Verilog-2001" | "Verilog-1995"}
Description
Checks the text source compliance with Verilog IEEE Standard in the design using Verilog
command-line compilation options.
Possible values are:
None: Compiles text source files using xrun default standard.
Verilog-2001: Compiles text source files using the xrun option, -v2001.
Verilog-1995: Compiles text source files using the xrun option, -v1995.
GUI Equivalent
Examples
envGetVal("digitalSim.ncverilogOpts" "vlogCompatVersion")
Related Topics
vlogSupply0Sigs
digitalSim.netlisterOpts vlogSupply0Sigs string "name_of_global_ground_net"
Description
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "vlogSupply0Sigs")
Related Topics
vlogSupply1Sigs
digitalSim.netlisterOpts vlogSupply1Sigs string "name_of_global_power_net"
Description
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "vlogSupply1Sigs")
Related Topics
outputXmlFile
digitalSim.netlisterOpts outputXmlFile boolean { t | nil }
Description
Specifies whether to save the design hierarchy details with the instances and components
information for non-ATPG netlisting mode.
The default value is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "outputXmlFile")
Related Topics
printDirectivesForVerilog2001
digitalSim.netlisterOpts printDirectivesForVerilog2001 boolean { t | nil }
Description
Prints the Verilog-2001 directives ‘begin_keywords "1364-2001" and ‘end_keywords for every text
module of a verilog view in a single netlist file.
This option is enabled only when mergedNetlist environment variable is set to t.
The default value is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "printDirectivesForVerilog2001")
Related Topics
printParamForTextInst
digitalSim.netlisterOpts printParamForTextInst string { "overridden" | "all" }
Description
Prints the parameter value on the instance line of the text modules. The valid values are overridden
and all.
overridden: The netister compares the parameter value that is set on the instance and its
default value defined in the text view. If these values are same, the netlister does not print
anything. Else, the netlister prints the value that is set on the instance.
all: The netlister prints all the parameter values that are set on the instance.
GUI Equivalent
None
Examples
envGetVal("digitalSim.netlisterOpts" "printParamForTextInst")
Related Topics
netlistNoWarn
digitalSim.netlisterOpts netlistNoWarn string ""
Description
Suppresses the specified SystemVerilog Netlister messages of INFO or WARNING type that start with
the prefix VSVN-, AMS- and, VLOGNET- and are printed in the log file or in the CIW.
You can separate multiple values by spaces.
The default value is "".
GUI Equivalent
Examples
envGetVal("digitalSim.ncverilogOpts" "netlistNoWarn")
Related Topics
genUniqCellNameIfConflict
digitalSim.netlisterOpts genUniqCellNameIfConflict boolean { t | nil }
Description
Detects the cell name conflicts in schematic, Verilog, or SystemVerilog cells and renames the cells
with naming conflicts in a single netlist file.
This option is enabled only when the mergedNetlist is set to t.
The default value is nil.
GUI Equivalent
Examples
envGetVal("digitalSim.netlisterOpts" "getUniqCellNameIfConflict")
Related Topics
5
SKILL Functions and Flags
This section provides syntax, descriptions, and examples for the Cadence SKILL functions and
SKILL flags associated with the Virtuoso SystemVerilog Netlister (SystemVerilog Netlister) flow.
SKILL Functions
asiDigitalSimAutoloadProc
simDeRegPostNetlistTrigger
simDeRegPreNetlistTrigger
simPostNetlistTriggerList
simPreNetlistTriggerList
simRegPostNetlistTrigger
simRegPreNetlistTrigger
SKILL Flags
hnlUseSchematicForSystemVerilogView
hnlVerilogIgnoreCVTermNameList
asiDigitalSimAutoloadProc
asiDigitalSimAutoloadProc(
)
=> t / nil
Description
Automatically loads the context for class and tool initialization when you launch SystemVerilog
Netlister.
Arguments
None
Value Returned
Example
SKILL Flags
The following SKILL flags are supported in the Virtuoso SystemVerilog Netlister:
hnlUseSchematicForSystemVerilogView
Ignores terminals and pin names in the specified list of library and cell names
during Verilog or SystemVerilog netlist generation. The terminal and pin
names added with the cellname in the ignore list are not printed in the netlist
generated by SystemVerilog Netlister.
These terminals and pins can be from a schematic view, symbol view, or a
stopping view.
To set this flag in .simrc, si.env, or Virtuoso CIW, specify libraries and cells
from which the terminals are to be ignored, as follows:
Related Topics
hnlUseSchematicForSystemVerilogView
6
Batch Mode Options in SystemVerilog
Netlister
SystemVerilog Netlister can be launched in batch mode using the following commands:
runsv
cdsCreateConfig
si2runsv
runsv
Use the runsv command with the following options:
runsv
[-help | -version | -W] |
runsv -lib <libName>
-cell <cellName>
-view <viewName>
action_options [setup_options]
[netlisting_options]
[simulation_options]
The following table describes the various options that can be used with the runsv command.
Option Description
-help Displays the tool help.
-version Prints the program version.
-W Prints the program sub-version.
-usage Displays the syntactical usage to indicate how the tool works under various
conditions.
-nocdsinit Skips reading the .cdsinit file and uses the SKILL search path.
-cell <cellName>
-view <viewName>
Action Options
-netlist [ skip | incremental | all ]
-log <logFileName>
-rundir <runDir>
Specifies the run directory path to use. Netlisting takes place in <runDir>/netlist.
-cdsenv <filePath>
Specifies whether to merge all text and schematic cells into a single netlist file.
Possible values are:
default: Merges all text and schematic cells without naming conflicts into a
single netlist file. For cells with same names, only one cell is merged into the
single netlist. Other cells with naming conflicts are not merged, but are saved in
a separate.sv file.
-merge default is equivalent to enabling Merge text source to single netlist in
the SystemVerilog Netlister Options form.
GUI equivalent: Merge text source to single netlist
unified: Merges all text and schematic cells into a single netlist file. Cells with
naming conflict are renamed to unique cell names before they are merged in a
single netlist. No configuration file is generated as netlist.sv file is self-
contained.
-merge unified is equivalent to enabling Merge text source to single netlist and
Renaming cells with naming conflicts in the SystemVerilog Netlister Options
form.
GUI equivalent: Merge text source to single netlist and Rename cells with
naming conflicts
-v2001configname <configName>
-testbenchtopcell <topCellName>
Specifies the name of the top-module cell for testbench which is used for the
SystemVerilog configuration file generation.
-iplabel <labelName>
Specifies the name of the label which is used in the config.sv file.
-iphierpathtoiptopcell <instanceHierPath>
Specifies the hierarchy path from the top-module cell to the current IP.
Adds the specified IP label name as the prefix to the Virtuoso Studio library name.
Example
To generate the netlist using the configuration mylib.top:config with the settings specified in the
.cdsenv file, use the following batch mode command:
runsv -lib mylib -cell top -view config -netlist -rundir top_run1 -cdsenv .cdsenv
By default, environment variables specified in file paths are expanded in the runSimulation
file which is created by the runsv command. If you want the runSimulation file to be portable,
enclose the file paths with the ' character so that the environment variables in the file paths
are not expanded in the runSimulation file. The relative paths specified using the ~ or .
characters are resolved with respect to the directory from which you run the runsv command.
Related Topics
cdsCreateConfig
Use the cdsCreateConfig utility with the following options:
cdsCreateConfig
-lib topLibName
-cell topCellName
-view topViewName
[-config newConfigName]
[-liblist 'l_lib']
[-viewlist 'l_view']
[-stoplist 'l_stopview']
The following table describes the various options that can be used with the cdsCreateConfig
utility.
Option Description
Optional Options
-config <"newConfigName">
Specifies the names of the libraries that are bound to the new config view.
Specifies the names of the views that are bound to the new config view.
Specifies the names of the stop views that are bound to the new config
view.
Related Topics
SystemVerilog Netlister Batch Mode
SystemVerilog Config Views
si2runsv
The si2runsv utility can be used with the following options:
si2runsv
[run directory]
[-batch [-command commandName]]
[-cdslib path]
The following table describes the various options that can be used with the si2runsv command.
Option Description
-help | -h Displays the si2runsv help.
-command <commandName>
Related Topics
SystemVerilog Netlister Batch Mode
Migrating SystemVerilog Integration Designs to SystemVerilog Designs