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
-
PINS
= []¶
-
-
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)
-
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
-
property
model_type
¶
-
property
name
¶
-
property
parameters
¶
-
property
-
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.
-
PINS
= None¶
-
PREFIX
= None¶ SPICE element prefix
-
property
name
¶
-
property
netlist
¶
-
property
node_names
¶
-
property
nodes
¶
-
property
pins
¶
-
-
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 oftype
class Resistor(metaclass=ElementParameterMetaClass): <=> Resistor = ElementParameterMetaClass('Foo', ...)
-
property
number_of_pins
¶
-
property
number_of_positional_parameters
¶
-
property
optional_parameters
¶
-
property
parameters_from_args
¶
-
property
positional_parameters
¶
-
property
spice_to_parameters
¶
-
property
-
class
PySpice.Spice.Netlist.
NPinElement
(netlist, name, nodes, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.Element
-
PINS
= [<PySpice.Spice.Netlist.PinDefinition object>]¶
-
-
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.
-
AcLine
(*args, **kwargs)¶
-
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:
Attributes:
-
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:
Attributes:
-
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:
multiplier
alias m
scale
temperature
alias temp
device_temperature
alias dtemp
initial_condition
alias ic
Attributes:
-
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:
Attributes:
-
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:
multiplier
alias m
scale
temperature
alias temp
device_temperature
alias dtemp
initial_condition
alias ic
Attributes:
-
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:
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:
Attributes:
-
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:
Attributes:
-
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:
Attributes:
-
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:
-
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:
Attributes:
-
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:
Attributes:
-
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:
Attributes:
-
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:
-
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:
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:
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:
Attributes:
-
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:
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:
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:
Attributes:
-
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:
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:
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:
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:
Attributes:
-
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:
initial_state
Attributes:
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:
length
alias l
width
alias w
multiplier
alias m
scale
temperature
alias temp
device_temperature
alias dtemp
initial_condition
alias ic
Attributes:
-
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:
length
alias l
width
alias w
temperature
alias temp
device_temperature
alias dtemp
multiplier
alias m
ac
scale
noisy
Attributes:
-
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:
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:
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:
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:
initial_state
Attributes:
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:
initial_state
Attributes:
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:
Attributes:
-
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:
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:
Attributes:
-
property
element_names
¶
-
property
elements
¶
-
property
gnd
¶
-
property
model_names
¶
-
property
models
¶
-
property
node_names
¶
-
property
nodes
¶
-
property
subcircuit_names
¶
-
property
subcircuits
¶
-
-
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.
-
property
is_ground_node
¶
-
property
name
¶
-
property
netlist
¶
-
property
pins
¶
-
property
-
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.
-
property
element
¶
-
property
node
¶
-
-
class
PySpice.Spice.Netlist.
PinDefinition
(position, name=None, alias=None, optional=False)[source]¶ Bases:
object
This class defines a pin of an element.
-
property
alias
¶
-
property
name
¶
-
property
optional
¶
-
property
position
¶
-
property
-
class
PySpice.Spice.Netlist.
SubCircuit
(name, *nodes, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.Netlist
This class implements a sub-cicuit netlist.
-
property
external_nodes
¶
-
property
name
¶
-
property
parameters
¶ Parameters
-
property
-
class
PySpice.Spice.Netlist.
SubCircuitFactory
(**kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.SubCircuit
-
NAME
= None¶
-
NODES
= None¶
-