Circuit module

DMT description of a circuit.

Must be used to describe a circuit and then passed to a circuit simulator dut.

Later on this can be extended to allow (pseudo-)simulations directly inside DMT.

DMT.core.circuit.AHBT = 'AgilentHBT'[source]

Indicates a bipolar transistor modeled with AHBT in a circuit.

DMT.core.circuit.CAPACITANCE = 'C'[source]

Indicates a capacitance in a circuit.

DMT.core.circuit.CURRENT = 'I_Source'[source]

Indicates a current source in a circuit.

class DMT.core.circuit.Circuit(circuit_elements: List[str | CircuitElement], lib_files: List[str | Path] | None = None, va_root_files: List[str | Path | VAFileMap] | None = None)[source]

Bases: object

Circuit description as a list of CircuitElement

Parameters:
circuit_elementsList[Union[str, CircuitElement]]

Either directly the netlist elements as a list of CircuitElements or strings (for equations)

Raises:
TypeError

If one element of the circuit to create is neither a CircuitElement nor a simple str.

Attributes:
netlistList[Union[str, CircuitElement]]

Either directly the netlist elements as a list of CircuitElements or strings (for equations)

class DMT.core.circuit.CircuitElement(element_type: str, name: str, contact_nodes: Iterable[str], parameters: List[Tuple[str, str]] | MCard | McParameterCollection | None = None)[source]

Bases: object

Class that is used to describe netlist elements such as resistors, capacitors or inductors.

The possible CircuitElements define the DMT netlist format. Circuit simulator interfaces need to convert the DMT netlist format to their respective one.

This class has a special emphasis on good error messages and typesetting.

Parameters:
element_typestr

Element type, possible values see are CircuitElement.possible_types.

namestr

Element name, for example: ‘R1’ for resistor 1. Names should be unique within their netlist.

contact_nodestuple[str]

Contact nodes of the element, for example: (‘n__1’, ‘n__2’)

parameterslist[tuple[str]]

Parameters of the element, for example: [(‘R’, ‘1k’)]

Attributes:
element_typestr

Element type, possible values see are CircuitElement.possible_types.

namestr

Element name, for example: ‘R1’ for resistor 1

contact_nodestuple[str]

Contact nodes of the element, for example: (‘n__1’, ‘n__2’)

parameterslist[tuple[str]]

Parameters of the element, for example: [(‘R’, ‘1k’)]

possible_types = ['V_Source', 'I_Source', 'R', 'C', 'L', 'X', 'Short', 'BHT', 'BHT0', 'BJT', 'diode', 'va_module', 'pdk', '"hbt_n1s"', '"hbt_n1m"', '"n1m"', '"n1s"', 'n1s_sgp', 'n1m_sgp', 'hbt_n1s', 'hbt_n1m', 'npn13G2', '"npn13G2"', 'n1m', 'n1s', 'hbt_n2s', '"hbt_n2s"', 'hbt_n3s', '"npn_hicum"', '"npn_hs"', 'npn_hs', 'TSC250_Models_lib_TSC_250nm_Agilent_v1p0_schematic', '"TSC250_Models_lib_TSC_250nm_Agilent_v1p0_schematic"'][source]
DMT.core.circuit.DIODE = 'diode'[source]

Indicates a diode in a circuit.

DMT.core.circuit.HICUML0_HBT = 'BHT0'[source]

Indicates a bipolar transistor modeled with HICUM/L0 in a circuit.

DMT.core.circuit.HICUML2_HBT = 'BHT'[source]

Indicates a bipolar transistor modeled with HICUM/L2 in a circuit.

DMT.core.circuit.INDUCTANCE = 'L'[source]

Indicates a inductance in a circuit.

DMT.core.circuit.RESISTANCE = 'R'[source]

Indicates a resistance in a circuit.

DMT.core.circuit.SGP_BJT = 'BJT'[source]

Indicates a bipolar transistor modeled with SGP in a circuit.

DMT.core.circuit.SHORT = 'Short'[source]

Indicates a voltage source in a circuit.

DMT.core.circuit.SUBCIRCUIT = 'X'[source]

Indicates a subcircuit in a circuit.

DMT.core.circuit.VOLTAGE = 'V_Source'[source]

Indicates a voltage source in a circuit.