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.
- 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_elements
List
[Union
[str
,CircuitElement
]] Either directly the netlist elements as a list of CircuitElements or strings (for equations)
- circuit_elements
- Raises:
TypeError
If one element of the circuit to create is neither a
CircuitElement
nor a simple str.
- Attributes:
- netlist
List
[Union
[str
,CircuitElement
]] Either directly the netlist elements as a list of CircuitElements or strings (for equations)
- netlist
- 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_type
str
Element type, possible values see are
CircuitElement.possible_types
.- name
str
Element name, for example: ‘R1’ for resistor 1. Names should be unique within their netlist.
- contact_nodes
tuple
[str
] Contact nodes of the element, for example: (‘n__1’, ‘n__2’)
- parameters
list
[tuple
[str
]] Parameters of the element, for example: [(‘R’, ‘1k’)]
- element_type
- Attributes:
- element_type
str
Element type, possible values see are
CircuitElement.possible_types
.- name
str
Element name, for example: ‘R1’ for resistor 1
- contact_nodes
tuple
[str
] Contact nodes of the element, for example: (‘n__1’, ‘n__2’)
- parameters
list
[tuple
[str
]] Parameters of the element, for example: [(‘R’, ‘1k’)]
- element_type
- 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.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.