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.DipoleElementThis 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:
tc1tc2Attributes:
capacitance_expressiontc1tc2
-
class
PySpice.Spice.BasicElement.BehavioralInductor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
tc1tc2Attributes:
inductance_expressiontc1tc2
-
class
PySpice.Spice.BasicElement.BehavioralResistor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
tc1tc2Attributes:
resistance_expressiontc1tc2
-
class
PySpice.Spice.BasicElement.BehavioralSource(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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_expressionalias i
voltage_expressionalias v
tc1tc2temperaturealias temp
device_temperaturealias dtemp
Attributes:
current_expressionvoltage_expressiontc1tc2temperaturedevice_temperature
-
class
PySpice.Spice.BasicElement.BipolarJunctionTransistor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElementThis 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:
modelareaareacareabmultiplieralias m
offictemperaturealias temp
device_temperaturealias dtemp
Attributes:
modelareaareacareabmultiplieroffictemperaturedevice_temperature
-
class
PySpice.Spice.BasicElement.Capacitor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis class implements a capacitor.
Spice syntax:
CXXXXXXX n+ n- <value> <mname> <m=val> <scale=val> <temp=val> <dtemp=val> <ic=init_condition>
Keyword Parameters:
modelmultiplieralias m
scaletemperaturealias temp
device_temperaturealias dtemp
initial_conditionalias ic
Attributes:
capacitancemodelmultiplierscaletemperaturedevice_temperatureinitial_condition
-
class
PySpice.Spice.BasicElement.CoupledInductor(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.AnyPinElementThis class implementss a coupled (mutual) inductors.
Spice syntax:
KXXXXXXX LYYYYYYY LZZZZZZZ value
Keyword Parameters:
Attributes:
inductor1inductor2coupling_factor
-
class
PySpice.Spice.BasicElement.CoupledMulticonductorLine(netlist, name, *nodes, **parameters)[source]¶ Bases:
PySpice.Spice.Netlist.NPinElementThis class implements coupled multiconductor lines.
Spice syntax:
PXXXXXXX NI1 NI2 ... NIX GND1 NO1 NO2 ... NOX GND2 model <len=length>
Attributes:
modellengthalias 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.DipoleElementThis class implements a linear current-controlled current sources (CCCS).
Spice syntax:
FXXXXXXX n+ n- vname value <m=val>
Keyword Parameters:
multiplieralias m
Attributes:
sourcecurrent_gain
-
class
PySpice.Spice.BasicElement.CurrentControlledSwitch(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis class implements a current controlled switch.
Spice syntax:
WYYYYYYY n+ n- vname model <on> <off>
Keyword Parameters:
sourcemodelinitial_stateAttributes:
sourcemodelinitial_state
-
class
PySpice.Spice.BasicElement.CurrentControlledVoltageSource(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis class implements a linear current-controlled voltage sources (CCVS).
Spice syntax:
HXXXXXXX n+ n- vname value
Keyword Parameters:
Attributes:
sourcetransresistance
-
class
PySpice.Spice.BasicElement.CurrentSource(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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.FixedPinElementThis 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:
modelareamultiplieralias m
pjoffictemperaturealias temp
device_temperaturealias dtemp
Attributes:
modelareamultiplierpjoffictemperaturedevice_temperature
-
class
PySpice.Spice.BasicElement.DipoleElement(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElementThis class implements a base class for dipole element.
-
class
PySpice.Spice.BasicElement.GSSElement[source]¶ Bases:
PySpice.Spice.Netlist.NPinElementThis class implements GSS device.
Warning
Not implemented
-
class
PySpice.Spice.BasicElement.Inductor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
ntmultiplieralias m
scaletemperaturealias temp
device_temperaturealias dtemp
initial_conditionalias ic
Attributes:
inductancemodelntmultiplierscaletemperaturedevice_temperatureinitial_condition
-
class
PySpice.Spice.BasicElement.JunctionFieldEffectTransistor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.JfetElementThis class implements a bipolar junction transistor.
Spice syntax:
JXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs> <temp=t>
Keyword Parameters:
modelareaoffictemperaturealias temp
Attributes:
modelareaoffictemperature
-
class
PySpice.Spice.BasicElement.LosslessTransmissionLine(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElementThis 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:
impedancealias:Z0 is the characteristic impedance
time_delayalias:TD is the transmission delay
frequencyalias:F
normalized_lengthalias:NL
Attributes:
impedancetime_delayfrequencynormalized_lengthThe 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.TwoPortElementThis class implements lossy transmission lines.
Spice syntax:
OXXXXXXX n1 n2 n3 n4 model
Attributes:
modelNote
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.JfetElementThis class implements a Metal Semiconductor Field Effect Transistor.
Spice syntax:
ZXXXXXXX nd ng ns mname <area> <off> <ic=vds,vgs>
Keyword Parameters:
modelareaofficAttributes:
modelareaoffic
-
class
PySpice.Spice.BasicElement.Mosfet(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElementThis 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:
modelmultiplieralias m
lengthalias l
widthalias w
nfinonly for Xyce
drain_areaalias ad
source_areaalias as
drain_perimeteralias pd
source_perimeteralias ps
drain_number_squarealias nrd
source_number_squarealias nrs
offictemperaturealias temp
Attributes:
modelmultiplierlengthwidthnfinonly for Xyce
drain_areasource_areadrain_perimetersource_perimeterdrain_number_squaresource_number_squareoffictemperature
-
class
PySpice.Spice.BasicElement.NonLinearCurrentSource(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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 ... ) LaplaceKeyword Parameters:
Attributes:
transconductance
-
class
PySpice.Spice.BasicElement.NonLinearVoltageSource(name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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 ... ) LaplaceKeyword Parameters:
Attributes:
-
class
PySpice.Spice.BasicElement.Resistor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
acmultiplieralias m
scaletemperaturealias temp
device_temperaturealias dtemp
noisyAttributes:
resistanceacmultiplierscaletemperaturedevice_temperaturenoisy
-
class
PySpice.Spice.BasicElement.SemiconductorCapacitor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
modellengthalias l
widthalias w
multiplieralias m
scaletemperaturealias temp
device_temperaturealias dtemp
initial_conditionalias ic
Attributes:
capacitancemodellengthwidthmultiplierscaletemperaturedevice_temperatureinitial_condition
-
class
PySpice.Spice.BasicElement.SemiconductorResistor(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.DipoleElementThis 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:
modellengthalias l
widthalias w
temperaturealias temp
device_temperaturealias dtemp
multiplieralias m
acscalenoisyAttributes:
resistancemodellengthwidthtemperaturedevice_temperaturemultiplieracscalenoisy
-
class
PySpice.Spice.BasicElement.SingleLossyTransmissionLine(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElementThis class implements single lossy transmission lines.
Spice syntax:
YXXXXXXX N1 0 N2 0 model <len=length>
Attributes:
modellengthalias 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.NPinElementThis class implements a sub-circuit.
Spice syntax:
XYYYYYY node1 node2 ... subcircuit_name parameter1=value1 ...
Attributes:
subcircuit_nameNote
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.FixedPinElementThis class implements a base class for two-port element.
-
class
PySpice.Spice.BasicElement.UniformDistributedRCLine(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.Netlist.FixedPinElementThis class implements uniform distributed RC lines.
Spice syntax:
UXXXXXXX n1 n2 n3 model l=length <n=number_of_lumps>
Attributes:
modellengthalias l length of the RC line in meters
number_of_lumpsalias 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.TwoPortElementThis class implements a linear voltage-controlled current sources (VCCS).
Spice syntax:
Gxxx n+ n- nc+ nc- value <m=val>
Keyword Parameters:
multiplieralias m
Attributes:
transconductance
-
class
PySpice.Spice.BasicElement.VoltageControlledSwitch(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElementThis class implements a voltage controlled switch.
Spice syntax:
SXXXXXXX n+ n- nc+ nc- model <on> <off>
Keyword Parameters:
modelinitial_stateAttributes:
modelinitial_state
-
class
PySpice.Spice.BasicElement.VoltageControlledVoltageSource(netlist, name, *args, **kwargs)[source]¶ Bases:
PySpice.Spice.BasicElement.TwoPortElementThis 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.DipoleElementThis 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.NPinElementThis 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:
modelNote
As opposite to Spice, the model is specified before the nodes so as to act as *args.
Warning
Partially implemented.