Altium Wiki

Information and resources for electronic product designers

Skip to end of metadata
Go to start of metadata
Summary

This application note provides information on the level of support available for using PSpice® models when performing circuit simulations in Altium Designer.

 

The PSpice® simulation model format is the format of choice for many device manufacturers. Altium Designer's Mixed-Signal Circuit Simulator has strong support for PSpice models. The following sections provide summary information on:

  • Changes made to existing Spice syntax to facilitate using expressions and global parameters to represent values in a PSpice-modeled circuit.
  • Changes made to existing Spice3f5 devices in order to make them PSpice compatible.

 

Spice Syntax Changes

To facilitate compatibility with PSpice, changes have been made to the existing Spice syntax. These changes include support for additional PSpice-based functions and operators, as well as the addition of global parameters.

Function Support

The following additional functions are supported:

ARCTAN(x)

 

returns the inverse tangent of x

ATAN2(y, x)

 

returns the inverse tangent of y/x

IF(t, x, y)

 

If t is TRUE then x, ELSE y

LIMIT(x, min, max)

 

while min < x < max, x is returned
If x < min, min is returned
If x > max, max is returned

LOG10(x)

 

returns the decimal logarithm of x

MAX(x, y)

 

returns the maximum of x and y

MIN(x, y)

 

returns the minimum of x and y

PWR(x, y)

 

returns x to the power of y

PWRS(x, y)

 

returns signed x to the power of y:
If x > 0, the result is positive
If x < 0, the result is negative.

SCHEDULE(x1, y1,...xn, yn)

 

allows you to control the value of y based on time x. An entry for time = 0s must be entered.
From time = x1 to x2, returns y1
From time = x2 to x3, returns y2, and so on.

SGN(x)

 

returns the sign of x (a.k.a. the signum function).
If x < 0, returns -1
If x = 0, returns 0
If x > 0, returns 1

STP(x)

 

unit step function.
If x > 0, returns 1
If x < 0, returns 0

TABLE(x, x1, y1,...xn, yn)

 

allows you to construct a look-up table, returning the y value corresponding to x when all xn, yn points are plotted and connected by straight lines.
If x > than the largest x value in the table, then the y value associated to that x value will be returned.
If x < than the smallest x value in the table, then the y value associated to that x value will be returned.

Additional Operator Support

The following additional operators are supported:
** * (exponentiation)

  • == (equality test)
  • != (non-equality test)
  • & (Boolean AND)
  • | (Boolean OR)

In-Line Comment Support

The PSpice in-line comment character is supported. This character - a semicolon ; - is treated as the end of a line in the circuit description. Any text after this character (on the same line) is treated purely as a comment and therefore ignored by the Simulator, which moves on to the next line in the circuit description.
The following example shows a single in-line comment, where comment text is added to one line in the circuit description:
R2 2 4 6 ; R2 is a feedback resistor
If you want to add comment text over multiple lines (creating trailing in-line comments), simply use the semicolon inline comment character to mark the beginning of each subsequent comment line:
R2 2 4 6 ; R2 is a
; feedback resistor
An in-line comment can be used to replace a standard comment line, which must start with the * character in the first column of the line. This can improve the readability of your circuit description.

.PARAM Support

The PSpice .PARAM statement is supported. This statement defines the value of a parameter, allowing you to use a parameter name in place of numeric values for a circuit description. Parameters can be constants, expressions or a combination of the two. A single parameter statement can include reference to one or more additional parameter statements.
In addition, the following three internal variables (predefined parameters) are available for use in expressions:

GMIN

 

shunt conductance for semiconductor p-n junctions.

TEMP

 

temperature.

VT

 

thermal voltage.

Global Parameters

Altium Designer's Circuit Simulator supports the use of global parameters and equations. Use a global parameter in an equation and then use that equation in a component value on your schematic. Alternatively, define the equation as a global parameter and then reference the global parameter from a component value.
Simply include the expression or parameter name within curly braces {} - when the Simulator detects this it will attempt to evaluate it, checking the Global Parameters page of the Simulator's Analyses Setup dialog for the definition of any part of the expression that cannot be immediately resolved.

 

Spice Model Changes

To make the existing Spice3f5 device models compatible with PSpice, changes have been made to the general form for a device and/or additional parameter support has been added for use in a linked model file. The following sections summarize the changes that have been made.

Tip:

When browsing the subsequent sections, the following parameters - common to most devices in PSpice - are not supported:
T_ABS
T_MEASURED
T_REL_GLOBAL
T_REL_LOCAL.

Capacitor

The Netlist Template Format for this device remains unchanged:
@DESIGNATOR %1 %2 &VALUE &MODEL ?LENGTH|L=@LENGTH| ?WIDTH|W=@WIDTH| ?"INITIAL VOLTAGE"|IC=@"INITIAL VOLTAGE"|
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

C

 

capacitance multiplier. (Default = 1).

TC1

 

linear temperature coefficient (in ˚C-1). (Default = 0).

TC2

 

quadratic temperature coefficient (in ˚C-2). (Default = 0).

VC1

 

linear voltage coefficient (in Volt-1). (Default = 0).

VC2

 

quadratic voltage coefficient (in Volt-2). (Default = 0).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName CAP(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (&MODEL) to reference the required model in the linked model file.
  • Model Parameters are a list of supported parameters for the model, entered with values as required.

Diode

The Netlist Template Format for this device remains unchanged:
@DESIGNATOR %1 %2 @MODEL &"AREA FACTOR" &"STARTING CONDITION" ?"INITIAL VOLTAGE"|IC=@"INITIAL VOLTAGE"| ?TEMPERATURE|TEMP=@TEMPERATURE|
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

IBVL

 

low-level reverse breakdown knee current (in Amps). (Default = 0).

IKF

 

high-injection knee current (in Amps). (Default = infinite).

ISR

 

recombination current parameter (in Amps). (Default = 0).

NBV

 

reverse breakdown ideality factor. (Default = 1).

NBVL

 

low-level reverse breakdown ideality factor. (Default = 1).

NR

 

emission coefficient for isr. (Default = 2).

TBV1

 

bv temperature coefficient - linear (in ˚C-1). (Default = 0).

TBV2

 

bv temperature coefficient - quadratic (in ˚C-2). (Default = 0).

TIKF

 

ikf temperature coefficient - linear (in ˚C-1). (Default = 0).

TRS1

 

rs temperature coefficient - linear (in ˚C-1). (Default = 0).

TRS2

 

rs temperature coefficient - quadratic (in ˚C-2). (Default = 0).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName D(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (@MODEL) to reference the required model in the linked model file.
  • Model Parameters are a list of supported parameters for the model, entered with values as required.

Inductor

The existing model has been changed to support the general PSpice model form:
L<name> <Plus node> <Minus node> [model name] <value> [IC = <initial value>]
A PSpice model of this type should be linked to a schematic component using a model file. Simply specify the model in a model file (*.mdl) then, in the Sim Model dialog, set the Model Kind to General and the Model Sub-Kind to Generic Editor. The Netlist Template Format should then be entered as follows:
@DESIGNATOR %1 %2 @VALUE @MODEL ?"INITIAL CURRENT"|IC=@"INITIAL CURRENT"|
The value for the INITIAL CURRENT parameter is entered on the Parameters tab of the Sim Model dialog.
The netlist format for a PSpice Inductor model is specified using the Generic Editor due to the fact that the existing Spice3f5 Inductor model does not support use of a linked model file.
For the circuit to be parsed correctly, ensure that the Spice Prefix field is set to L.

In the Model Name field, enter the name specified for the model in the model file. Use the options in the Model Location region of the dialog to point to the required file. Click on the Model File tab to view the content of the model file.
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

L

 

inductance multiplier. (Default = 1).

IL1

 

linear current coefficient (in Amp-1). (Default = 0).

IL2

 

quadratic current coefficient (in Amp-2). (Default = 0).

TC1

 

linear temperature coefficient (in ˚C-1). (Default = 0).

TC2

 

quadratic temperature coefficient (in ˚C-2). (Default = 0).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName IND(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (@MODEL) to reference the required model in the linked model file.
  • Model Parameters are a list of supported parameters for the model, entered with values as required.

Current-Controlled Switch

The Netlist Template Format for this device remains unchanged:
V@DESIGNATOR %1 %2 0V
@DESIGNATOR %3 %4 V@DESIGNATOR @MODEL &"INITIAL CONDITION"
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

IOFF

 

control current for OFF state (in Amps). (Default = 0).

ION

 

control current for ON state (in Amps). (Default = 1E-3).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName ISWITCH(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (@MODEL) to reference the required model in the linked model file.
  • Model Parameters are a list of supported parameters for the model, entered with values as required.

Voltage-Controlled Switch

The Netlist Template Format for this device remains unchanged:
@DESIGNATOR %3 %4 %1 %2 @MODEL &"INITIAL CONDITION"
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

VOFF

 

control voltage for OFF state (in Volts). (Default = 0).

VON

 

control voltage for ON state (in Volts). (Default = 1).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName VSWITCH(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (@MODEL) to reference the required model in the linked model file.
    Model Parameters are a list of supported parameters for the model, entered with values as required.

JFET

The Netlist Template Format for this device remains unchanged:
@DESIGNATOR %1 %2 %3 @MODEL &"AREA FACTOR" &"STARTING CONDITION" ?"INITIAL D-S VOLTAGE"|IC=@"INITIAL D-S VOLTAGE", @"INITIAL G-S VOLTAGE"| ?TEMPERATURE|TEMP=@TEMPERATURE|
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

ALPHA

 

ionization coefficient (in Volt-1). (Default = 0).

BETATCE

 

BETA exponential temperature coefficient (in Amp/Volt2). (Default = 1E-4).

ISR

 

gate p-n recombination current parameter (in Amps). (Default = 0).

M

 

gate p-n grading coefficient. (Default = 0.5).

N

 

gate p-n emission coefficient. (Default = 1).

NR

 

emission coefficient for isr. (Default = 2).

VK

 

ionization knee voltage (in Volts). (Default = 0).

VTOTC

 

VTO temperature coefficient (in Volt/˚C). (Default = 0).

XTI

 

IS temperature coefficient. (Default = 3).

Where a parameter has an indicated default, that default will be used if no value is specifically entered.
The format for the PSpice model file is:
.MODEL ModelName NJF(Model Parameters) - N-channel JFET
.MODEL ModelName PJF(Model Parameters) - P-channel JFET
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (@MODEL) to reference the required model in the linked model file.
    Model Parameters are a list of supported parameters for the model, entered with values as required.

Resistor

The existing model has been changed to support the general PSpice model form:
R<name> <Plus node> <Minus node> [model name] <value> [TC = <TC1> [,<TC2>]]

A PSpice model of this type should be linked to a schematic component using a model file. Simply specify the model in a model file (*.mdl) then, in the Sim Model dialog, set the Model Kind to General and the Model Sub-Kind to Generic Editor. The Netlist Template Format should then be entered as follows:
@DESIGNATOR %1 %2 &MODEL &VALUE ?TC1/TC=@TC1?TC2|, @TC2| /
Although you could use the existing Spice3f5 Resistor (Semiconductor) model - as this model type allows use of a linked model file - specification of the netlist format for a PSpice Resistor model using the Generic Editor allows you to make use of the additional PSpice parameters ([TC = <TC1> [,<TC2>]]).
For the circuit to be parsed correctly, ensure that the Spice Prefix field is set to R.
In the Model Name field, enter the name specified for the model in the model file. Use the options in the Model Location region of the dialog to point to the required file. Click on the Model File tab to view the content of the model file.
The following additional model parameters are supported and can be entered into a linked model file (*.mdl) for the device:

R

 

resistance multiplier. (Default = 1).

TC1

 

linear temperature coefficient (in ˚C-1). (Default = 0).

TC2

 

quadratic temperature coefficient (in ˚C-2). (Default = 0).

TCE

 

exponential temperature coefficient (in %/˚C). (Default = 0).

Values for TC1 and TC2 can be entered on the Parameters tab of the dialog. Where a parameter has an indicated default, that default will be used if no value is specifically entered - either on the Parameters tab or in the linked model file.
The format for the PSpice model file is:
.MODEL ModelName RES(Model Parameters),
where

  • ModelName is the name of the model, the link to which is specified on the General tab of the Sim Model dialog. This name is used in the netlist (&MODEL) to reference the required model in the linked model file.
  • Model Parameters are a list of supported parameters for the model, entered with values as required.

Voltage-Controlled Voltage/Current Source

The following general PSpice model forms are supported:

  • E<name> <Plus node> <Minus node> VALUE = { <expression> }
  • E<name> <Plus node> <Minus node> TABLE { <expression> } = < <input value>,<output value> >
  • E<name> <Plus node> <Minus node> POLY(<value>) < <Plus controlling node> <Minus controlling node> > < <polynomial coefficient value> >
  • Note: For linear Voltage-Controlled Current Sources, the formats are the same as those above, but substituting G for E.
    These devices do not support linked model files. The netlist format for a PSpice model in one of the above forms should be specified using the Generic Editor. In the Sim Model dialog, set the Model Kind to General and the Model Sub-Kind to Generic Editor.
    For the circuit to be parsed correctly, ensure that the Spice Prefix field is set to the entry applicable to the device being used:
  • VCVS - E
  • VCCS - G.
    The following are examples of generic netlist template formats that could be used for these model types.

VALUE model

@DESIGNATOR %1 %2 VALUE = {@EXPR}
The value for the EXPR parameter is entered on the Parameters tab of the Sim Model dialog.

TABLE model

@DESIGNATOR %1 %2 TABLE {@EXPR} = @ROW1 ?ROW2|@ROW2| ?ROW3|@ROW3|
Values for the EXPR and ROW parameters are entered on the Parameters tab of the Sim Model dialog. Any number of ROW parameters can be defined, in the format (<input value>, <output value>).
The netlist format could be entered using the following alternative entry:
@DESIGNATOR %3 %4 TABLE { @EXPR } ( @TABLE )
Values for the EXPR and TABLE parameters are again entered on the Parameters tab of the Sim Model dialog. The value for the TABLE parameter is specified in the form:
(<input1>, <output1>)(<input2>, <output2>)...(<inputn>, <outputn>)

POLY model

@DESIGNATOR %3 %4 POLY (@dimension) (%1, %2) @coeffs
The values for the dimension and coeffs parameters are entered on the Parameters tab of the Sim Model dialog.

For an example of using a PSpice-compatible polynomial-based voltage-controlled voltage source in a simulation, refer to the example project EPOLY.PrjPCB, which can be found in the \Examples\Circuit Simulation\PSpice Examples\Vcvs - poly folder of the installation.

Current-Controlled Voltage/Current Source

The following general PSpice model form is supported:

  • H<name> <Plus node> <Minus node> POLY(<value>) <controlling V device name> < <polynomial coefficient value> >
    Note: For a linear Current-Controlled Current Source, the format is the same as that above, but substituting F for H.
    These devices do not support linked model files. The netlist format for a PSpice model in the above form should be specified using the Generic Editor. In the Sim Model dialog, set the Model Kind to General and the Model Sub-Kind to Generic Editor.
    For the circuit to be parsed correctly, ensure that the Spice Prefix field is set to the entry applicable to the device being used:
  • CCVS - H
  • CCCS - F.
    The following example generic netlist template format could be used for these model types:
    @DESIGNATOR %1 %2 POLY (@dimension) @ControlSource @coeffs
    The values for the dimension, ControlSource and coeffs parameters are entered on the Parameters tab of the Sim Model dialog.

Bipolar Junction Transistor (BJT)

Many of the parameters that can be included in a linked model file for this type of device are common to both Spice3f5 and PSpice. Those that are supported can be found in the SPICE3f5 models\Transistors\Bipolar Junction Transistor (BJT) section of the Simulation Models and Analyses Reference. The following PSpice-based parameters are not supported:

CN

 

quasi-saturation temperature coefficient for hole mobility

D

 

quasi-saturation temperature coefficient for
scattering-limited hole carrier velocity

GAMMA

 

epitaxial region doping factor

ISS

 

substrate p-n saturation current

NK

 

high-current roll-off coefficient

NS

 

substrate p-n emission coefficient

QCO

 

epitaxial region charge factor

QUASIMOD

 

quasi-saturation model flag for temperature dependence

RCO

 

epitaxial region resistance

TRB1

 

RB temperature coefficient (linear)

TRB2

 

RB temperature coefficient (quadratic)

TRC1

 

RC temperature coefficient (linear)

TRC2

 

RC temperature coefficient (quadratic)

TRE1

 

RE temperature coefficient (linear)

TRE2

 

RE temperature coefficient (quadratic)

TRM1

 

RBM temperature coefficient (linear)

TRM2

 

RBM temperature coefficient (quadratic)

VG

 

quasi-saturation extrapolated bandgap voltage at 0° K

VO

 

carrier mobility knee voltage

XCJC2

 

fraction of CJC connected internally to Rb

XCJS

 

fraction of CJS connected internally to Rc

Metal Oxide Semiconductor Field-Effect Transistor (MOSFET)

Of the existing MOSFET device models, the following is not supported with respect to PSpice compatibility:

  • BSIM3 model version 2.0
    For the other supported MOSFET device models, many of the parameters that can be included in a linked model file are common to both Spice3f5 and PSpice. Those that are supported can be found in the SPICE3f5 models\Transistors\Metal Oxide Semiconductor Field-Effect Transistor (MOSFET) section of the Simulation Models and Analyses Reference. The following PSpice-based parameters are not supported for this device type:

GDSNOI

 

channel shot noise coefficient (use with NLEV=3)

JSSW

 

bulk p-n saturation sidewall current/length

L

 

channel length

N

 

bulk p-n emission coefficient

NLEV

 

noise equation selector

PBSW

 

bulk p-n sidewall potential

RB

 

bulk ohmic resistance

RDS

 

drain-source shunt resistance

RG

 

gate ohmic resistance

TT

 

bulk p-n transit time

W

 

channel width