SLiCAP
Symbolic Linear Circuit Analysis Program
Version 3.1
Contents
2 Introduction to SLiCAP
3 Netlist format
4 Title line
5 Element lines
5.1 Element identifier field
5.2 Node fields
5.3 Reference field
5.4 Value field
6 Element definitions
6.1 C: Linear capacitor
6.2 E: Voltage-controlled voltage source (VCVS)
6.3 EZ: Voltage-controlled voltage source with output impedance
6.4 F: Current-controlled current source (CCCS)
6.5 G: Voltage-controlled current source (VCCS)
6.6 H: Current-controlled voltage source: CCVS
6.7 I: Independent current source
6.8 K: Coupling factor
6.9 L: Linear inductor
6.10 M: MOSFET
6.11 MD: Common-source MOS differential pair
6.12 N: Nullor
6.13 OC: Current-feedback OpAmp
6.14 OV: Voltage-feedback OpAmp
6.15 Q: Vertical Bipolar Junction Transistor
6.16 QD: Common-emitter vertical BJT differential pair
6.17 R: Linear resistor
6.18 T: Ideal transformer
6.19 V: Independent voltage source
6.20 W: Gyrator
6.21 Y: Linear admittance
6.22 Z: Linear impedance
7 Instruction lines
7.1 Definition of the signal source: .s
7.2 Definition of a current detector: .i
7.3 Definition of a voltage detector:
7.4 Definition of the loopgain reference: .l
7.5 Assignment of numeric values to parameters: .p
7.6 Symbolic output: .symbolic
7.7 Numeric output: .numeric
7.8 Graphic output: .plot
7.9 Parameter stepping: .step
7.10 SLiCAP options: .o
8 Comment lines: *
9 End line: .end
10 SLiCAP background information
List of Figures
2 SLiCAP equivalent circuit for a MOS common-source differential pair: MD_x Drain1 Drain2 Gate1 Gate2 Bulk C_bd C_bg C_bs C_dg C_gs g_m g_o
3 SLiCAP equivalent circuit for a current-feedback OpAmp: OC_x outp outn inp inn AN(s)/AD(s) g_i C_i R ZN(s)/ZD(s)
4 SLiCAP equivalent circuit for a voltage-feedback OpAmp: OV_x outp outn inp inn AN(s)/AD(s) g_ic g_id C_ic C_id ZN(s)/ZD(s)
5 SLiCAP equivalent circuit for a Vertical Bipolar Junction Transistor: Q_x C B E S C_bc C_bx C_cs C_pi g_m g_mu g_pi g_o r_b
6 SLiCAP equivalent circuit for a common-emitter differential pair: QD_x C_1 C_2 B_1 B_2 S C_bc C_bx C_cs C_pi g_m g_mu g_pi g_o r_b
List of Tables
2 Reserved strings and their displayed symbols.
3 Scale factors that can be used in value fields and expressions.
4 Reserved parameters and their SLiCAP replacement.
5 Functions that can be used in SLiCAP value fields
6 Instructions
1 Disclaimer
Montagne Design & Consultancy pays much attention to the usefulness and reliability of its symbolic linear circuit analysis program SLiCAP. However, despite all efforts, errors might occur and Montagne Design & Consultancy cannot be held liable for any direct or indirect losses due to application of SLiCAP.
2 Introduction to SLiCAP
SLiCAP is a symbolic circuit analysis program that shows network equations, transfer functions, pole-zero patterns, step response and impulse response, in a symbolic, numeric or graphic representation.
SLiCAP is an indispensable web application for designers of analog electronic circuits.
SLiCAP uses the asymptotic-gain model for evaluation of negative feedback circuits.
SLiCAP accepts SPICE-like netlists and returns output files in text, ASCII, TeX, MuPAD (MatLab symbolic toolbox), HTML, XHTML, PNG and EPS format.
This SLiCAP manual describes the syntax for the text-based input file. Such input consists of
- Netlist data
- Instructions
- Parameter definitions
- Source, load and loopgain reference definitions
- Analysis and plot instructions
- Options.
The netlist data can be generated by netlist generators that are often part of schematic capture tools. Definitions of parameters, source, load and loopgain reference, as well as analysis instructions and options can also be added with the aid of a user-friendly web interface. This interface is self-explaining and therefore not described in this manual.
3 Netlist format
The netlist file comprises the following input line types:
- A title line; this is the first line of the file (see 4 ).
- Element lines (see 5 )
- Instruction lines (see 7 )
- Comment lines (see 8 )
- .end line (see 9 ); this is the last line that will be read by SLiCAP
The lines between the title line and the .end line may be placed in any order. Their line types lines are defined by their first non whitespace character:
- Instruction lines begin with a period ’.’
- Comment lines begin with an asterix ’*’
- Element lines begin with a letter.
There is no limit to the length of a line. A line is terminated with a new line character and cannot be continued on a new line.
4 Title line
The first line of the netlist file is the title line. It may not be left empty and it should have alphanumeric characters only. Non-alphanumeric characters and strings of non-alphanumeric characters are replaced by a single space. No error message or warning is given for these replacements.
5 Element lines
An element line comprises:
- An element identifier field (see 5.1 )
- Either node fields (see 5.2 ), or element identifier fields (see 5.1 ) that refer to other elements (see 5.3 ).
- One or more value fields (see 5.4 ) with a value or an expression
Examples
- R_1 1 0 10
This represents a resistor R1 connected between nodes ’1’ and ’0’ with a value of 10Ω
- L_A in out L_alpha
This represents an inductor LA connected between nodes ’in’ and ’out’ with a value of Lα
- l_b in 0 L_alpha
This represents an inductor lb connected between nodes ’in’ and ’0’ with a value of Lα
- E_1 outp outn inp inn A_0/{(1+s*tau_1)*(1+s*tau_2)}
This represents a voltage-controlled voltage source with its positive output connected to ’outp’ its negative output connected to ’outn’, its positive controlling input connected to ’inp’ and its negative controlling input connected to ’inn’. Its gain is:
.
- k_1 L_a l_b 0.8
This represents a coupling factor of 0.8 between LA and lb.
- M_1 1 2 3 0 0.1p 0.01p 0 0.05p 0.2p 100u G_m 10u
This represents a MOSFET with its drain connected to node 2, its gate to node 2 and the source and the bulk connected to node 0. The required device parameter values are:
The bulk-drain capacitance: CbdM 1 = 0.1 × 10-12 [F]
The bulk-gate capacitance: CbgM1 = 0.01 × 10-12 [F]
The bulk-source capacitance: CbsM1 = 0 [F]
The drain-gate capacitance: CdgM 1 = 0.05 × 10-12 [F]
The gate-source capacitance: CgsM 1 = 0.2 × 10-12 [F]
The backgate transconductance: gbM 1 = 100 × 10-6 [A/V]
The forward transconductance: gmM 1 = Gm [A/V]
The output conductance: goM 1 = 10 × 10-6 [Ω-1]
5.1 Element identifier field
An element identifier consists of three parts:
|
- The element type identifier
The string between the first non whitespace character of an element line, and the element type-instance separator ”_”, is the element type identifier. The program recognizes linear elements by their element type identifiers as listed in table 1. These element type identifiers are not case-sensitive. An overview of elements that can be used with SLiCAP is given in section 6 .
- The element type - instance separator
The second character of the element identifier must be ’_’. It causes the following string (the element 3 ) to be subscripted in the TeX, HTML and XHTML output.
- The character string between the type - instance separator ’_’ and the first following whitespace character is the element’s instance identifier. It should at least have one alpha numerical character. If more than one element of the same type are listed, their element instance identifiers should be different.
A character string can be divided in substrings using the substring separator character ’_’. A substring following the substring separator character will be displayed as subscript in the TEX, HTML and XHTML output files. The substrings consists of alpha numerical characters. Reserved strings and their displayed output in TEX and XHTML output are listed in table 2.
|
5.2 Node fields
A node field is a string of alpha numerical characters only.
5.3 Reference field
A reference field has the same syntax as an element identifier field. It refers to an element whose element identifier field is exactly equal to the reference field.
5.4 Value field
The value or expression field be a valid SLiCAP value or an expression.
A valid SLiCAP value is any numerical value in decimal or exponential notation. Scale factors as listed in table 3 can be used. Scale factors are case-sensitive.
|
1p or 1E-12 or 1e-12 all represent one pico, SLiCAP replaces it by 10-12
1M or 1E6 or 1e6 all represent one Mega, SLiCAP replaces it by 106. MEG is not recognized by SLiCAP!
An expression consists of parameters, operators (’+’, ’-’, ’*’, ’/’ or ’^’), functions and numbers. Scale factors can be used in expressions: don’t use them for user-defined parameters. A list of some other reserved symbols that also cannot be used as user-defined parameters is given in table 4.
|
Brackets of all types ”[”, ”{”, ”(”, ”)”, ”}” and ”]” can be used in expressions. SLiCAP replaces straight and curly brackets by their corresponding normal bracket ”(” or ”)”.
Any combination of characters that is not recognized as a function, a reserved parameter form table 4, a symbol from table 2, or scale factor from table 3 is considered to be a parameter (see also .p parameter definition in section 7.5).
Table 5 lists the functions that are accepted by SLiCAP.
|
6 Element definitions
6.1 C: Linear capacitor
- Syntax: C_x pos neg value
- Element relation:
ICx = s⋅value⋅(V pos - V neg)
C_x Element identifier pos Positive node neg Negative node value Value or expression IC Current flow through the element from pos to neg s Laplace variable - MNA matrix stamp of: C_x 1 2 C
![[ ] [ ][ ]
0 = sC - sC V1
0 - sC sC V2](slicap-manual1x.png)
6.2 E: Voltage-controlled voltage source (VCVS)
- Syntax: E_x outp outn inp inn value
- Element relation: (V outp - V outn) = (V inp - V inn)⋅value, Iinp = 0,
Iinn = 0
E_x Element identifier outp Positive output node outn Negative output node inp Positive controlling node inn Negative controlling node value Value or expression Iinp Current flow into the element’s inp node Iinn Current flow into the element’s inn node V out V outp - V outn V in V inp - V inn IEx Current flow through the device from the outp to the outn node - MNA matrix stamp of:
E_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

6.3 EZ: Voltage-controlled voltage source with output impedance
SliCAP has a compact matrix stamp for the voltage controlled-voltage source with output impedance.
- Syntax: EZ_x outp outn inp inn value_1 value_2
- Element relation:
(V outp - V outn) = (V inp - V inn)⋅value_1-Iout⋅value_2, Iinp = 0,
Iinn = 0
EZ_x Element identifier outp Positive output node outn Negative output node inp Positive controlling node inn Negative controlling node value_1 Value or expression for the voltage gain value_2 Value or expression for the output impedance Iinp Current flow into the element’s inp node Iinn Current flow into the element’s inn node V out V outp - V outn V in V inp - V inn IEZx Current flow through the device from the outp to the outn node - MNA matrix stamp of:
E_x 1 2 3 4 NE(s)/DE(s) NZ(s)/DZ(s)
in which NE(s), NZ(s), DE(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s
![[ ]T [ ]T
0 0 0 0 0 = M ⋅ V1 V2 V3 V4 IEZx](slicap-manual3x.png)


6.4 F: Current-controlled current source (CCCS)
- Syntax: F_x outp outn inp inn value
F_x Element identifier outp Positive output node outn Negative output node inp Positive controlling node inn Negative controlling node value Value or expression Iin Current flow through the element from the inp to the inn node V in V inp - V inn Iout Current flow through the element from the outp to the outn node - Element relation: Iout = Iin⋅value, V in = 0
- MNA matrix stamp of
F_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

In which

6.5 G: Voltage-controlled current source (VCCS)
- Syntax: G_x outp outn inp inn value
- Element relation: Iout = (V inp - V inn)⋅value, Iinn = 0, Iinp = 0
G_x Element identifier outp Positive output node outn Negative output node inp Positive controlling node inn Negative controlling node value Value or expression Iinp Current flow into the element’s inp node Iinn Current flow into the element’s inn node V out V outp - V outn V in V inp - V inn Iout Current flow through the device from the outp to the outn node - MNA matrix stamp of:
G_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

In which IGx = Iout
6.6 H: Current-controlled voltage source: CCVS
- Syntax: H_x outp outn inp inn value
- Element relation: V out = Iin⋅value, V in = 0
H_x Element identifier outp Positive output node outn Negative output node inp Positive controlling node inn Negative controlling node value Value or expression Iin Current flow through the element from the inp to the inn node: IHx i Iout Current flow through the element from the outp to the outn node: IHxo V out V outp - V outn - MNA matrix stamp of:
H_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

6.7 I: Independent current source
- Syntax: I_x pos neg value
- Element relation: Ipos =value, Ineg = -value
V_x Element identifier pos Positive node neg Negative node value Value or expression Ipos Current flow into node pos Ineg Current flow into node neg - MNA matrix stamp of:
I_x 1 2 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s
![[ ]
N(s) [ ][ ]
D(Ns)(s) = 0 0 V1
- D(s)- 0 0 V2](slicap-manual10x.png)
6.8 K: Coupling factor
- Syntax: K_x L_ref1 L_ref2 value
K_x Element identifier L_ref1 Element identifier of inductor L_ref2 Element identifier of inductor value Value or expression - MNA matrix stamp (excluding those of the two related inductors)
of:
K_x L_1 L_2 k
In which L_1 and L_2 are the values of two inductors:
L_1 1 2 L_a
L_2 3 4 L_b

In which IL1 and IL2 are the currents through the inductors L1 and L2, respectively.
6.9 L: Linear inductor
- Syntax: L_x pos neg value
- Element relation: ILx ⋅ s ⋅value = V pos - V neg
L_x Element identifier pos Positive node neg Negative node value Value or expression ILx Current flow through the element from pos to neg s Laplace variable - MNA matrix stamp of:
L_x 1 2 L

6.10 M: MOSFET
|
|
- SLiCAP expects 13 fields for a MOST: one identifier field, four node
fields and eight value fields.
Syntax: M_x d g s b C_bd C_bg C_bs C_dg C_gs g_b g_m g_o
Field Value Description 1 M_x Element identifier field 2 d Drain node 3 g Gate node 4 s Source node 5 b Bulk node 6 C_bd Value or expression for the bulk-drain capacitance 7 C_bg Value or expression for the bulk-gate capacitance 8 C_bs Value or expression for the bulk-source capacitance 9 C_dg Value or expression for the drain-gate capacitance 10 C_gs Value or expression for the gate-source capacitance 11 g_b Value or expression for the bulk-source forward transconductance 12 g_m Value or expression for the forward transconductance 13 g_o Value or expression for the output conductance Note: All values must be real; zero is allowed. A three terminal MOSFET is obtained if the bulk and the source are connected to each other. The output capacitance of the MOSFET then equals Cbd.
- SLiCAP constructs the MOSFET from basic SLiCAP elements as shown in figure 1. You cannot use their element names for other circuit elements.
- You can select the forward transconductance of the MOS as loopgain reference variable.
6.11 MD: Common-source MOS differential pair
- SLiCAP expects 12 fields on the input line of this element: one
identifier field, five node fields and six value fields. A value or expression
for the back-gate transconductance is not required. The small-signal
model parameters refer to those of the single MOS transistors of the
differential pair.
Syntax: MD_x d_1 d_2 g_1 g_2 b C_bd C_bg C_dg C_gs g_m g_o
Field Value Description 1 M_x Element identifier 2 d_1 Drain of first MOS 3 d_2 Drain of second MOS 4 g_1 Gate of first MOS 5 g_2 Gate of second MOS 6 b Bulk node 7 C_bd Value or expression for the bulk-drain capacitances 8 C_bg Value or expression for the bulk-gate capacitances 9 C_dg Value or expression for the drain-gate capacitance 10 C_gs Value or expression for the gate-source capacitance 11 g_m Value or expression for the forward transconductance 12 g_o Value or expression for the output conductance Note: All values must be real; zero is allowed. A three terminal MOSFET is obtained if the bulk is left floating and the value Cbg of the bulk-gate capacitance, has been set to zero.
Figure 2: SLiCAP equivalent circuit for a MOS common-source differential pair:
MD_x Drain1 Drain2 Gate1 Gate2 Bulk C_bd C_bg C_bs C_dg C_gs g_m g_o
- SLiCAP constructs the MOSFET from basic SLiCAP elements as shown in figure 2. You cannot use their element names for other circuit elements.
- You can select the forward transconductance of the MOS differential pair as loopgain reference variable.
6.12 N: Nullor
- Syntax: N_x outp outn inp inn
- Element relation: Ioutp + Ioutn = 0, V inp - V inn = 0, Iinp = 0, Iinn = 0
N_x Element identifier outp Positive output node outn Negative output node inp Positive input node inn Negative input node Ioutp, Ioutn Current flow into the outp and into the outn terminal, respectively - MNA matrix stamp of:
N_x 1 2 3 4:

In which INx = Ioutp
6.13 OC: Current-feedback OpAmp
- SLiCAP expects 10 fields on the input line of this element: one
identifier field, four node fields and five value fields.
Syntax: OC_x out+ out- in+ in- A_z g_i C_i_R Z_o
Field Value Description 1 OC_x Element identifier 2 out+ Non-inverting output node 3 out- Inverting output node (not internally connected to ground) 4 in+ Non-inverting input node 5 in- Inverting input node 6 A_z Value or expression for the transimpedance gain 7 g_i Value or expression for the non-inverting input conductance 8 C_i Value or expression for the non-inverting input capacitance 9 R Value or expression for inverting input resistance 10 Z_o Value or expression for the output impedance Note: gi, Ci and R must be real; zero is allowed for gi and Cionly. Az and Zo can be simple fractions of two polynomials in s with real coefficients.
- SLiCAP constructs the current-feedback OpAmp from basic SLiCAP
elements as shown in figure 3. You cannot use their element names for other
circuit elements.
Figure 3: SLiCAP equivalent circuit for a current-feedback OpAmp:
OC_x outp outn inp inn AN(s)/AD(s) g_i C_i R ZN(s)/ZD(s)
- You can select the voltage-controlled voltage of the OpAmp as loopgain reference variable.
6.14 OV: Voltage-feedback OpAmp
- SLiCAP expects 11 fields on the input line of this element: one
identifier field, four node fields and six value fields.
Syntax: OV_x out+ out- in+ in- A_d g_ic g_id C_ic C_id Z_o
Field Value Description 1 OC_x Element identifier 2 out+ Non-inverting output node 3 out- Inverting output node (not internally connected to ground) 4 in+ Non-inverting input node 5 in- Inverting input node 6 A_d Value or expression for the differential voltage gain 7 g_ic Value or expression for each common-mode input conductance 8 g_id Value or expression for the differential-mode input conductance 9 C_ic Twice the value or expression for the common-mode input capacitance 10 C_id Value or expression for the differential-mode input capacitance 11 Z_o Value or expression for the output impedance Note: gic, gid, Cic and Cid must be real; zero is allowed. Ad and Zo can be simple fractions of two polynomials in s with real coefficients.
Figure 4: SLiCAP equivalent circuit for a voltage-feedback OpAmp:
OV_x outp outn inp inn AN(s)/AD(s) g_ic g_id C_ic C_id ZN(s)/ZD(s)
- SLiCAP constructs the voltage-feedback OpAmp from basic SLiCAP elements as shown in figure 4. You cannot use their element names for other circuit elements.
- You can select the voltage-controlled voltage of the OpAmp as loopgain reference variable.
6.15 Q: Vertical Bipolar Junction Transistor
- SLiCAP expects 14 fields for a BJT: one identifier field, four node
fields and nine value fields. In addition to its four external nodes, the
model has an extra node for the internal base.
Syntax: Q_x c b e s C_bc C_bx C_cs C_pi g_m g_mu g_pi g_o r_b
Field Value Description 1 Q_x Element identifier 2 c Collector node 3 b Base node 4 e Emitter node 5 s Substrate node 6 C_bc Value or expression for the internal base-collector capacitance 7 C_bx Value or expression for the external base-collector capacitance 8 C_cs Value or expression for the collector-substrate capacitance 9 C_pi Value or expression for the internal base-emitter capacitance 10 g_m Value or expression for the forward transconductance 11 g_mu Value or expression for the reverse conductance 12 g_pi Value or expression for the internal input conductance 13 g_o Value or expression for the output conductance 14 r_b Value or expression for the base resistance Note: All values must be real; zero is allowed. A three terminal BJT is obtained if the substrate and the emitter are connected to each other. The output capacitance of the BJT then equals Ccs.
Figure 5: SLiCAP equivalent circuit for a Vertical Bipolar Junction Transistor:
Q_x C B E S C_bc C_bx C_cs C_pi g_m g_mu g_pi g_o r_b
- SLiCAP constructs the BJT from basic SLiCAP elements as shown in figure 5. You cannot use their element names for other circuit elements.
- You can select the forward transconductance of the BJT as loopgain reference variable.
6.16 QD: Common-emitter vertical BJT differential pair
|
|
- SLiCAP expects 15 fields on the input line of this element: one
identifier field, five node fields and nine value fields. In addition
to its five external nodes, the model has two extra nodes for the
internal bases. The small-signal parameters refer to those of the single
transistors of the differential pair.
Syntax: QD_x c_1 C_2 b_1 b_2 s C_bc C_bx C_cs C_pi g_m g_mu g_pi g_o r_b
Field Value Description 1 Q_x Element identifier 2 c_1 Collector node transistor 1 3 c_2 Collector node transistor 2 4 b_1 Base node transistor 1 5 b_2 Base node transistor 2 6 s Substrate node 7 C_bc Value or expression for the internal base-collector capacitance 8 C_bx Value or expression for the external base-collector capacitance 9 C_cs Value or expression for the collector-substrate capacitance 10 C_pi Value or expression for the internal base-emitter capacitance 11 g_m Value or expression for the forward transconductance 12 g_mu Value or expression for the reverse conductance 13 g_pi Value or expression for the internal input conductance 14 g_o Value or expression for the output conductance 15 r_b Value or expression for the base resistance Note: All values must be real; zero is allowed. A differential pair with three terminal BJTs is obtained if the substrate node is left floating.
- SLiCAP constructs the common-emitter differential pair from basic SLiCAP elements as shown in figure 6. You cannot use their element names for other circuit elements.
- You can select the forward transconductance of the BJT differential pair as loopgain reference variable.
6.17 R: Linear resistor
- Syntax: R_x pos neg value
- Element relation: IRx⋅value= (V pos - V neg)
R_x Element identifier pos Positive node neg Negative node value Value or expression IRx Current flow through the element from pos to neg - MNA matrix stamp (SLiCAP default) of:
R_x 1 2 R
![[ ] [ 1 1 ][ ]
0 = R- - R- V1
0 - 1R- R1 V2](slicap-manual14x.png)
- MNA matrix stamp (with option zero_r) of:
R_x 1 2 R

6.18 T: Ideal transformer
- Syntax: T_x outp outn inp inn value
- Element relations: Iin = value⋅Iout, V out = value⋅V in
T_x Element identifier outp Positive output node outn Negative output node inp Positive input node inn Negative input node value Value or expression Iout Current flow through the element from outp to outn Iin Current flow through the element from inp to inn V out V outp - V outn V in V inp - V inn - MNA matrix stamp of:
T_x 1 2 3 4 n

In which ITx = Iout.
6.19 V: Independent voltage source
- Syntax: V_x pos neg value
- Element relation: (V pos - V neg) =value
V_x Element identifier pos Positive node neg Negative node value Value or expression IV x Current flow through the element from pos to neg - MNA matrix stamp of:
V_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

6.20 W: Gyrator
- Syntax: W_x outp outn inp inn value
- Element relations: Iin = value⋅V out, Iout = -value⋅V in
W_x Element identifier outp Positive output node outn Negative output node inp Positive input node inn Negative input node value Value or expression Iout Current flow through the element from outp to outn Iin Current flow through the element from inp to inn V out V outp - V outn V in V inp - V inn - MNA matrix stamp of:
W_x 1 2 3 4 G

6.21 Y: Linear admittance
- Syntax: Y_x pos neg value
- Element relation: IY x = (V pos - V neg)⋅value
Y_x Element identifier pos Positive node neg Negative node value Value or expression IY x Current flow through the element from pos to neg - MNA matrix stamp of:
Y_x 1 2 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

6.22 Z: Linear impedance
- Syntax: Z_x pos neg value
- Element relation: IZx = (V pos - V neg)∕value
Z_x Element identifier pos Positive node neg Negative node value Value or expression IZx Current flow through the element from pos to neg - MNA matrix stamp of:
Z_x 1 2 3 4 N(s)/D(s)
in which N(s) and D(s) are expressions that can be written as polynomials in the Laplace variable s

7 Instruction lines
The netlist file can comprise instructions as listed in table 6. Instructions are not case-sensitive and may be preceded by white-space characters.
|
7.1 Definition of the signal source: .s
Definition of the signal source. A source is required for calculation of:
- GAIN The transfer from source to load of the network
- DIRECT The transfer from source to load of the network, with value of the loopgain reference set to zero
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
Syntax: Not case sensitive, second field must refer to the element identifier of a voltage or current source in the circuit. Following fields are ignored!
Examples:
.s V_1
.S I_in
7.2 Definition of a current detector: .i
Definition of a current detector; which is a current through a voltage source. A detector is required for the calculation of:
- GAIN The transfer from source to load of the network
- DIRECT The transfer from source to load of the network, with value of the loopgain reference set to zero
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
Syntax: Not case sensitive, second field must refer to the element identifier of a voltage or current source in the circuit. Following fields are ignored!
Examples:
.i V_1; The detector detects the current through the independent voltage source V_1
.I V_sense; The detector detects the current through the independent voltage source V_sense
7.3 Definition of a voltage detector:
Definition of a voltage detector. A detector is required for the calculation of:
- GAIN The transfer from source to load of the network
- DIRECT The transfer from source to load of the network, with value of the loopgain reference set to zero
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
Syntax: Not case sensitive, second and third field must refer to nodes in the circuit. Following fields are ignored!
Examples:
.v out 0; The detector detects the voltage between node out and 0
.V OutP OutN; The detector detects the voltage between node OutP and OutN
7.4 Definition of the loopgain reference: .l
Definition of the reference variable for negative-feedback systems. A loopgain reference is required for the calculation of:
- LOOPGAIN The transfer from output quantity of the reference variable to the input quantity of the reference variable multiplied by the gain of the reference variable.
- DIRECT The transfer from source to load of the network, with value of the loopgain reference set to zero
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
Syntax: Not case sensitive, second field must refer to the element identifier of a voltage or current source in the circuit. Following fields are ignored!
Examples:
.l E_amp
.L g_m
7.5 Assignment of numeric values to parameters: .p
Assignment of a value to a parameter. If one ore more parameters have no numerical values assigned, numerical expressions still carry their identifiers, pole-zero analysis will not be performed and plots will not be made!
Syntax:
.p ID VALUE
- .p is not case sensitive.
- ID is the parameter identifier. It cannot be equal to an element identifier. A parameter identifier may consists of alpha-numeric characters and the subscript symbol ”_”. If it consists of more than one character, the second character must be the subscript symbol ”_”. Strings from table 2 are considered as one character.
- VALUE is the parameter’s value field (see 5.4). It may contain expressions and new parameters.
- Following fields are ignored!
Examples:
.p A 10k
.P g_m 20m
.p tau_1 1/(2*PI*100k)
.p g_m g_m_0*sqrt(I_out/I_0)
7.6 Symbolic output: .symbolic
Causes SLiCAP to generate symbolic output. Parameter identifiers in element value fields will NOT be substituted by the values or expressions of these parameters. System variables s (LAPLACE or MATRIX), iω or f (FOURIER, DB, MAG, PHASE, DELAY, RE, IM), or t (IMPULSE, STEP or TIME) are also left in the expression. Any .symbolic instruction can be combined with parameter stepping (see 7.9).
Be careful with .symbolic. It can result in extremely long expressions that makes the TeX to XHTML converter crash. .symbolic PZ is not implemented.
Syntax :
.symbolic variable type <.step step_var lin_log start stop n_values>
- .symbolic is not case-sensitive
- variable is the object to be evaluated; it can be one of the following:
- V The voltage between two specified nodes
- I The current through a voltage source.
- GAIN The transfer from the source to the load of the network
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
- LOOPGAIN The transfer from output quantity of the loopgain reference element to the input quantity of the loopgain reference element, multiplied by the gain of the loopgain reference element
- DIRECT The transfer from source to load of the network, with value of the loopgain reference element set to zero
- type can be one of the following:
- MATRIX The matrix equation on which the calculation variable will be based
- LAPLACE The Laplace transform of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I )
- FOURIER The Fourier transform of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- MAG The magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- DB The magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ) in dB representation ; it is sensitive to the option variable RAD/S
- PHASE The phase of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- RE The real part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- IM The imaginary part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- DELAY The group delay of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- IMPULSE The unit-impulse response of a transfer (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). IMPULSE cannot be used with V or I variables, use TIME instead.
- STEP The unit-step response of a transfer (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). STEP cannot be used with V or I variables, use TIME instead.
- TIME A current of voltage time domain response, cannot be used with gain functions, uses STEP instead.
7.7 Numeric output: .numeric
Causes SLiCAP to generate numeric output. Parameter identifiers in element value fields will be substituted by their values. Undefined parameters and s (LAPLACE or MATRIX), iω or f (FOURIER, DB, MAG, PHASE, DELAY, RE, IM), or t (IMPULSE, STEP or TIME) are left in the expression. Any .numeric instruction can be combined with parameter stepping (see 7.9).
Syntax :
.numeric variable type <.step step_var lin_log start stop n_values>
- .numeric is not case-sensitive
- variable is the object to be evaluated; it can be one of the following:
- V The voltage between two specified nodes
- I The current through a voltage source.
- GAIN The transfer from the source to the load of the network
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
- LOOPGAIN The transfer from output quantity of the loopgain reference element to the input quantity of the loopgain reference element, multiplied by the gain of the loopgain reference element
- DIRECT The transfer from source to load of the network, with value of the loopgain reference element set to zero
- type can be one of the following:
- MATRIX The matrix equation on which the calculation variable will be based
- LAPLACE The Laplace transform of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I )
- FOURIER The Fourier transform of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- MAG The magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- DB The magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ) in dB representation ; it is sensitive to the option variable RAD/S
- PHASE The phase of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- RE The real part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- IM The imaginary part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- DELAY The group delay of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S
- PZ The zero-frequency value and the locations of the poles and zeros of a transfer (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT); it is sensitive to the option variable RAD/S. PZ cannot be used with V or I variables. Numeric pole-zero analysis will only be performed if numeric values have been assigned to all parameters.
- IMPULSE The unit-impulse response of a transfer (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). IMPULSE cannot be used with V or I variables, use TIME instead.
- STEP The unit-step response of a transfer (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). STEP cannot be used with V or I variables, use TIME instead.
- TIME A current of voltage time domain response, cannot be used with gain functions.
7.8 Graphic output: .plot
Causes SLiCAP to generate graphic output. Parameter identifiers in element value fields will be substituted by their values. The variables s (PZ), ω or f (FOURIER, DB, MAG, PHASE, DELAY, RE, IM), or t (IMPULSE, STEP or TIME) are taken as independent variable for plotting. Plot instructions will only be executed if numeric values have been assigned to all parameters.
Any .plot instruction can be combined with parameter stepping (see 7.9).
Syntax :
.plot variable type x_var start stop <.step step_var lin_log start stop n_values> <.range x_min x_max y_min y_max>
- .plot is not case-sensitive
- variable is the object to be evaluated; it can be one of the following:
- V The voltage between two specified nodes
- I The current through a voltage source.
- GAIN The transfer from source to load of the network
- ASYMPTOTIC The transfer from source to load of the network, with the loopgain reference replaced by a nullor
- LOOPGAIN The transfer from output quantity of the reference variable to the input quantity of the reference variable multiplied by the gain of the reference variable
- DIRECT The transfer from source to load of the network, with value of the loopgain reference set to zero
- type can be one of the following:
- MAG The magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-log scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- DB The dB magnitude of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-lin scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- PHASE The phase characteristic of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-lin scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- RE The real part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-lin scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- IM The imaginary part of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-lin scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- DELAY The group delay of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), always plotted on log-lin scale. A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- P The pole pattern of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT); it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the complex plane. Syntax: .range x_min x_max y_min y_max.
- Z The zero pattern of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT); it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the complex plane. Syntax: .range x_min x_max y_min y_max.
- PZ The pole-zero pattern of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT), or of a voltage or current (V, I ); it is sensitive to the option variable RAD/S. Optional, a .range sub instruction can be used to zoom into a specified area of the complex plane. Syntax: .range x_min x_max y_min y_max.
- IMPULSE The unit-impulse response of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). A time range definition .t tmin tmax is required. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- STEP The unit-step response of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT). A time range definition .t tmin tmax is required. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- TIME The time-domain representation of a voltage or current (V or I). A time range definition .t tmin tmax is required. Optional, a .range sub instruction can be used to zoom into a specified area of the y-axis. Syntax: .range y_min y_max.
- POLAR A polar plot of a transfer function (GAIN, ASYMPTOTIC, LOOPGAIN DIRECT) or a voltage or current (V or I). A frequency range definition .f fmin fmax is required; it is sensitive to the option variable RAD/S.
- type x_var The x-axis variables that should be entered are:
- .t for TIME, IMPULSE and STEP. SLiCAP always uses a linear x-axis scale for a time-domain plot.
- .f for MAG, DB, PHASE, RE, IM, DELAY and POLAR. SLiCAP always uses a logarithmic x-axis scale for a frequency-domain plot.
- no entry for PZ
- start start value for time of frequency scale.
- stop stop value for time of frequency scale.
Examples
- .plot gain db .f 1 1M
SLiCAP will plot the magnitude characteristic of the gain on a log frequency scale that ranges from 1 [Hz] to 1 [MHz], and a dB (linear) vertical scale.
- .plot gain db .f 1 1M .step C_load lin 1p 10p 10
SLiCAP will plot 10 magnitude characteristics of the gain, combined in one plot, on a log frequency scale that ranges from 1 [Hz] to 1 [MHz], and a dB (linear) vertical scale, with Cload stepping from 1 [pF] to 10 [pF]; 10 values.
- .plot gain phase .f 1 1M
SLiCAP will plot the magnitude characteristic of the gain on a log frequency scale that ranges from 1 [Hz] to 1 [MHz], and a dB (linear) vertical scale.
- .plot gain phase .f 1 1M .step C_load lin 1p 10p 10
SLiCAP will plot 10 phase characteristics of the gain, combined in one plot, on a log frequency scale that ranges from 1 [Hz] to 1 [MHz], and a dB (linear) vertical scale, with Cload stepping from 1 [pF] to 10 [pF]; 10 values.
- .plot gain step .1 0 1u
SLiCAP will plot the unit step responses of the gain, on a linear time scale that ranges from 0 to 1 [μs], and a linear vertical scale.
- .plot gain step .1 0 1u .step C_load lin 1p 10p 10
SLiCAP will plot 10 unit step responses of the gain, combined in one plot, on a linear time scale that ranges from 0 to 1 [μs], and a linear vertical scale, with Cload stepping from 1 [pF] to 10 [pF]; 10 values.
- .plot gain pz
SLiCAP will plot the pole-zero pattern of the gain (auto scale)
- .plot gain pz .range -10M 0 -5M 5M
SLiCAP will plot the pole-zero pattern of the gain, within the specified area of the complex plane: s = 2πσ + i2πf; with σ = -10 ⋅ 106..0 and f = -5 ⋅ 106..5 ⋅ 106, or. s = σ + iω;with σ = -10 ⋅ 106..0 and ω = -5 ⋅ 106..5 ⋅ 106, if .o rad/s is used (see options 7.10).
- .plot gain pz .step C_load lin 1p 10p 100 .range -10M 0
-5M 5M
SLiCAP will plot the loci of the poles and the loci of the zeros of the gain, within the specified area of the complex plane: s = 2πσ + i2πf; with σ = -10 ⋅ 106..0 and f = -5 ⋅ 106..5 ⋅ 106, or. s = σ + iω; with σ = -10 ⋅ 106..0, and ω = -5 ⋅ 106..5 ⋅ 106, if .o rad/s is used (see options 7.10), for 100 different values of Cload.
If the gain of the reference variable is used as step variable, you will obtain the root-locus plot that is often used for analysis of the stability of negative-feedback circuits. However, this plot command is much more powerful, you can plot the loci of the poles and/or the zeros while stepping any parameter.
7.9 Parameter stepping: .step
All instructions can be combined with parameter stepping. This will cause SLiCAP to perform the instruction for different values of a parameter. Parameter stepping is performed if a .step sub instruction is found on an instruction line. The syntax for a .step instruction is:
.step step_var lin_log start stop n_values
- The step variable step_var must refer to a parameter.
- If lin_log = ’lin’, the instruction is performed n_values times, with the parameter stepping from start to stop with a fixed increment.
- If lin_log = ’log’, the instruction is performed with the parameter stepping from start to stop with n_values per decade.
7.10 SLiCAP options: .o
Sets SLiCAP options.
.o option <option value>
Syntax
- .o not case sensitive. Each option should be put on a separate line, starting with .o
- option
- disp (not case sensitive): .o disp n: Uses n digits displayed numerical accuracy, default n = 4
- calc (not case sensitive): .o calc n: Uses n digits calculated numerical accuracy, default n = 20
- plot_w (not case sensitive): .o plot_w n: Sets plot width to n [cm], default n = 12, range n : 5..25 (Integer only)
- plot_h (not case sensitive): .o plot_h n: Sets plot height to n [cm], default n = 12, range n : 5..25 (Integer only)
- rad/s (not case sensitive): .o rad/s; no value required. Uses s = iω [rad/s] frequency representation for FOURIER, MAG, DB, RE, IM, DELAY, PHASE and PZ output
- no_cancel: .o no_cancel (not case sensitive): By default, SLiCAP doesn’t show pole-zero pairs whose relative distance is less than the displayed numeric accuracy. With the option .o no_cancel, SLiCAP does show these non-observable poles and zeros.
- unit_circle: .o unit_circle (not case sensitive): Forces SLiCAP to draw the unit circle in polar plots. This is helpful for finding the phase margin in feedback systems.
- graph_eps: .o graph_eps (not case sensitive): By default SLiCAP uses the bit map output format .png (portable network graphics) for graphic output. With this options it is changed to vector .eps (encapsulated postscript) format.
- zero_r: .o zero_r (not case sensitive): This option should be set if you want to assign zero value to a resistor (not required for zero base resistance of bipolar transistors).
8 Comment lines: *
Any line beginning with an asterix ’*’ is considered as comment and will be ignored.
9 End line: .end
The input file ends with a ’.end’ instruction or with an end of file character. The ’.end’ instruction is not case sensitive.
10 SLiCAP background information
SLiCAP is optimized for symbolic analysis and numeric pole-zero analysis. Hence, it is not optimized for speed.
Reliable pole-zero analysis requires an MNA matrix in the differential form. As can be seen from the matrix stamps, this is guaranteed as long as:
- The Laplace variable s is NOT used in expressions for:
- The value of a resistor (use Z or Y instead)
- The value of a capacitor (use Z or Y instead)
- The value of an inductor (use Z or Y instead)
- The turns ratio n of an ideal transformer
- The coupling factor between two inductors
- The gyration constant G of the gyrator
- The element values of:
- Current-feedback operational amplifiers, except for their transimpedance gain and output impedance
- Voltage-feedback operational amplifiers, except for their voltage gain and output impedance
- Bipolar and MOS transistors
- CE and CS differential pairs.
- Transfer functions for E, EZ, F, G, H, Y and Z are written as a simple (non-complex) fractions, from which the numerator and denominator can be expanded into polynomials of the Laplace variable s: a0 + a1s + a2s2 + ... + a nsn.
Please notice that the above conditions are NOT checked!
The poles are found as the solution for s of the determinant of the MNA matrix, which, under the above conditions, can always be written as a polynomial in s. The determinant is evaluated using minor expansion. This is relatively slow, but it does not have the disadvantage of generating false pole-zero pairs due to rounding errors that occur during a much faster process such as Gaussian elimination. The poles are obtained as the eigenvalues of a matrix, which is constructed from the polynomial coefficients of the Laplace variable s.
Zeros are found in a similar way, after application of Cramer’s rule.
Poles and zeros with a magnitude larger than 10N-2, in which N is the number of digits set by the calculation accuracy (default N = 20) are not displayed.