Translating Commands and Functions

This chapter provides information on translating individual commands, functions, and the binning process from Spectre and SPICE to Advanced Design System.

Commands, Functions, and Binning for Spectre

The following table displays a list of commands and functions that are supported by the Netlist Translator.

Command / Function Description
ends End of Subcircuit
check Ignored by ADS
include Include File
info Ignored by ADS
library Library File
parameters Parameter
subckt, ends Subcircuit
Other Functions Function Mapping in the spectrefunc.rul File

If the translator reads a command that is not recognized or supported, the translation log file will include a warning such as:

WARNING: Skipping unsupported statement.ALTER, line 10.

alter and altergroup

The ADS simulator does not have a comparable command. Translation will terminate when this line is found. Everything before it will be translated. Everything after it will be ignored.

check

All check statements will be ignored by the Netlist Translator.

ends

See subckt, ends.

include

This line identifies another Spectre file that needs to be read by the translator. The contents are integrated directly into the translated design as appropriate.

Spectre Netlist Syntax:

include file_name

ADS Netlist Syntax:

There is no ADS syntax since the referenced file is read and the contents are processed as part of the parent file.

ADS Schematic Symbol:

There is no ADS symbol since the referenced file is read and the contents are processed as part of the parent file.

Parameters:

name = Legal file name including file extension.

Comments:

The include statement is used in Spectre to insert the contents of another file. In ADS, separate include statements are not created.
Instead, the collection of files are processed as if they were one long file. All circuits defined in an include statement are read by the translator,
but a schematic will only be created for those that are referenced in the design hierarchy.

To force creation of all schematics for all subcircuits in an include file, import the include file separately. Note that the top line of an include file may not be a comment line, so to read it as a stand-alone file, insert a comment line or a blank line as line 1, if the existing line 1 has information that needs to be processed. Alternately, you may uncheck the box in the import dialog options page to indicate that the first line is not a comment (refer to Setting the Import Options), or use the command line argument -l (refer to Executing the Nettrans Command) to deselect the First line is a comment option.

For tips on debugging the translation of a large set of nested include files, refer to Troubleshooting.

info

All info statements will be ignored by the Netlist Translator.

library

This line indicates that another Spectre file is to be read by the translator. The contents are integrated directly into the translated design as appropriate.

Spectre Netlist Syntax:

library library_name
section section_name_
<statements>
endsection [section_name]
section [another_name]
<statements>
endsection [another_name]
library library_name

ADS Netlist Syntax:

No ADS netlist syntax because the contents are just read and processed like the include file.

ADS Schematic Symbol:

No ADS Schematic Symbol because the contents are just read and processed like the include file.

Parameters:

entryname = Name of library within specified file
filename = Legal file name including extension.
dirpath = Optional path to library file. There is no space between dirpath and filename when dirpath is given.

Comments:

The library statement is used in Spectre to insert the contents of another file. In ADS, separate include statements are not created. Instead, the collection of files are processed as if they were one long file. All circuits defined in a library statement are read by the translator, but a schematic will only be created for those that are referenced in the design hierarchy.

To force creation of all schematics for all subcircuits in a library file, import the library file separately. Note that the top line of a library file may not be a comment line, so to read it as a stand-alone file, insert a comment line or a blank line as line 1, if the existing line 1 has information that needs to be processed. Alternately, you may uncheck the box in the import dialog options page to indicate that the first line is not a comment (refer to Setting the Import Options), or use the command line argument -l (refer to Executing the Nettrans Command) to deselect the First line is a comment option.

For a description of the -models command, refer to Executing the Nettrans Command. This command can be used to read a model file and create a separate ADS netlist file for each model.

Not supported:

The ADS translator does not automatically read nom.lib and it does not use the search path. All libraries must be specified explicitly with a full path if the library file is not in the working directory. If the file nom.lib is needed, an include statement should be added to the main source file to instruct the translator to read that file.

The .OPTIONS SEARCH statement is not supported by the translator. All library paths must be explicitly specified.

parameters

This line is translated as a name=value parameter.

Spectre Syntax:

parameter name=value

ADS Netlist Syntax:

name=value

ADS Schematic Symbol:

Parameters:

name = Parameter name
value = Parameter value

subckt, ends

This line is translated as a parametric subnetwork.

Note
The keyword inline is optional in the syntax below. If the keyword exists in the Spectre input, it will be translated in the ADS netlist.

inline subckt subname ( node1...nodeN )
parameters name=value
end subname

inline define subname ( n1... )
parameters name=value
end subname

ADS Schematic Symbol:

Parameters:

subname = Subnetwork name
n1* = Node names
name = Parameter name
value = Parameter default value
ends = Spectre subcircuit definitions must end with an ends statement.

Comments:

For more information on defining subcircuit parameters, refer to Using the NetlistInclude Component.

Other Functions

Functions such as log10(x) and ln(x) are mapped in the spectrefunc.rul file. Any function that requires mapping into the equivalent ADS function is entered into this file. For more information about function mapping, see User Defined Models and Parameter Mapping Rules.

Commands and Functions for SPICE

Command / Function Description
.ALIASES and .ENDALIASES Aliases and Endaliases
alter and altergroup Alternate
.END End of Circuit
.ENDL End of Library
.ENDS or .EOM End of Subcircuit
.IC Initial Bias Point Condition
.INC[LUDE] Include File
.LIB, .ENDLIB Library File
.MACRO, .ENDM Macro
.MODEL Model
.NODESET Set the Approximate Node Voltage for the Bias Point
.NOISE Noise Analysis
.OP Bias Point
parameters Analysis Options
parameters Parameter
subckt, ends Subcircuit
.TEMP Temperature
.TRAN Transient Analysis
.FUNC User-defined function (PSpice only)

If the translator reads a command that is not recognized or supported, the translation log file will include a warning such as:

WARNING: Skipping unsupported statement.ALTER, line 10.

.ALIASES and .ENDALIASES

This command block is recognized but not translated. Everything between the .ALIASES and .ENDALIASES lines is ignored.

.ALTER

The ADS simulator does not have a comparable command. Translation will terminate when this line is found. Everything before it will be translated. Everything after it will be ignored.

.DCVOLT

The .DCVOLT statement is processed exactly the same as a .IC statement. For more information, refer to .IC.

.END

All processing stops when a .END statement is encountered. Comments and any other information following the .END statement are discarded.

.ENDL

See .LIB, .ENDLIB.

.ENDS or .EOM

See subckt, ends or .MACRO, .ENDM.

.IC

This line is translated as an initial condition control element. It sets the initial conditions for a transient simulation.

Example SPICE Command Line:

.IC V(11)=5 V(4)=-5 V(2)=2.2

SPICE Netlist Syntax:

.ic v(node)=val[v(node)=val ]*]

ADS Netlist Syntax:

InitCond:instanceNameNodeName[1]=nodeV[1]=val
NodeName[2]=node V[2]=val

ADS Schematic Symbol:

Parameters:

node = Node number
val = Voltage at the specified node.
instanceName = Unique component name. This is not provided by SPICE so it is automatically generated by the translator.

Comments:

The following PSpice syntax variations are not translated:

.IC V(inPlus,inMinus)=1e-3
.IC I(L1)=2uAmp

.INC[LUDE]

This line identifies another SPICE file that needs to be read by the translator. The contents are integrated directly into the translated design as appropriate.

Example SPICE Command Line:

.INC vars.inc

SPICE Netlist Syntax:

.INC name

ADS Netlist Syntax:

There is no ADS syntax since the referenced file is read and the contents are processed as part of the parent file.

ADS Schematic Symbol:

There is no ADS symbol since the referenced file is read and the contents are processed as part of the parent file.

Parameters

name = Legal file name including file extension.

Comments:

The .INC statement is used in SPICE to insert the contents of another file. In ADS, separate include statements are not created. Instead, the collection of files are processed as if they were one long file. All circuits defined in a .INC statement are read by the translator, but a schematic will only be created for those that are referenced in the design hierarchy.

To force creation of all schematics for all subcircuits in an include file, import the include file separately. Note that the top line of an include file may not be a comment line, so to read it as a stand-alone file, insert a comment line or a blank line as line 1, if the existing line 1 has information that needs to be processed. Alternately, you may uncheck the box in the import dialog options page to indicate that the first line is not a comment (refer to Setting the Import Options), or use the command line argument -l (refer to Executing the Nettrans Command) to deselect the First line is a comment option.

For tips on debugging the translation of a large set of nested include files, refer to Troubleshooting.

.LIB, .ENDLIB

This line indicates that another SPICE file is to be read by the translator. The contents are integrated directly into the translated design as appropriate.

Example SPICE Command Line:

PSpice: .LIB linear.lib
HSpice library call: .LIB 'file1' mos8
HSpice library definition: .LIB mos8

SPICE Dialect and Netlist Syntax

Spice2/3: Not supported
PSpice: .LIB name
HSpice library call: .LIB '<dirpath>filename' entryname
HSpice library definition: .LIB entryname

ADS Netlist Syntax:

No ADS netlist syntax because the contents are just read and processed like the include file.

ADS Schematic Symbol:

No ADS Schematic Symbol because the contents are just read and processed like the include file.

Parameters:

entryname = Name of library within specified file
filename = Legal file name including extension.
dirpath = Optional path to library file. There is no space between dirpath and filename when dirpath is given.

Comments:

The .LIB statement is used in SPICE to insert the contents of another file. In ADS, separate include statements are not created. Instead, the collection of files are processed as if they were one long file. All circuits defined in a .LIB statement are read by the translator, but a schematic will only be created for those that are referenced in the design hierarchy.

To force creation of all schematics for all subcircuits in a library file, import the library file separately. Note that the top line of a library file may not be a comment line, so to read it as a stand-alone file, insert a comment line or a blank line as line 1, if the existing line 1 has information that needs to be processed. Alternately, you may uncheck the box in the import dialog options page to indicate that the first line is not a comment (refer to Setting the Import Options), or use the command line argument -l (refer to Executing the Nettrans Command) to deselect the First line is a comment option.

For a description of the -models command, refer to Executing the Nettrans Command. This command can be used to read an HSpice model file and create a separate ADS netlist file for each model.

Not supported:

PSpice has a master library file nom.lib that is used by default in PSpice if no library is specified. It also has a LIBPATH variable in a file called msim.ini. This search path is used in PSpice if the library is not in the working directory. The ADS translator does not automatically read nom.lib and it does not use the search path. All libraries must be specified explicitly with a full path if the library file is not in the working directory. If the file nom.lib is needed, an include statement should be added to the main SPICE file to instruct the translator to read that file.

The HSpice .OPTIONS SEARCH statement is not supported by the translator. All library paths must be explicitly specified.

.MACRO, .ENDM

The .MACRO statement is processed exactly the same as a .SUBCKT statement. For more information, refer to subckt, ends.

.MODEL

A .MODEL statement is translated to a corresponding model if a compatible model exists in ADS. For translation details of specific models, refer to Translating a Model.

Example SPICE Command Line:

.MODEL dmodel D is=1e-14

SPICE Netlist Syntax:

.model name type [param = value* ]

ADS Netlist Syntax:

model name type [param = value* ]

ADS Schematic Symbol:

.NODESET

This line is translated as a NodeSet control element.

Example SPICE Command Line:

.NODESET V(12)=4.5 V(4)=2.23

SPICE Netlist Syntax:

.nodeset v( node )=val[v(node)=val ]*

ADS Netlist Syntax:

NodeSet:instanceNameNodeName[1]=nodeV[1]=val
[NodeName[2]=node V[2]=val]

ADS Schematic Symbol:

Parameters:

node = Node name
val = Voltage at the specified node.
instanceName = Unique component name. This is not provided by SPICE so it is automatically generated by the translator.

Unsupported syntax:
HSpice .NODESET V(5:SETX)=3.5V

.NOISE

This line is translated as a noise stimulus control element.

Example SPICE Command Line:

.NOISE V(\5) VIN DEC 10 1KHz 100MHz

SPICE Netlist Syntax:

Spice2/3: .NOISE v( out )<,ref> srcname [dec | oct | lin] numpoints fstart fstop [ pts_out ]
PSpice: .NOISE v(out, <,ref>) name=value
HSpice: .NOISE v(out) srcname numpoints

ADS Netlist Syntax:

AC:cmp99 SweepVar="freq" SweepPlan="freqstim" CalcNoise=yes\
NoiseNode="out"
SweepPlan:freqstim Start=fstart Stop=fstop [Dec=ptsperdec | Oct=ptsperoct/log(2) | Lin=numpoints]

ADS Schematic Symbol:
Parameters:

dec = Sweep by decades
oct = Sweep by octaves
lin = Linear sweep
numpoints = Integer number of points in the sweep. If sweeptype is dec or oct, then this is the number of points per decade or octave.
fstart = Start frequency
fstop = Stop frequency
poi = List of points

Comments:

HSpice has extended syntax formats that are not supported by the translator. All extra keywords and values are ignored.
The srcname allows SPICE to compute the output noise referred back to an input node: this usage is ignored by the translator. The optional pts_out parameter causes a printed output to occur for one of every pts_out frequency points; this is also ignored by the translator.

.OP

This line is translated as a DC analysis control.

.OP

.OP

DC:cmp1

ADS Schematic Symbol:

h5. Parameters:

None. Any optional parameters are ignored.

Comments:

The .OP function in SPICE invokes the simulator to calculate the DC operating point of the circuit. It is sometimes placed in a netlist just to perform the simplest possible analysis to verify that a dc solution can be found. In ADS, this is accomplished with a simple dc analysis with no parameters.

.OPTIONS

The only options currently translated are used to set other values on specific components.

Example SPICE Command Line:

.OPTIONS TNOM=25 DCAP=1 WL

SPICE Netlist Syntax:

.OPTIONS [option name]* [option_name=value]*

Parameters:

tnom = Default nominal temperature. Used for models if TNOM is not specified. ADS does not have a global TNOM parameter. If TNOM is specified on the .OPTIONS statement, the value is copied to all models if the nominal temperature is not specified directly on the model. Nominal temperature parameters are as follows:

BSIM1, BSIM2........Temp
MOS_Model9...........Tr
All others......................Tnom or Tref

dcap = Controls the forward bias capacitance of the diode. ADS does not have an equivalent global parameter, so this is used by the translator to set Fc on the BJT model and Fc and Fcsw on the Diode model. If DCAP is not set to 1, (.OPTIONS DCAP=1), Fc and Fcsw will be set to 0 on the Diode and BJT models.

wl = If values without parameter names are given for Mosfet length and width parameters, the first is assumed to be length. If the wl parameter is present with no value, or the value is set to 1, the order is reversed.

The following parameters are default values for mosfets. If no value is given on a mosfet device for a certain parameter, the SPICE simulator uses the default given here. However, the value of the MOSFET ACM parameter affects the recognition of these values. There is no global ADS equivalent for these parameters and they are not currently translated.

defl = Default value for l
defw = Default value for w
defad = Default value for ad
defas = Default value for as
defnrd = Default value for nrd
defnrs = Default value for nrs
defpd = Default value for pd

The following SPICE tolerances have counterparts in ADS on the Options control element but are not set by the translator. They can be set manually after translation.

SPICE ADS

pivtol PivAbsThresh
pivrel PivotRelThresh
vntol V_AbsTol
abstol I_AvsTol
reltol V_RelTol

Comments:

For large RFIC designs, the I_RelTol and V_RelTol should be set to a larger value than the default 1e-6. 1e-3 is a better start value and is the default value for SPICE based simulators. The translator will not set a default value for these.

.PARAM

This line is translated as a name=value parameter.

Example SPICE Command Line:

.PARAM name=value

SPICE Dialect and Netlist Syntax:

Spice2/3: .PARAM name=value
PSpice: .PARAM name=value (expressions must be in curly brackets)
HSpice: .PARAM name=value (expressions must be in single quotes)

ADS Netlist Syntax:

name=value

ADS Schematic Symbol:

Parameters:

name = Parameter name
value = Parameter value

.SUBCKT

ENDS

This line is translated as a parametric subnetwork.

Example SPICE Command Line:

.SUBCKT OPAMP 1 2 3 4
.ENDS

SPICE Dialect and Netlist Syntax:

Spice2/3:

.SUBCKTsubname [ n1*]
.ENDS [subname]

PSpice:

.SUBCKT subname[n1*] [OPTIONAL:interface node = default value ]
[PARAMS: name=value*] [TEXT: name=textvalue]
.ENDS

HSpice:

.SUBCKT subname[ n1* ] [name=value*]
.ENDS

ADS Netlist Syntax

define subname (n1...)
parameters name=value
end subname

ADS Schematic Symbol:

Parameters:

subname = Subnetwork name
n1* = Node names
name = Parameter name
value = Parameter default value
.ENDS = SPICE subcircuit definitions must end with a .ENDS statement.

Comments:

Spice 3:

Subcircuits may be nested in the SPICE file; however, ADS does not allow this. The translator handles this by writing each subcircuit definition separately in order of occurrence. Line by line comparison with the original netlist will be harder in this case since the lines will not match up directly.

PSpice:

OPTIONAL and TEXT parameters are ignored by the translator.
For more information on defining subcircuit parameters, refer to Using the NetlistInclude Component.

.TEMP

Note
The translator does not currently translate the TEMP statement. Temp enables you to maintain control over this setting at the highest level of your design.

To set the simulation temperature, place an OPTIONS element in the highest level of your schematic design, or use an Options statement in the netlist as shown below in ADS Netlist Syntax.

Example SPICE Command Line:

.TEMP 25

SPICE Netlist Syntax:

.TEMP _tempval

ADS Netlist Syntax:

Options:options1 Temp\=tempval

ADS Schematic Symbol:

Parameters:

tempval = Temperature in degrees Celsius.

Comments:


.TRAN

This line is translated as a transient analysis control element.

Example SPICE Command Line:

.TRAN 1nS 1000nS 500nS 1nS

SPICE Dialect and Netlist Syntax:

Spice2/3:
.TRAN tstep tstop [tstart[tmax]] [uic]

PSpice:
.TRAN[/op] tstep tstop [tstart [tmax]] [SKIPBP]

HSpice: .TRAN var1 START= tstart STOP= tstop STEP= tstep
OR .TRAN tstep tstop [tstep2 tstop2 ...] [START=tstart] [UIC]
OR .TRAN DATA=dataname

ADS Netlist Syntax:

Tran:Tran1 StopTime=tstop MaxTimeStep=tmax [StartTime=tstart ]

ADS Schematic Symbol:

Parameters:

tstep = Time step between output points.
tstop = Final time.
tstart = Initial time, assumed zero if omitted.
tmax = Maximum step size between simulation points.
var1 = Voltage or current source (ignored).

Comments:

.tran is used to perform a time-domain transient analysis.

Optional UIC keyword is ignored by the translator.
MaxTimeStep is calculated by the translator as the smallest of tstep, (tstop-tstart/50 * tmax)

PSpice optional /OP and SKIPBP are ignored by the translator.

HSpice tstep and tstop are ignored for n>1. SWEEP, SWEEP MONTE, OPTIMIZER and DATA keywords are ignored by the translator.

.FUNC

This is supported for PSpice only.

PSpice Netlist Format:

.FUNC a(b,c) {b+c}

ADS Netlist Format:

a(b,c)=b+c

The .FUNC statement in PSpice is used to define a single line user-defined function. This will be imported as shown above.

 

Privacy Statement  | Terms of Use  | Legal | Contact Us  | © Agilent 2000-2008 

Contents
Additional Resources