- •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
Working with Schematic Designs
input inSig; input trigger; output holdSig;
electrical gnd, inSig, holdSig; real value;
analog begin
// A digital event to which analog is made sensitive @(posedge(trigger))
value = V(inSig);
V(holdSig) <+ transition( value, 1n, 2.5n);
end
endmodule
When you save the module and quit the text editor window, the AMS environment checks the syntax in the text file. If the syntax checker finds any errors or problems, a dialog box appears with a message like the following:
Parsing of verilog-ams file failed:
Do you want to view the error file and re-edit HDL?
Click Yes to display the HDL Parser Error/Warnings window and to reopen the module file for editing.
Editing Verilog-AMS and VHDL-AMS Cellviews Outside of the AMS Environment
You can create Verilog (digital), Verilog-AMS, VHDL (digital) and VHDL-AMS source files either inside or outside of the AMS environment. However, if you use source files created outside of the AMS environment you give up the automatic cross-checking among views that the environment performs. For example, if, outside the environment, you edit the port list of a text view, you must remember to update the corresponding symbol view. If you make a similar change within the environment, AMS Designer automatically prompts you to update the symbol.
If you do create HDL views outside of the environment, ensure that they are compiled by choosing the AMS Design Prep compile all option. For example, from the Command
Interpreter Window (CIW) choose AMS – Design Prep to open the AMS Design Prep form.
In that form, select Compile and All, and then click Run.
Descend Edit
To examine the views below the symbols while viewing a schematic, choose Design –
Hierarchy – Descend Edit. For example, there might be three view choices: symbol,
April 2004 |
160 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
verilogAMS, and daconv_behav. If you choose verilogAMS, a text window appears, as shown in the following figure.
Creating a Verilog-AMS Cellview
To create a new component with only a Verilog-AMS cellview,
1. From the CIW, choose File – New – Cellview.
April 2004 |
161 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
The Create New File form appears.
2.Specify the Cell Name (component).
3.Set the Tool cyclic field toVerilogAMS-Editor.
4.In the View Name field, type the name for the new cellview. To comply with AMS guidelines, the name should be all lower-case.
5.Click OK.
April 2004 |
162 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
A text editor window appears for the new module. If the cell name you typed in the Cell
Name field is new, an empty template appears. If the name you typed already has available views, a template appears with pin and parameter information in place.
The module must have the same name as the cell.
The UNIX file directory has the same name as the view name.
6.Modify any existing pin or parameter information as necessary. You can add unique or shared parameters as required by your design.
7.Complete the module. Be sure that the module name remains the same as the name of the cell.
8.Save the module, and quit the text editor window.
Creating a VHDL-AMS Cellview
To create a new component with only a VHDL-AMS cellview,
1. From the CIW, choose File – New – Cellview.
April 2004 |
163 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
The Create New File form appears.
2.Specify the Cell Name (component).
3.Set the Tool cyclic field toVHDLAMS-Editor.
4.In the View Name field, type the name for the new cellview. To comply with AMS guidelines, the name should be all lower-case. If the view name you enter is entity, the created view is a VHDL-AMS entity. If the view name you enter is anything other than entity, the created view is an architecture.
5.Click OK.
A text editor window appears for the new module. If the cell name you typed in the Cell Name field is new, an empty template appears. If the name you typed already has
April 2004 |
164 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
available views and you are creating an entity view, a template appears with pin and parameter information in place.
The entity has the same name as the cell.
The UNIX file directory has the same name as the view name.
6.Modify any existing pin or parameter information as necessary. You can add unique or shared parameters as required by your design.
7.Complete the module. Be sure that the architecture or entity name remains the same as the name of the cell.
8.Save the module, and quit the text editor window.
Creating a Symbol Cellview from a Verilog-AMS Cellview
If you created a Verilog-AMS cellview without creating a symbol, or if you have a component with only a Verilog-AMS cellview, you can add a symbol view by following these steps:
1.Choose File – Open from the CIW. The Open File form appears.
2.Open any schematic or symbol cellview.
April 2004 |
165 |
Product Version 5.3 |
Virtuoso AMS Environment User Guide
Working with Schematic Designs
The editor appears.
3.Choose Design – Create Cellview – From Cellview.
The Cellview From Cellview form appears.
4.Fill in the Library Name and Cell Name fields.
If you do not know this information, click Browse, which opens the Library Browser, so you can browse available libraries and components.
5.In the From View Name cyclic field, select the Verilog-AMS view.
6.In the Tool / Data Type cyclic field, chooseComposer-Symbol.
7.In the To View Name field, typesymbol.
8.Click OK.
The Symbol Generation Options form appears.
9.Click OK.
A Symbol Editor window appears.
10.Edit the symbol, save it, and close the Symbol Editor window.
April 2004 |
166 |
Product Version 5.3 |