# 11.1.12.10. 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.``Circuit`(title, ground=0, global_nodes=())[source]

This class implements a cicuit netlist.

To get the corresponding Spice netlist use:

```circuit = Circuit()
...
str(circuit)
```
`clone`(title=None)[source]
`include`(path)[source]

Include a file.

`lib`(name, section=None)[source]

`parameter`(name, expression)[source]

Set a parameter.

`simulator`(*args, **kwargs)[source]
`str`(simulator=None)[source]

Return the formatted desk.

Parameters

simulator – simulator instance to select the flavour of a Spice library

`str_end`()[source]
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 XSpice element.

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:

`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`

`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`

`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`

`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 XSpice element.

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`

`copy_to`(netlist)[source]
`element`(name)[source]
property `element_names`
property `elements`
`get_node`(node, create=False)[source]

Return a node. node can be a node instance or node name. A node is created if create is set and the node don’t yet exist.

property `gnd`
`has_ground_node`()[source]

Test if ground node is connected

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

property `model_names`
property `models`
`node`(name)[source]
property `node_names`
property `nodes`
`subcircuit`(subcircuit)[source]

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.

`SPICE_GROUND_NAME` = '0'
`SPICE_GROUND_NUMBER` = 0
`connect`(pin)[source]
`disconnect`(pin)[source]
property `is_ground_node`
`merge`(node)[source]
property `name`
property `netlist`
property `pins`
class `PySpice.Spice.Netlist.``SubCircuit`(name, *nodes, **kwargs)[source]

This class implements a sub-cicuit netlist.

`check_nodes`()[source]

Check for dangling nodes in the subcircuit.

`clone`(name=None)[source]
property `external_nodes`
property `name`
property `parameters`

Parameters

class `PySpice.Spice.Netlist.``SubCircuitFactory`(**kwargs)[source]
`NAME` = None
`NODES` = None