SLiCAPprotos.py

SLiCAP module with basic SLiCAP classes and functions.

class allResults

Return structure for results, has attributes with instruction data and execution results.

A

Base conversion matrix (sympy.Matrix).

DCvalue

Zero-frequency value in case of dataType ‘pz’. (sympy.Expr, sympy.Float)

Dv

Vector with dependent variables (sympy.Matrix).

Iv

Vector with independent variables (sympy.Matrix).

M

MNA matrix (sympy.Matrix).

convType

Defines the circuit conversion type.

Will be copied from the instruction at the start of ts execution.

dataType

Defines the simulation data type.

Will be copied from the instruction at the start of its execution.

dcSolve

DC solution of the network.

denom

Laplace poly of denominator (sympy.Expr).

depVars()

Returns the list of detecors available AFTER execution of an instruction.

detLabel

Name for the detector quantity to be used in expressions or plots.

Will be generated by SLiCAPinstruction.instruction at the start of its execution.

detUnits

Detector units ‘V’ or ‘A’.

Will be copied from the instructionat the start of its execution.

detector

Names of the positive and negative detector.

Will be copied from the instructionat the start of its execution.

errors

Number of errors found in the definition of this instruction.

Will be copied from the instructionat the start of its execution.

gainType

Defines the simulation gain type.

Will be copied from the instruction at the start of its execution.

impulse

Unit impulse response (ILT) (sympy.Expr).

inoise

Total source-referred noise spectral density (sympy.Expr) in V^2/Hz or A^2/Hz.

inoiseTerms

Dict with lists with contributions to source-referred noise spectrum

Key = (str) name of the noise source Value = (sympy.Expr) contribution of that noise source to the source-referred noise spectrum in V^2/Hz or A^2/Hz

ivar

Total source-referred variance in V^2 or A^2 (sympy.Expr)

ivarTerms

Dict with lists with contributions to source-referred variance.

Key = (str) name of the dcvar source Value = (sympy.Expr) contribution to the source-referred variance in V^2 or A^2

label

Label to be used in plots.

laplace

Laplace transfer function, or detector current or voltage (sympy.Expr).

lgRef

Refdes of the controlled source that is assigned as loop gain reference.

Will be copied from the instructionat the start of its execution.

numer

Laplace poly of numerator (sympy.Expr).

numeric

If True, functions and constants will be evaluated numerically and rational numbers will be converted in sympy.Float

onoise

Total detector-referred noise spectrum (sympy.Expr) in V^2/Hz or A^2/Hz.

onoiseTerms

Dict with with contributions to detector-referred noise spectrum

Key = (str) name of the noise source Value = (sympy.Expr) contribution of that noise source to the detector-referred noise spectrum in V^2/Hz or A^2/Hz

ovar

Total detector-referred variance in V^2 or A^2 (sympy.Expr)

ovarTerms

Dict with lists with contributions to detector-referred variance.

Key = (str) name of the dcvar source Value = (sympy.Expr) contribution to the detector-referred variance in V^2 or A^2

pairedCircuits

Identifiers of paired subcircuits for base transformation of the circuit.

Will be copied from the instructionat the start of its execution.

pairedVars

Extension of paired nodes and branches for base transformation of the circuit.

Will be copied from SLiCAPinstruction.instruction at the start of its execution.

parDefs

Parameter definitions for the instruction.

Will be copied from SLiCAPinstruction.instruction at the start of its execution.

params

Results of parameter sweep (dataType = ‘param’).

poles

Complex frequencies in [rad/s] (list)

removePairSubName

Setting for changing the parameter names of paired subcircuits.

Will be copied from the instructionat the start of its execution.

snoiseTerms

Dict with source noise spectra.

Key = (str) name of the noise source Value = (sympy.Expr) noise spectral density in V^2/Hz or A^2/Hz

solve

Laplace solution of the network.

source

Refdes of the signal source (independent v or i source).

Will be copied from the instructionat the start of its execution.

srcUnits

Source units ‘V’ or ‘A’.

Will be copied from the instructionat the start of its execution.

step

Setting for parameter stepping.

Will be copied from the instructionat the start of its execution.

stepArray

Array (list of lists) with values for step method array.

Will be copied from the instructionat the start of its execution.

stepList

List with values for step method ‘list’.

Will be copied from the instructionat the start of its execution.

stepMethod

Step method for parameter stepping.

Will be copied from the instructionat the start of its execution.

stepNum

Number of steps for step methods ‘lin’ and ‘log’.

Will be copied from the instructionat the start of its execution.

stepResp

Unit step response (ILT) (sympy.Expr).

stepStart

Start value for stepping methods ‘lin’ and ‘log’.

Will be copied from the instructionat the start of its execution.

stepStop

Stop value for stepping methods ‘lin’ and ‘log’.

Will be copied from the instructionat the start of its execution.

stepVar

Defines the step variable (str) for step types ‘lin’, ‘log’ and ‘list’.

Will be copied from the instructionat the start of its execution.

stepVars

Defines the step variables for ‘array’ type parameter stepping.

Will be copied from the instructionat the start of its execution.

substitute

If True: parameters from self.circuit will be substituted recursively in element values.

Else: element values defined in the circuit will be used

svarTerms

Dict with source variances

Key = (str) name of the dcvar source Value = (sympy.Expr) dcvar value in V^2 or A^2

time

Time-domain response of the circuit (ILT) (sympy.Expr).

timeSolve

Time-domain solution of the network.

zeros

Complex frequencies in [rad/s] (list)

class circuit

Prototype (sub)circuit object.

circuits

(dict) with key-value pairs:

  • key: Name (str) of a subcircuit.

  • value: Associated circuit object (SLiCAPprotos.circuit).

controlled

(list) with reference designators (str) of controlled sources.

defPar(parName, parValue, units=None)

Updates or adds a parameter definition and updates the list SLiCAPprotos.circuit.params with names (sympy.Symbol) of undefined parameters.

Parameters:
  • parName (str, sympy.Symbol) – Name of the parameter.

  • parValue (str, sympy.Symbol, sympy.Expr, int, float) – Value of the parameter.

  • units (str, sympy.Symbol) – Value of the parameter, defaults to None

Returns:

None

Return type:

NoneType

defPars(parDict)

Adds or modifies multiple parameter definitions and updates the list circuit.params with names (sympy.Symbol) of undefined parameters.

Params parDict:

Dictionary with key-value pairs:

  • key: parName (str, sympy.Symbol): name of the parameter.

  • value: parValue (str, float, int, sympy object): value or expression of the parameter.

Returns:

None

Return type:

None

delPar(parName)

Deletes a parameter definition and updates the list SLiCAPprotos.circuit.params with names (sympy.core.symbol.Symbol) of undefined parameters.

Parameters:

parName (str, sympy.core.symbol.Symbol) – Name of the parameter.

Returns:

None

Return type:

NoneType

depVars

(list) with names (str) of independent variables:

  • nodal voltages:

    A nodal voltage will be named as: ‘V_<node name>’. The reference node ‘V_0’ is also listed, but it cannot be used as detector.

  • branch currents. Branch current will be named ad follows:

    • Current through a two-terminal element:

      • Vxxx: ‘I_Vxxx’

      • Rxxx with model ‘r’: ‘I_Rxxx’

      • Lxxx: ‘I_Lxxx’

    • Currents through the input port or the output port of controlled sources:

      • Exxx output port: ‘Io_Exxx’

      • Fxxx input port: ‘Ii_Fxxx’

      • Gxxx, model = ‘G’, output port: ‘Io_Gxxx’

      • Hxxx, input port: ‘Ii_Hxxx’, output port: ‘Io_xxx’

detector

Signal detector None if not defined, or a list with two names of dependent variales or one name and ‘None’.

elements

(dict) with key-value pairs:

  • key: Reference designator (str) of the element.

  • value: Element object (SLiCAPprotos.element)

errors

Number (int) of errors found during checking of the circuit. Defaults to 0.

file

Name (str) of the netlist file. Defaults to None.

getElementValue(elementID, param='value', substitute=True, numeric=False)

Returns the value or expression of one or more circuit elements.

If instruction.numeric == True it will perform a full recursive substitution of all circuit parameter definitions.

This method is called by instruction.circuit.getElementValue() with keyword arg numeric = True if instruction.simType is set to ‘numeric’.

Parameters:
  • elementID (str, list) – name(s) of the element(s)

  • param (str) –

    name of the parameter (equal for all elements):

    • ’value’: Laplace value

    • ’dc’: DC value (independent sources only)

    • ’noise’: Noise spectral density (independent sources only)

    • ’dcvar’: DC variance (independent sources only)

    Defaults to ‘value’

  • substitute (Bool) –

    • True: circuit parameters will be recursively substituted

    • False: Element values or expressions will be returned as defined

    Defaults to True

  • numeric (Bool) –

    • True: Numeric values of functions and constants will be evaluated and rational numbers will be converted to sympy.Float.

    • False: No numeric evaluation of functions and constants

    Defaults to False

Returns:

if type(parNames) == list:

return value = dict with key-value pairs: key (sympy.core.symbol.Symbol): name of the parameter, value (int, float, sympy expression): value of the parameter

else: value or expression

Return type:

dict, sympy.Float, sympy.Expr

getParValue(parNames, substitute=True, numeric=False)

Returns the value or expression of one or more parameters.

If substitute == True, recursive substitution of all circuit parameters will be applied.

If numeric == True, numeric values of functions wand constants will be evaluated and converted to sympy.Floats

Parameters:
  • parNames (str, sympy.Symbol, list) – name(s) of the parameter(s)

  • substitute (Bool) –

    • True: circuit parameters will be recursively substituted

    • False: Parameter values or expressions will be returned as defined

    Defaults to True

  • numeric (Bool) –

    • True: Numeric values of functions and constants will be evaluated and rational numbers will be converted to sympy.Float

    • False: No numeric evaluation of functions and constants

    Defaults to False

Returns:

  • If type(parNames) == list: a dict with key-value pairs:

    • key (sympy.Symbol): name of the parameter

    • value (sympy.Float, sympy.Expr): value of the parameter

  • Else: value or expression (sympy.Float or sympy.Expr).

Return type:

dict, sympy.Float, sympy.Expr

indepVars

(list) with reference designators (str) of independent variables:

  • independent voltage sources

  • independent current sources.

lgRef

Loopgain reference: None if not defined ,or a list with two identifies controlled sources or one idenfifier and ‘None’.

libs

(list) with names (str) of library files found in netlist lines starting with ‘,lib’ or ‘.inc’.

modelDefs

(dict) with key-value pairs:

  • key: Name (sympy.core.symbol.Symbol) of a model.

  • value: Associated model object (SLiCAPprotos.model).

nodes

(list) with names (str) of circuit nodes.

parDefs

(dict) with key-value pairs:

  • key: Name (sympy.core.symbol.Symbol) of a circuit parameter.

  • value: Value (sympy object, float, int) of the parameter.

parUnits

(dict) with key-value pairs:

  • key: Name (sympy.core.symbol.Symbol) of a circuit parameter.

  • value: Units (str) of the parameter.

params
  • If SLiCAPcircuit.subCKT == True:

    (dict) with key-value pairs:

    • key: Name (sympy.core.symbol.Symbol) of a parameter that can be passed to the sub circuit.

    • value: Default value (sympy object, float, int) of the parameter.

  • Else:

    • (list) with names (sympy.core.symbol.Symbol) of undefined parameters.

source

Signal source: None if not defined, or a list with two identifies of independent sources or one idenfifier and ‘None’.

subCKT

(bool) True if the circuit is a sub circuit. Defaults to False.

title

Title (str) of the circuit. Defautls to None.

updateParams()

Updates self.params (list with undefined parameters) after modification of parameter definitions in self.parDefs.

class element

Prototype circuit element object.

model

Name (str) of the model of the element.

nodes

(list) with names (str) of the nodes to which the element is connected.

params

(dict) with key-value pairs:

  • key (sympy.core.symbol.Symbol): Name of an element parameter.

  • value (sympy object, float, int): Value of the parameter.

refDes

Element reference designator (str), defaults to ‘’.

refs

(list) with reference designators of elements (str) that are referenced to by the element.

type

Element type: First letter of refdes (str).

class modelDef

Protpotype for model definitions that can be added to SLiCAP.

name

Name (str) of the model.

params

(dict) with key-value pairs:

  • key (str): Model parameter name

  • value (sympy object, float, int): Value or expression

type

Name (str) of the built-in model type that should be used for this model.