11.1.10.6. Netlist

This modules implements circuit and subcircuit.

The definition of a netlist follows the same conventions as SPICE. For example this SPICE netlist is translated to Python like this:

.title Voltage Divider
Vinput in 0 10V
R1 in out 9k
R2 out 0 1k
.end
 circuit = Circuit('Voltage Divider')
circuit.V('input', 'in', circuit.gnd, 10)
 circuit.R(1, 'in', 'out', kilo(9))
 circuit.R(2, 'out', circuit.gnd, kilo(1))

or as a class definition:

class VoltageDivider(Circuit):

    def __init__(self, **kwargs):

        super().__init__(title='Voltage Divider', **kwargs)

        self.V('input', 'in', self.gnd, '10V')
        self.R(1, 'in', 'out', kilo(9))
        self.R(2, 'out', self.gnd, kilo(1))

The circuit attribute gnd represents the ground of the circuit or subcircuit, usually set to 0.

We can get an element or a model using its name using these two possibilities:

circuit['R1'] # dictionary style
circuit.R1    # attribute style

The dictionary style always works, but the attribute only works if it complies with the Python syntax, i.e. the element or model name is a valide attribute name (identifier), i.e. starting by a letter and not a keyword like ‘in’, cf. Python Language Reference.

We can update an element parameter like this:

circuit.R1.resistance = kilo(1)

To simulate the circuit, we must create a simulator instance using the Circuit.simulator():

simulator = circuit.simulator()
class PySpice.Spice.Netlist.AnyPinElement(netlist, name, *args, **kwargs)[source]

Bases: PySpice.Spice.Netlist.Element

class PySpice.Spice.Netlist.Circuit(title, ground=0, global_nodes=())[source]

Bases: PySpice.Spice.Netlist.Netlist

This class implements a cicuit netlist.

To get the corresponding Spice netlist use:

circuit = Circuit()
...
str(circuit)
include(path)[source]

Include a file.

parameter(name, expression)[source]

Set a parameter.

str(simulator=None)[source]

Return the formatted desk.

class PySpice.Spice.Netlist.DeviceModel(name, modele_type, **parameters)[source]

Bases: object

This class implements a device model.

Ngspice model types:

Code

Model Type

R

Semiconductor resistor model

C

Semiconductor capacitor model

L

Inductor model

SW

Voltage controlled switch

CSW

Current controlled switch

URC

Uniform distributed RC model

LTRA

Lossy transmission line model

D

Diode model

NPN

NPN BJT model

PNP

PNP BJT model

NJF

N-channel JFET model

PJF

P-channel JFET model

NMOS

N-channel MOSFET model

PMOS

P-channel MOSFET model

NMF

N-channel MESFET model

PMF

P-channel MESFET model

class PySpice.Spice.Netlist.Element(netlist, name, *args, **kwargs)[source]

Bases: object

This class implements a base class for an element.

It use a metaclass machinery for the declaration of the parameters.

format_node_names()[source]

Return the formatted list of nodes.

format_spice_parameters()[source]

Return the formatted list of parameters.

parameter_iterator()[source]

This iterator returns the parameter in the right order.

class PySpice.Spice.Netlist.ElementParameterMetaClass(class_name, base_classes, namespace)[source]

Bases: type

Metaclass to customise the element classes when they are created and to register SPICE prefix.

Element classes are of type ElementParameterMetaClass instead of type

class Resistor(metaclass=ElementParameterMetaClass):

<=>

Resistor = ElementParameterMetaClass('Foo', ...)
class PySpice.Spice.Netlist.FixedPinElement(netlist, name, *args, **kwargs)[source]

Bases: PySpice.Spice.Netlist.Element

class PySpice.Spice.Netlist.NPinElement(netlist, name, nodes, *args, **kwargs)[source]

Bases: PySpice.Spice.Netlist.Element

class PySpice.Spice.Netlist.Netlist[source]

Bases: object

This class implements a base class for a netlist.

Note

This class is completed with element shortcuts when the module is loaded.

A(*args, **kwargs)

This class implements a sub-circuit.

Spice syntax:

AXXXXXXX <%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd , or %d>
+ <[> <~><%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd , or %d>
+ <NIN1 or +NIN1 -NIN1 or "null">
+ <~>...< NIN2 .. <]> >
+ <%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd ,%d or %vnam >
+ <[> <~><%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd ,
or %d>< NOUT1 or +NOUT1 -NOUT1 >
+ <~>...< NOUT2 .. <]>>
+ MODELNAME

. MODEL MODELNAME MODELTYPE
+ <( PARAMNAME1 = <[> VAL1 <VAL2 ... <]>> PARAMNAME2 ..>)>

Attributes:

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

Warning

Partially implemented.

AmplitudeModulatedCurrentSource(*args, **kwargs)

This class implements a amplitude modulated waveform current source.

See AmplitudeModulatedMixin for documentation.

AmplitudeModulatedVoltageSource(*args, **kwargs)

This class implements a amplitude modulated waveform voltage source.

See AmplitudeModulatedMixin for documentation.

B(*args, **kwargs)

This class implements a behavioral source.

Spice syntax:

BXXXXXXX n+ n- <i=expr> <v=expr> <tc1=value> <tc2=value> <temp=value> <dtemp=value>

Keyword Parameters:

current_expression

alias i

voltage_expression

alias v

tc1

tc2

temperature

alias temp

device_temperature

alias dtemp

Attributes:

current_expression

voltage_expression

tc1

tc2

temperature

device_temperature

BJT(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

QXXXXXXX nc nb ne <ns> mname <area=val> <areac=val> <areab=val> <m=val> <off> <ic=vbe,vce> <temp=val> <dtemp=val>

Keyword Parameters:

model

area

areac

areab

multiplier

alias m

off

ic

temperature

alias temp

device_temperature

alias dtemp

Attributes:

model

area

areac

areab

multiplier

off

ic

temperature

device_temperature

BehavioralCapacitor(*args, **kwargs)

This class implements a behavioral capacitor.

Spice syntax:

CXXXXXXX n+ n- 'expression' <tc1=value> <tc2=value>
CXXXXXXX n+ n- C='expression' <tc1=value> <tc2=value>

Keyword Parameters:

tc1

tc2

Attributes:

capacitance_expression

tc1

tc2

BehavioralInductor(*args, **kwargs)

This class implements a behavioral inductor.

Spice syntax:

LXXXXXXX n+ n- 'expression' <tc1=value> <tc2=value>
LXXXXXXX n+ n- L='expression' <tc1=value> <tc2=value>

Keyword Parameters:

tc1

tc2

Attributes:

inductance_expression

tc1

tc2

BehavioralResistor(*args, **kwargs)

This class implements a behavioral resistor.

Spice syntax:

RXXXXXXX n+ n- 'expression' <tc1=value> <tc2=value>
Rxxxxxxx n+ n- R='expression' <tc1=value> <tc2=value>

Keyword Parameters:

tc1

tc2

Attributes:

resistance_expression

tc1

tc2

BehavioralSource(*args, **kwargs)

This class implements a behavioral source.

Spice syntax:

BXXXXXXX n+ n- <i=expr> <v=expr> <tc1=value> <tc2=value> <temp=value> <dtemp=value>

Keyword Parameters:

current_expression

alias i

voltage_expression

alias v

tc1

tc2

temperature

alias temp

device_temperature

alias dtemp

Attributes:

current_expression

voltage_expression

tc1

tc2

temperature

device_temperature

BipolarJunctionTransistor(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

QXXXXXXX nc nb ne <ns> mname <area=val> <areac=val> <areab=val> <m=val> <off> <ic=vbe,vce> <temp=val> <dtemp=val>

Keyword Parameters:

model

area

areac

areab

multiplier

alias m

off

ic

temperature

alias temp

device_temperature

alias dtemp

Attributes:

model

area

areac

areab

multiplier

off

ic

temperature

device_temperature

C(*args, **kwargs)

This class implements a capacitor.

Spice syntax:

CXXXXXXX n+ n- <value> <mname> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>

Keyword Parameters:

model

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

initial_condition

alias ic

Attributes:

capacitance

model

multiplier

scale

temperature

device_temperature

initial_condition

CCCS(*args, **kwargs)

This class implements a linear current-controlled current sources (CCCS).

Spice syntax:

FXXXXXXX n+ n- vname value <m=val>

Keyword Parameters:

multiplier

alias m

Attributes:

source

current_gain

CCS(*args, **kwargs)

This class implements a current controlled switch.

Spice syntax:

WYYYYYYY n+ n- vname model <on> <off>

Keyword Parameters:

source

model

initial_state

Attributes:

source

model

initial_state

CCVS(*args, **kwargs)

This class implements a linear current-controlled voltage sources (CCVS).

Spice syntax:

HXXXXXXX n+ n- vname value

Keyword Parameters:

Attributes:

source

transresistance

Capacitor(*args, **kwargs)

This class implements a capacitor.

Spice syntax:

CXXXXXXX n+ n- <value> <mname> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>

Keyword Parameters:

model

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

initial_condition

alias ic

Attributes:

capacitance

model

multiplier

scale

temperature

device_temperature

initial_condition

CoupledInductor(*args, **kwargs)

This class implementss a coupled (mutual) inductors.

Spice syntax:

KXXXXXXX LYYYYYYY LZZZZZZZ value

Keyword Parameters:

Attributes:

inductor1

inductor2

coupling_factor

CoupledMulticonductorLine(*args, **kwargs)

This class implements coupled multiconductor lines.

Spice syntax:

PXXXXXXX NI1 NI2 ... NIX GND1 NO1 NO2 ... NOX GND2 model <len=length>

Attributes:

model

length

alias len length of the line in meters

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

CurrentControlledCurrentSource(*args, **kwargs)

This class implements a linear current-controlled current sources (CCCS).

Spice syntax:

FXXXXXXX n+ n- vname value <m=val>

Keyword Parameters:

multiplier

alias m

Attributes:

source

current_gain

CurrentControlledSwitch(*args, **kwargs)

This class implements a current controlled switch.

Spice syntax:

WYYYYYYY n+ n- vname model <on> <off>

Keyword Parameters:

source

model

initial_state

Attributes:

source

model

initial_state

CurrentControlledVoltageSource(*args, **kwargs)

This class implements a linear current-controlled voltage sources (CCVS).

Spice syntax:

HXXXXXXX n+ n- vname value

Keyword Parameters:

Attributes:

source

transresistance

CurrentSource(*args, **kwargs)

This class implements an independent sources for current.

Spice syntax:

IYYYYYYY n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>> <distof1 <f1mag <f1phase>>> <distof2 <f2mag <f2phase>>>

Keyword Parameters:

Attributes:

dc_value

D(*args, **kwargs)

This class implements a junction diode.

Spice syntax:

DXXXXXXX n+ n- mname <area=val> <m=val> <pj=val> <off> <ic=vd> <temp=val> <dtemp=val>

Keyword Parameters:

model

area

multiplier

alias m

pj

off

ic

temperature

alias temp

device_temperature

alias dtemp

Attributes:

model

area

multiplier

pj

off

ic

temperature

device_temperature

Diode(*args, **kwargs)

This class implements a junction diode.

Spice syntax:

DXXXXXXX n+ n- mname <area=val> <m=val> <pj=val> <off> <ic=vd> <temp=val> <dtemp=val>

Keyword Parameters:

model

area

multiplier

alias m

pj

off

ic

temperature

alias temp

device_temperature

alias dtemp

Attributes:

model

area

multiplier

pj

off

ic

temperature

device_temperature

ExponentialCurrentSource(*args, **kwargs)

This class implements a exponential waveform current source.

See ExponentialMixin for documentation.

ExponentialVoltageSource(*args, **kwargs)

This class implements a exponential waveform voltage source.

See ExponentialMixin for documentation.

F(*args, **kwargs)

This class implements a linear current-controlled current sources (CCCS).

Spice syntax:

FXXXXXXX n+ n- vname value <m=val>

Keyword Parameters:

multiplier

alias m

Attributes:

source

current_gain

GSSElement(*args, **kwargs)

This class implements GSS device.

Warning

Not implemented

H(*args, **kwargs)

This class implements a linear current-controlled voltage sources (CCVS).

Spice syntax:

HXXXXXXX n+ n- vname value

Keyword Parameters:

Attributes:

source

transresistance

I(*args, **kwargs)

This class implements an independent sources for current.

Spice syntax:

IYYYYYYY n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>> <distof1 <f1mag <f1phase>>> <distof2 <f2mag <f2phase>>>

Keyword Parameters:

Attributes:

dc_value

Inductor(*args, **kwargs)

This class implements an inductor.

Spice syntax:

LYYYYYYY n+ n- <value> <mname> <nt=val> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>

Keyword Parameters:

nt

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

initial_condition

alias ic

Attributes:

inductance

model

nt

multiplier

scale

temperature

device_temperature

initial_condition

J(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp=t>

Keyword Parameters:

model

area

off

ic

temperature

alias temp

Attributes:

model

area

off

ic

temperature

JFET(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp=t>

Keyword Parameters:

model

area

off

ic

temperature

alias temp

Attributes:

model

area

off

ic

temperature

JunctionFieldEffectTransistor(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp=t>

Keyword Parameters:

model

area

off

ic

temperature

alias temp

Attributes:

model

area

off

ic

temperature

K(*args, **kwargs)

This class implementss a coupled (mutual) inductors.

Spice syntax:

KXXXXXXX LYYYYYYY LZZZZZZZ value

Keyword Parameters:

Attributes:

inductor1

inductor2

coupling_factor

L(*args, **kwargs)

This class implements an inductor.

Spice syntax:

LYYYYYYY n+ n- <value> <mname> <nt=val> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>

Keyword Parameters:

nt

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

initial_condition

alias ic

Attributes:

inductance

model

nt

multiplier

scale

temperature

device_temperature

initial_condition

LosslessTransmissionLine(*args, **kwargs)

This class implements a lossless transmission line.

Spice syntax:

TXXXXXXX N1 N2 N3 N4 Z0=VALUE <TD=VALUE> <F=FREQ <NL=NRMLEN>> <IC=V1, I1, V2, I2>

where TD or F, NL must be specified.

Keyword Parameters:

impedance

alias:Z0 is the characteristic impedance

time_delay

alias:TD is the transmission delay

frequency

alias:F

normalized_length

alias:NL

Attributes:

impedance

time_delay

frequency

normalized_length

The transmission delay, td, may be specified directly (as td=10ns, for example). Alternatively, a frequency f may be given, together with nl, the normalized electrical length of the transmission line with respect to the wavelength in the line at the frequency f. If a frequency is specified but nl is omitted, 0.25 is assumed (that is, the frequency is assumed to be the quarter-wave frequency). Note that although both forms for expressing the line length are indicated as optional, one of the two must be specified.

Note: Either time_delay or frequency must be given.

LossyTransmission(*args, **kwargs)

This class implements lossy transmission lines.

Spice syntax:

OXXXXXXX n1 n2 n3 n4 model

Attributes:

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

M(*args, **kwargs)

This class implements a Metal Oxide Field Effect Transistor.

Spice syntax:

MXXXXXXX nd ng ns nb mname <m=val> <l=val> <w=val>
+ <ad=val> <as=val> <pd=val> <ps=val> <nrd=val>
+ <nrs=val> <off> <ic=vds,vgs,vbs> <temp=t>

Keyword Parameters:

model

multiplier

alias m

length

alias l

width

alias w

nfin

only for Xyce

drain_area

alias ad

source_area

alias as

drain_perimeter

alias pd

source_perimeter

alias ps

drain_number_square

alias nrd

source_number_square

alias nrs

off

ic

temperature

alias temp

Attributes:

model

multiplier

length

width

nfin

only for Xyce

drain_area

source_area

drain_perimeter

source_perimeter

drain_number_square

source_number_square

off

ic

temperature

MESFET(*args, **kwargs)

This class implements a Metal Semiconductor Field Effect Transistor.

Spice syntax:

ZXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs>

Keyword Parameters:

model

area

off

ic

Attributes:

model

area

off

ic

MOSFET(*args, **kwargs)

This class implements a Metal Oxide Field Effect Transistor.

Spice syntax:

MXXXXXXX nd ng ns nb mname <m=val> <l=val> <w=val>
+ <ad=val> <as=val> <pd=val> <ps=val> <nrd=val>
+ <nrs=val> <off> <ic=vds,vgs,vbs> <temp=t>

Keyword Parameters:

model

multiplier

alias m

length

alias l

width

alias w

nfin

only for Xyce

drain_area

alias ad

source_area

alias as

drain_perimeter

alias pd

source_perimeter

alias ps

drain_number_square

alias nrd

source_number_square

alias nrs

off

ic

temperature

alias temp

Attributes:

model

multiplier

length

width

nfin

only for Xyce

drain_area

source_area

drain_perimeter

source_perimeter

drain_number_square

source_number_square

off

ic

temperature

Mesfet(*args, **kwargs)

This class implements a Metal Semiconductor Field Effect Transistor.

Spice syntax:

ZXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs>

Keyword Parameters:

model

area

off

ic

Attributes:

model

area

off

ic

Mosfet(*args, **kwargs)

This class implements a Metal Oxide Field Effect Transistor.

Spice syntax:

MXXXXXXX nd ng ns nb mname <m=val> <l=val> <w=val>
+ <ad=val> <as=val> <pd=val> <ps=val> <nrd=val>
+ <nrs=val> <off> <ic=vds,vgs,vbs> <temp=t>

Keyword Parameters:

model

multiplier

alias m

length

alias l

width

alias w

nfin

only for Xyce

drain_area

alias ad

source_area

alias as

drain_perimeter

alias pd

source_perimeter

alias ps

drain_number_square

alias nrd

source_number_square

alias nrs

off

ic

temperature

alias temp

Attributes:

model

multiplier

length

width

nfin

only for Xyce

drain_area

source_area

drain_perimeter

source_perimeter

drain_number_square

source_number_square

off

ic

temperature

N(*args, **kwargs)

This class implements GSS device.

Warning

Not implemented

NonLinearCurrentSource(*args, **kwargs)

This class implements a non-linear current sources.

Warning

Partially implemented

Spice syntax:

Gxxx n+ n- value={expr}
Gxxx n1 n2 TABLE {expression}=(x0,y0) (x1,y1) (x2,y2)
Gxxx n+ n- ( POLY (nd) ) nc1+ nc1- ( nc2+ nc2- ... ) p0 ( p1 ... )
Laplace

Keyword Parameters:

Attributes:

transconductance

NonLinearVoltageSource(*args, **kwargs)

This class implements a non-linear voltage source.

Warning

Partially implemented

Spice syntax:

Exxx n+ n- vol='expr'
Exxx n+ n- value={expr}
Exxx n1 n2 TABLE {expression}=(x0,y0) (x1,y1) (x2,y2)
Exxx n+ n- ( POLY (nd) ) nc1+ nc1- ( nc2+ nc2- ... ) p0 ( p1 ... )
Laplace

Keyword Parameters:

Attributes:

O(*args, **kwargs)

This class implements lossy transmission lines.

Spice syntax:

OXXXXXXX n1 n2 n3 n4 model

Attributes:

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

P(*args, **kwargs)

This class implements coupled multiconductor lines.

Spice syntax:

PXXXXXXX NI1 NI2 ... NIX GND1 NO1 NO2 ... NOX GND2 model <len=length>

Attributes:

model

length

alias len length of the line in meters

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

PieceWiseLinearCurrentSource(*args, **kwargs)

This class implements a piece wise linear waveform current source.

See PieceWiseLinearMixin for documentation.

PieceWiseLinearVoltageSource(*args, **kwargs)

This class implements a piece wise linear waveform voltage source.

See PieceWiseLinearMixin for documentation.

PulseCurrentSource(*args, **kwargs)

This class implements a pulse waveform current source.

See PulseMixin for documentation.

PulseVoltageSource(*args, **kwargs)

This class implements a pulse waveform voltage source.

See PulseMixin for documentation.

Q(*args, **kwargs)

This class implements a bipolar junction transistor.

Spice syntax:

QXXXXXXX nc nb ne <ns> mname <area=val> <areac=val> <areab=val> <m=val> <off> <ic=vbe,vce> <temp=val> <dtemp=val>

Keyword Parameters:

model

area

areac

areab

multiplier

alias m

off

ic

temperature

alias temp

device_temperature

alias dtemp

Attributes:

model

area

areac

areab

multiplier

off

ic

temperature

device_temperature

R(*args, **kwargs)

This class implements a resistor.

Spice syntax:

RXXXXXXX n+ n- value <ac=val> <m=val> <scale=val> <temp=val> <dtemp=val> <noisy=0|1>

Keyword Parameters:

ac

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

noisy

Attributes:

resistance

ac

multiplier

scale

temperature

device_temperature

noisy

RandomCurrentSource(*args, **kwargs)

This class implements a random waveform current source.

See RandomMixin for documentation.

RandomVoltageSource(*args, **kwargs)

This class implements a random waveform voltage source.

See RandomMixin for documentation.

Resistor(*args, **kwargs)

This class implements a resistor.

Spice syntax:

RXXXXXXX n+ n- value <ac=val> <m=val> <scale=val> <temp=val> <dtemp=val> <noisy=0|1>

Keyword Parameters:

ac

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

noisy

Attributes:

resistance

ac

multiplier

scale

temperature

device_temperature

noisy

S(*args, **kwargs)

This class implements a voltage controlled switch.

Spice syntax:

SXXXXXXX n+ n- nc+ nc- model <on> <off>

Keyword Parameters:

model

initial_state

Attributes:

model

initial_state

SemiconductorCapacitor(*args, **kwargs)

This class implements a semiconductor capacitor.

Spice syntax:

CXXXXXXX n+ n- <value> <mname> <l=length> <w=width> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>

Keyword Parameters:

model

length

alias l

width

alias w

multiplier

alias m

scale

temperature

alias temp

device_temperature

alias dtemp

initial_condition

alias ic

Attributes:

capacitance

model

length

width

multiplier

scale

temperature

device_temperature

initial_condition

SemiconductorResistor(*args, **kwargs)

This class implements a Semiconductor resistor.

Spice syntax:

RXXXXXXX n+ n- <value> <mname> <l=length> <w=width> <temp=val> <dtemp=val> m=<val> <ac=val> <scale=val> <noisy=0|1>

Keyword Parameters:

model

length

alias l

width

alias w

temperature

alias temp

device_temperature

alias dtemp

multiplier

alias m

ac

scale

noisy

Attributes:

resistance

model

length

width

temperature

device_temperature

multiplier

ac

scale

noisy

SingleFrequencyFMCurrentSource(*args, **kwargs)

This class implements a single frequency FM waveform current source.

See SingleFrequencyFMMixin for documentation.

SingleFrequencyFMVoltageSource(*args, **kwargs)

This class implements a single frequency FM waveform voltage source.

See SingleFrequencyFMMixin for documentation.

SingleLossyTransmissionLine(*args, **kwargs)

This class implements single lossy transmission lines.

Spice syntax:

YXXXXXXX N1 0 N2 0 model <len=length>

Attributes:

model

length

alias len length of the line in meters

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

SinusoidalCurrentSource(*args, **kwargs)

This class implements a sinusoidal waveform current source.

See SinusoidalMixin for documentation.

SinusoidalVoltageSource(*args, **kwargs)

This class implements a sinusoidal waveform voltage source.

See SinusoidalMixin for documentation.

SubCircuitElement(*args, **kwargs)

This class implements a sub-circuit.

Spice syntax:

XYYYYYY node1 node2 ... subcircuit_name parameter1=value1 ...

Attributes:

subcircuit_name

Note

As opposite to Spice, the circuit’s name is specified before the nodes so as to act as *args.

TransmissionLine(*args, **kwargs)

This class implements a lossless transmission line.

Spice syntax:

TXXXXXXX N1 N2 N3 N4 Z0=VALUE <TD=VALUE> <F=FREQ <NL=NRMLEN>> <IC=V1, I1, V2, I2>

where TD or F, NL must be specified.

Keyword Parameters:

impedance

alias:Z0 is the characteristic impedance

time_delay

alias:TD is the transmission delay

frequency

alias:F

normalized_length

alias:NL

Attributes:

impedance

time_delay

frequency

normalized_length

The transmission delay, td, may be specified directly (as td=10ns, for example). Alternatively, a frequency f may be given, together with nl, the normalized electrical length of the transmission line with respect to the wavelength in the line at the frequency f. If a frequency is specified but nl is omitted, 0.25 is assumed (that is, the frequency is assumed to be the quarter-wave frequency). Note that although both forms for expressing the line length are indicated as optional, one of the two must be specified.

Note: Either time_delay or frequency must be given.

U(*args, **kwargs)

This class implements uniform distributed RC lines.

Spice syntax:

UXXXXXXX n1 n2 n3 model l=length <n=number_of_lumps>

Attributes:

model

length

alias l length of the RC line in meters

number_of_lumps

alias n

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

UniformDistributedRCLine(*args, **kwargs)

This class implements uniform distributed RC lines.

Spice syntax:

UXXXXXXX n1 n2 n3 model l=length <n=number_of_lumps>

Attributes:

model

length

alias l length of the RC line in meters

number_of_lumps

alias n

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

V(*args, **kwargs)

This class implements an independent sources for voltage.

Spice syntax:

VXXXXXXX n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>> <distof1 <f1mag <f1phase>>> <distof2 <f2mag <f2phase>>>

Keyword Parameters:

Attributes:

dc_value

VCCS(*args, **kwargs)

This class implements a linear voltage-controlled current sources (VCCS).

Spice syntax:

Gxxx n+ n- nc+ nc- value <m=val>

Keyword Parameters:

multiplier

alias m

Attributes:

transconductance

VCS(*args, **kwargs)

This class implements a voltage controlled switch.

Spice syntax:

SXXXXXXX n+ n- nc+ nc- model <on> <off>

Keyword Parameters:

model

initial_state

Attributes:

model

initial_state

VCVS(*args, **kwargs)

This class implements a linear voltage-controlled voltage sources (VCVS).

Spice syntax:

EXXXXXXX n+ n- nc+ nc- value

Keyword Parameters:

Attributes:

voltage_gain

VoltageControlledCurrentSource(*args, **kwargs)

This class implements a linear voltage-controlled current sources (VCCS).

Spice syntax:

Gxxx n+ n- nc+ nc- value <m=val>

Keyword Parameters:

multiplier

alias m

Attributes:

transconductance

VoltageControlledSwitch(*args, **kwargs)

This class implements a voltage controlled switch.

Spice syntax:

SXXXXXXX n+ n- nc+ nc- model <on> <off>

Keyword Parameters:

model

initial_state

Attributes:

model

initial_state

VoltageControlledVoltageSource(*args, **kwargs)

This class implements a linear voltage-controlled voltage sources (VCVS).

Spice syntax:

EXXXXXXX n+ n- nc+ nc- value

Keyword Parameters:

Attributes:

voltage_gain

VoltageSource(*args, **kwargs)

This class implements an independent sources for voltage.

Spice syntax:

VXXXXXXX n+ n- <<dc> dc/tran value> <ac <acmag <acphase>>> <distof1 <f1mag <f1phase>>> <distof2 <f2mag <f2phase>>>

Keyword Parameters:

Attributes:

dc_value

W(*args, **kwargs)

This class implements a current controlled switch.

Spice syntax:

WYYYYYYY n+ n- vname model <on> <off>

Keyword Parameters:

source

model

initial_state

Attributes:

source

model

initial_state

X(*args, **kwargs)

This class implements a sub-circuit.

Spice syntax:

XYYYYYY node1 node2 ... subcircuit_name parameter1=value1 ...

Attributes:

subcircuit_name

Note

As opposite to Spice, the circuit’s name is specified before the nodes so as to act as *args.

XSpiceElement(*args, **kwargs)

This class implements a sub-circuit.

Spice syntax:

AXXXXXXX <%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd , or %d>
+ <[> <~><%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd , or %d>
+ <NIN1 or +NIN1 -NIN1 or "null">
+ <~>...< NIN2 .. <]> >
+ <%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd ,%d or %vnam >
+ <[> <~><%v ,%i ,%vd ,%id ,%g,%gd ,%h,%hd ,
or %d>< NOUT1 or +NOUT1 -NOUT1 >
+ <~>...< NOUT2 .. <]>>
+ MODELNAME

. MODEL MODELNAME MODELTYPE
+ <( PARAMNAME1 = <[> VAL1 <VAL2 ... <]>> PARAMNAME2 ..>)>

Attributes:

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

Warning

Partially implemented.

Y(*args, **kwargs)

This class implements single lossy transmission lines.

Spice syntax:

YXXXXXXX N1 0 N2 0 model <len=length>

Attributes:

model

length

alias len length of the line in meters

Note

As opposite to Spice, the model is specified before the nodes so as to act as *args.

Z(*args, **kwargs)

This class implements a Metal Semiconductor Field Effect Transistor.

Spice syntax:

ZXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs>

Keyword Parameters:

model

area

off

ic

Attributes:

model

area

off

ic

model(name, modele_type, **parameters)[source]

Add a model.

subcircuit(subcircuit)[source]

Add a sub-circuit.

class PySpice.Spice.Netlist.Node(netlist, name)[source]

Bases: object

This class implements a node in the circuit. It stores a reference to the pins connected to the node.

class PySpice.Spice.Netlist.Pin(element, pin_definition, node)[source]

Bases: PySpice.Spice.Netlist.PinDefinition

This class implements a pin of an element. It stores a reference to the element, the name of the pin and the node.

add_current_probe(circuit)[source]

Add a current probe between the node and the pin.

The ammeter is named ElementName_PinName.

class PySpice.Spice.Netlist.PinDefinition(position, name=None, alias=None, optional=False)[source]

Bases: object

This class defines a pin of an element.

class PySpice.Spice.Netlist.SubCircuit(name, *nodes, **kwargs)[source]

Bases: PySpice.Spice.Netlist.Netlist

This class implements a sub-cicuit netlist.

check_nodes()[source]

Check for dangling nodes in the subcircuit.

property parameters

Parameters

class PySpice.Spice.Netlist.SubCircuitFactory(**kwargs)[source]

Bases: PySpice.Spice.Netlist.SubCircuit