- •Contents
- •Preface
- •Related Documents
- •Typographic and Syntax Conventions
- •Creating HDL Modules for CDBA Cellviews
- •Creating HDL Data as You Save CDBA Cellviews
- •Creating HDL Data from Pre-existing CDBA Cellviews
- •Quick-Start Tutorial
- •The Circuit
- •AMS Designer Tools
- •Setting Up the Tutorial
- •Running from a Script
- •Running within the AMS Environment
- •Opening the Command Interpreter Window
- •Netlisting and Compiling
- •Elaborating and Simulating the Design
- •Summary
- •Setting Up the AMS Environment
- •Overview
- •The hdl.var File
- •The ams.env Files
- •AMS Designer Supports Design Management
- •Specifying the Text Editor to Use
- •Specifying Fonts for the Cadence Hierarchy Editor
- •Preparing to Use AMS Designer from the Hierarchy Editor
- •Netlisting
- •Netlisting Modes Supported by the AMS Netlister
- •Automatic Netlisting of a Cellview
- •Netlist Updating and Netlisting of Entire Designs
- •Netlisting from the UNIX Command Line
- •Library Netlisting
- •Netlisting of Cells in Response to Changes in CDF
- •Preparing Existing Analog Primitive Libraries for Netlisting
- •Specifying the Behavior of the Netlister and Compilers
- •Opening the AMS Options Windows
- •Setting Netlister Options from the Hierarchy Editor
- •Opening the CIW AMS Options Window
- •Setting Compiler Options
- •Viewing the AMS Netlister Log
- •Understanding the Output from the AMS Netlister
- •How Inherited Connections Are Netlisted
- •Inherited Signal Connections
- •Inherited Terminal Connections
- •Instance Values for Inherited Connections
- •Third-Party Tools and Other Cadence Tools
- •How Aliased Signals Are Netlisted
- •How m-factors (Multiplicity Factors) Are Netlisted
- •How Iterated Instances Are Netlisted
- •Passing Model Names as Parameters
- •Effect of the modelname, model, and modelName Parameters
- •Handling of the model* and componentName Parameters
- •Precedence of the model* and componentName Parameters
- •Specifying Parameters to be Excluded from Netlisting
- •Ignoring Parameters for Entire Libraries
- •Example: Specifying Parameters to Ignore
- •Ensuring that Floating Point Parameters Netlist Correctly
- •Working with Schematic Designs
- •Setting Schematic Rules Checker Options for AMS Designer
- •Creating Cellviews Using the AMS Environment
- •Preparing a Library
- •Creating the Symbol View
- •Using Blocks
- •Descend Edit
- •Inherited Connections
- •Global Signals in the Schematic Editor
- •Inherited Connections in a Hierarchy
- •How Net Expressions Evaluate
- •Net and Pin Properties
- •groundSensitivity and supplySensitivity Properties
- •Making Connect Modules Sensitive to Inherited Connection Values
- •Using External Text Designs
- •Overview of Steps for Using External Text Designs
- •Bringing Modules into a Cadence Library
- •Specifying the Working Library
- •Compiling into Libraries
- •Compiling into Temporary Libraries
- •Listing Compiled Modules
- •Using Text Blocks in Schematics
- •Using Modules Located in a Cadence Library
- •Preparing for Simulation
- •Using Analog Primitives
- •Using SPICE and Spectre Netlists and Subcircuits
- •Preparing to Use SPICE and Spectre Netlists and Subcircuits
- •Placing SPICE and Spectre Netlists and Subcircuits in a Schematic
- •Using Test Fixtures
- •Creating and Using a Textual Test Fixture
- •Creating a Textual Test Fixture
- •Using a Test Fixture
- •Example: Creating and Using a Test Fixture
- •Using Design Configurations
- •Ensuring HDL Design Unit Information Is Current
- •Preparing a Design for Simulation
- •Overview of AMS Design Prep
- •What AMS Design Prep Does to Prepare a Design for Simulation
- •When to Use AMS Design Prep
- •Specifying the Behavior of AMS Design Prep
- •Setting Options for Global Design Data
- •Specifying Global Signals
- •Specifying Design Variables
- •Specifying Model Files to Use During Elaboration
- •Running AMS Design Prep
- •The cds_globals Module
- •Global Signals
- •Design Variables
- •Setting Elaborator Options
- •Setting Simulator Options
- •Setting Waveform Selection Options
- •Creating Probes
- •Selecting Instances from the Virtuoso Schematic Editing Window
- •Selecting Buses
- •Selecting Instances from the Scope Navigator
- •Copying and Pasting Within Tables
- •Elaborating and Simulating
- •Viewing Messages
- •Plotting Waveforms After Simulation Ends
- •Starting the SimVision Waveform Viewer
- •Plotting Waveforms Selected on a Schematic (Direct Plot)
- •Using the amsdesigner Command
- •Examples
- •Producing Customized Netlists
- •Producing Customized Netlists
- •Identifying the Sections of a Netlist
- •Using ams.env Variables to Customize Netlists
- •Using Netlisting Procedures to Customize Netlists
- •Examples: Problems Addressed by Customized Netlists
- •Example: Adjusting Parameter Values to Account for Number of Fingers
- •Example: Using Symbols that Represent Verilog Test Code
- •Data Objects Supported for Netlisting
- •Netlister Object
- •Formatter Object
- •Cellview Object
- •Parameter Object
- •Instance Object
- •SKILL Functions Supported for Netlisting
- •Default Netlisting Procedures
- •Netlisting Helper Functions
- •Variables for ams.env Files
- •How AMS Designer Determines the Set of Variables
- •Why AMS Designer Uses ams.env Files, Not .cdsenv Files
- •List of ams.env Variables
- •Detailed Descriptions of ams.env Variables
- •aliasInstFormat
- •allowDeviantBuses
- •allowNameCollisions
- •allowSparseBuses
- •allowUndefParams
- •amsCompMode
- •amsDefinitionViews
- •amsEligibleViewTypes
- •amsExcludeParams
- •amsExpScalingFactor
- •amsLSB_MSB
- •amsMaxErrors
- •amsScalarInstances
- •amsVerbose
- •analogControlFile
- •bindCdsAliasLib
- •bindCdsAliasView
- •cdsGlobalsLib
- •cdsGlobalsView
- •checkAndNetlist
- •checkOnly
- •checktasks
- •compileAsAMS
- •compileExcludeLibs
- •compileMode
- •connectRulesCell
- •connectRulesCell2
- •connectRulesLib
- •connectRulesView
- •detailedDisciplineRes
- •discipline
- •excludeViewNames
- •hdlVarFile
- •headerText
- •ieee1364
- •ifdefLanguageExtensions
- •incdir
- •includeFiles
- •includeInstCdfParams
- •initFile
- •instClashFormat
- •iterInstExpFormat
- •language
- •lexpragma
- •logFileAction
- •logFileName
- •macro
- •maxErrors
- •messages
- •modifyParamScope
- •ncelabAccess
- •ncelabAnnoSimtime
- •ncelabArguments
- •ncelabCoverage
- •ncelabDelayMode
- •ncelabDelayType through ncelabMessages
- •ncelabMixEsc
- •ncelabModelFilePaths
- •ncelabNeverwarn through ncelabVipdelay
- •ncsimArguments
- •ncsimEpulseNoMsg through ncsimExtassertmsg
- •ncsimGUI
- •ncsimLoadvpi through ncsimStatus
- •ncsimTcl
- •ncsimUnbuffered through ncsimUseAddArgs
- •ncvhdlArguments
- •ncvlogArguments
- •ncvlogUseAddArgs
- •netClashFormat
- •netlistAfterCdfChange
- •netlistMode
- •netlistUDFAsMacro
- •neverwarn
- •noline
- •nomempack
- •nopragmawarn
- •nostdout
- •nowarn
- •paramDefVals
- •paramGlobalDefVal
- •pragma
- •processViewNames
- •prohibitCompile
- •runNcelab
- •runNcsim
- •scaddlglblopts
- •scaddltranopts
- •scale
- •scalem
- •scannotate
- •scapprox
- •scaudit
- •sccheckstmt
- •sccmin
- •sccompatible
- •scdebug
- •scdiagnose
- •scdigits
- •scerror
- •scerrpreset
- •scfastbreak
- •scgmin
- •scgmincheck
- •schomotopy
- •sciabstol
- •scic
- •scicstmt
- •scignshorts
- •scinfo
- •scinventory
- •sclimit
- •sclteratio
- •scmacromod
- •scmaxiters
- •scmaxnotes
- •scmaxrsd
- •scmaxstep
- •scmaxwarn
- •scmethod
- •scmodelevaltype
- •scmosvres
- •scnarrate
- •scnotation
- •scnote
- •scopptcheck
- •scpivabs
- •scpivotdc
- •scpivrel
- •scquantities
- •screadic
- •screadns
- •screlref
- •screltol
- •scrforce
- •scscale
- •scscalem
- •scscftimestamp
- •scscfusefileflag
- •scskipcount
- •scskipdc
- •scskipstart
- •scskipstop
- •scspeed
- •scstats
- •scstep
- •scstop
- •scstrobedelay
- •scstrobeperiod
- •sctemp
- •sctempeffects
- •sctitle
- •sctnom
- •sctopcheck
- •sctransave
- •scusemodeleval
- •scvabstol
- •scwarn
- •scwrite
- •simRunDirLoc
- •simVisScriptFile
- •status
- •templateFile
- •templateScript
- •timescale
- •update
- •use5xForVHDL
- •useDefparam
- •useNcelabNowarn
- •useNcelabSdfCmdFile
- •useNcsimNowarn
- •useNowarn
- •useScaddlglblopts
- •useScaddltranopts
- •useScic
- •useScreadic
- •useScreadns
- •useScwrite
- •useSimVisScriptFile
- •useProcessViewNamesOnly
- •verboseUpdate
- •vlogGroundSigs
- •vloglinedebug
- •vlogSupply0Sigs
- •vlogSupply1Sigs
- •wfDefaultDatabase
- •wfDefInstCSaveAll
- •wfDefInstCSaveLvl
- •wfDefInstSaveCurrents
- •wfDefInstSaveVoltages
- •wfDefInstVSaveAll
- •wfDefInstVSaveLvl
- •wfDefInstVSaveObjects
- •Updating Legacy SimInfo for Analog Primitives
- •The ams Fields
- •Special Handling of model, modelName, modelname, and componentName
- •Converting an Existing Analog Primitive Library
- •Designing for Virtuoso AMS Compliance
- •Terminals
- •Buses
- •Component Description Format
- •Parameters
- •Using Inherited Parameters
- •Using Cell Parameters
- •Parameterized Cells
- •VHDL-AMS Component Declarations
- •Properties
- •Properties to Avoid Completely
- •Avoid the portOrder Property Unless Required by Special Circumstances
- •Properties to Use Only in AMS Compatibility Mode
- •Properties That Have No Special Meaning in the AMS Environment
- •Properties Fully Supported by the AMS Environment
- •SKILL Functions
- •amsCheckCV
- •amsIsPresent
- •amsNetlist
- •amsProcessCellViews
- •amsUIOptionsForm
- •amsUIRunNetlisterForm
- •ddsCvtAMSTranslateCell
- •ddsCvtAMSTranslateLib
- •ddsCvtToolBoxAMS
- •vmsUpdateCellViews
- •Customization Variables
- •schHdlNotCreateDB
- •schHdlUseVamsForVerilog
- •vmsAnalysisType
- •vmsCreateMissingMasters
- •vmsNcvlogExecutable
- •vmsPortProcessing
- •vmsRunningInUI
- •vmsTemplateScript
- •vmsVerboseMsgLevel
- •Compiling Cadence-Provided Libraries
- •Purpose of the amsLibCompile Tool
- •Running the amsLibCompile Tool Manually
- •Example
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
connected to gnd!. Further assume that the G terminal is unconnected. The port connection list for the instance is written to the netlist as
(sig1,,sig2,cds_globals.\gnd! )
If the nmos device did not have a termOrder entry, the port connection list for the instance might be written to the netlist as
(.S(sig2),.D(sig1),.B(cds_globals.\gnd! ),.G())
The cdsSpice and spectreS (spectreSocket) simulators support programmable nodes, which are specified in thetermOrder entry as the argument to Progn (i.e., Progn (nodeName)).
Progn is not supported by the AMS netlister. Programmable nodes must be represented as extraTerminals in the ams simInfo. If Progn is encountered by the AMS simInfo from Spectre conversion tool, it issues a warning that manual editing of the ams simInfo is necessary.
Special Handling of model, modelName, modelname, and componentName
Although you can specify the model, modelName, modelname, and componentName parameters in the ams simInfo *Parameters fields, they are not written to the Verilog-AMS netlists. Instead, they change the module name of the instance to which they apply.
Another important difference in the treatment of model, modelName, modelname, and componentName is the mapping of the name. Names specified as values of themodel, modelName, and modelname parameters are checked for legality in the Verilog-AMS language. If necessary, these names are escaped. For example, if an instance has the property model=4nmos, 4nmos is mapped to Verilog-AMS as \4nmos, because Verilog-AMS identifiers cannot begin with a digit.
Note: If the device is a primitive that supports model passing semantics, the associated model, modelName, or modelname parameter must be listed in the instParameters field. This requirement holds even though model, modelName, and modelname parameters are not passed parameters and are treated specially.
Names specified as values of theams simInfo componentName field are not mapped. They are written to the netlist verbatim. This behavior supports the handling of SPICE and Spectre primitives that have the same names as Verilog-AMS built-in primitives. SPICE and Spectre primitives such as these can be supported by providing the complete set of formatting instructions via the termOrder field.
For additional information about these parameters, see “Passing Model Names as Parameters” on page 134.
April 2004 |
597 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
Converting an Existing Analog Primitive Library
Cadence provides a conversion tool that you can use to add ams simInfo information to an existing analog primitive library. This new information is derived from existing spectre simInfo data.
To use the conversion tool
1.From the CIW, choose Tools – Conversion Tool Box. The Conversion Tool Box window appears.
2.Click AMS simInfo from Spectre.
April 2004 |
598 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
The Create AMS from Spectre form appears.
3.From the Library name cyclic field, select the analog primitive library that you want to update.
4.Choose either Process all cells in the library or Process only cells with the following views.
April 2004 |
599 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
If you choose the latter, type in one or more views. Only cells that have at least one of the specified views are processed. Cells that do not have any of the specified views are unchanged and any existing ams simInfo is left untouched.
5.Enable Overwrite AMS simulation information if the library already has ams simInfo data.
6.In the Save existing information in the following file field, type the name of a backup file to be created by the conversion tool.
If necessary, you can use the backup file to restore the originalams simInfo.
7.Specify conditions for the conversion tool to use when determining whether a cell is a primitive.
The following conditions often indicate that a cell is a primitive and ought to be marked as such by having the isPrimitive field of theams section of the CDF simInfo set to t. However, this automatic determination is not always correct, so Cadence recommends that you check the accuracy. You might need to manually set isPrimitive to the opposite value.
a.Select If any of modelname/model/modelName are found if you want the netlister to use this condition for determining whether a cell is a primitive.
b.Select If the cell has a "spectre" view to have the netlister use this condition.
8.Click OK.
The AMS simInfo from Spectre conversion tool traverses the library, reporting which cells it creates ams simInfo data for and which ones it skips. When a cell is skipped, the AMS simInfo from Spectre conversion tool reports the reason.
The conversion tool first copies data from the fields of thespectre simInfo that are common to the ams simInfo:
■otherParameters
■instParameters
■componentName
■termOrder
■propMapping
It then examines the netlistProcedure field in thespectre simInfo data. The conversion tool recognizes and converts the following analogLib procedures:
■spectreCCPrim
April 2004 |
600 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
■spectreFsrcPrim
■spectreMindPrim
■spectreNportPrim
■spectrePolyCntrlPrim
■spectrePortPrim
■spectrePortSrcPrim
■spectrePwlsrcPrim
■spectreSCCPrim
■spectreSVCPrim
■spectreSrcPrim
■spectreVandISourcePrim
■spectreWindingPrim
The conversion tool segregates parameters referenced by these procedures into the various ams fields:instParameters, enumParameters, referenceParameters, stringParameters, and so on. If there is no netlistProcedure for a cell or if the netlistProcedure is not one of those listed above, the conversion tool leaves the copied spectre simInfo data in the corresponding common ams simInfo fields. In such cases, you must manually edit the information to ensure that the parameters are in the correct fields.
The AMS simInfo from Spectre conversion tool does not fill in theisPrimitive field of the AMS simulation information. If the library you are converting contains components that are primitives, you need to set the value of the isPrimitive field for those components to t. For more information, see “isPrimitive” on page 592.
Finally, if the cell has a spectre view, the conversion tool examines it to determine if it has more terminals than the symbol view. If so, an entry is made in the extraTerminals field of the ams simInfo that represents the additional terminals.
To manually edit ams simInfo data,
1.From the CIW, choose Tools – CDF – Edit. The Edit Component CDF window opens.
2.Fill in the library and cell information.
3.Set CDF Type to Base.
April 2004 |
601 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Updating Legacy SimInfo for Analog Primitives
Except for the amsExcludeParams parameter, the AMS environment does not use
Library or User CDF information.
4.Click the Edit button in the Simulation Information part of the form.
The Edit Simulation Information form appears.
If spectre simInfo data existed when the conversion tool ran and the netlistProcedure
field was empty or contained a procedure other than those listed above, theams fields that correspond to spectre simInfo fields contain data copied directly.
5.Examine the instParameters and otherParameters fields for parameters that should be moved to the arrayParameters, enumParameters, stringParameters, or referenceParameters fields and make the appropriate changes.
April 2004 |
602 |
Product Version 5.3 |
