11.1.10.1. BasicElement¶
This module implements SPICE circuit elements.
Warning
Some elements are partially implemented.
Warning
The API documentation generated by Sphinx is perfectible for this module. The source code can be more informative.
Note
It would be nice to have a useful and working documentation in the interactive environment.
The element’s parameters are internally implemented using class attributes and descriptors.
There are two types of parameters, positionals which are required and where the order mater, and optional parameters which are passed as keyword arguments.
Parameters are registered with more expressive and longer names than their Spice counterparts. For optional parameters, we can use both Spice and longer name for convenience.
See Ngspice documentation for details.
First letter |
Element description |
A |
XSPICE code model |
B |
Behavioral (arbitrary) source |
C |
Capacitor |
D |
Diode |
E |
Voltage-controlled voltage source (VCVS) |
F |
Current-controlled current source (CCCs) |
G |
Voltage-controlled current source (VCCS) |
H |
Current-controlled voltage source (CCVS) |
I |
Current source |
J |
Junction field effect transistor (JFET) |
K |
Coupled (Mutual) Inductors |
L |
Inductor |
M |
Metal oxide field effect transistor (MOSFET) |
N |
Numerical device for GSS |
O |
Lossy transmission line |
P |
Coupled multiconductor line (CPL) |
Q |
Bipolar junction transistor (BJT) |
R |
Resistor |
S |
Switch (voltage-controlled) |
T |
Lossless transmission line |
U |
Uniformly distributed RC line |
V |
Voltage source |
W |
Switch (current-controlled) |
X |
Subcircuit |
Y |
Single lossy transmission line (TXL) |
Z |
Metal semiconductor field effect transistor (MESFET) |
-
class
PySpice.Spice.BasicElement.
BehavioralCapacitor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
BehavioralInductor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
BehavioralResistor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
BehavioralSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
BipolarJunctionTransistor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
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
-
class
PySpice.Spice.BasicElement.
Capacitor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
CoupledInductor
(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.AnyPinElement
This class implementss a coupled (mutual) inductors.
Spice syntax:
KXXXXXXX LYYYYYYY LZZZZZZZ value
Keyword Parameters:
Attributes:
inductor1
inductor2
coupling_factor
-
class
PySpice.Spice.BasicElement.
CoupledMulticonductorLine
(netlist, name, *nodes, **parameters)[source]¶ Bases:
PySpice.Spice.Netlist.NPinElement
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.
-
class
PySpice.Spice.BasicElement.
CurrentControlledCurrentSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
CurrentControlledSwitch
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
CurrentControlledVoltageSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
This class implements a linear current-controlled voltage sources (CCVS).
Spice syntax:
HXXXXXXX n+ n- vname value
Keyword Parameters:
Attributes:
source
transresistance
-
class
PySpice.Spice.BasicElement.
CurrentSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
Diode
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
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
-
class
PySpice.Spice.BasicElement.
DipoleElement
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
This class implements a base class for dipole element.
-
class
PySpice.Spice.BasicElement.
GSSElement
[source]¶ Bases:
PySpice.Spice.Netlist.NPinElement
This class implements GSS device.
Warning
Not implemented
-
class
PySpice.Spice.BasicElement.
Inductor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
JunctionFieldEffectTransistor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.JfetElement
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
-
class
PySpice.Spice.BasicElement.
LosslessTransmissionLine
(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
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.
-
class
PySpice.Spice.BasicElement.
LossyTransmission
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
This class implements lossy transmission lines.
Spice syntax:
OXXXXXXX n1 n2 n3 n4 model
Attributes:
model
Note
As opposite to Spice, the model is specified before the nodes so as to act as *args.
-
class
PySpice.Spice.BasicElement.
Mesfet
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.JfetElement
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
-
class
PySpice.Spice.BasicElement.
Mosfet
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
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
-
class
PySpice.Spice.BasicElement.
NonLinearCurrentSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
NonLinearVoltageSource
(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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:
-
class
PySpice.Spice.BasicElement.
Resistor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
SemiconductorCapacitor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
SemiconductorResistor
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
SingleLossyTransmissionLine
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
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.
-
class
PySpice.Spice.BasicElement.
SubCircuitElement
(netlist, name, subcircuit_name, *nodes, **parameters)[source]¶ Bases:
PySpice.Spice.Netlist.NPinElement
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.
-
class
PySpice.Spice.BasicElement.
TwoPortElement
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
This class implements a base class for two-port element.
-
class
PySpice.Spice.BasicElement.
UniformDistributedRCLine
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElement
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.
-
class
PySpice.Spice.BasicElement.
VoltageControlledCurrentSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
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
-
class
PySpice.Spice.BasicElement.
VoltageControlledSwitch
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
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
-
class
PySpice.Spice.BasicElement.
VoltageControlledVoltageSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElement
This class implements a linear voltage-controlled voltage sources (VCVS).
Spice syntax:
EXXXXXXX n+ n- nc+ nc- value
Keyword Parameters:
Attributes:
voltage_gain
-
class
PySpice.Spice.BasicElement.
VoltageSource
(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElement
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
-
class
PySpice.Spice.BasicElement.
XSpiceElement
(netlist, name, *nodes, **parameters)[source]¶ Bases:
PySpice.Spice.Netlist.NPinElement
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:
model
Note
As opposite to Spice, the model is specified before the nodes so as to act as *args.
Warning
Partially implemented.