technology module
Technology class to describe all technology dependencies. Main use is scaling.
If a technology can use TRADICA, the class DMT.TRADICA.TechTradica
is recommended!
- class DMT.core.technology.Technology(name)[source]
Bases:
object
This abstract class shall bundle all relevant scaling and extraction routines that are specific for a given technologe.
- create_mcard_library(lib, mcard, path, dut_type=<DMT.core.dut_type.DutTypeInt object>)[source]
Creates a file containing model cards for all sizes of duts present in the lib.
- Parameters:
- lib
DutLib
- path
str
File path to write to.
- dut_type
DutType
,optional
Dut types to create model cards for.
- lib
- abstract print_tex(dut_ref, mcard)[source]
Prints a technology description, mainly used for autodocumentation reasons.
- Parameters:
- dut_ref
DutView`
Can be used to obtain tech quanties… (or to generate a TRADICA input file :) )
- mcard
McParameterCollection
A Modelcard that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- dut_ref
- scale_all(mcard, lE0, bE0, nfinger, config)[source]
This method receives a Modelcard (that includes relevant scaling parameters such as sheet resistances) and sets the scaled values accordingly.
- Parameters:
- mcard
McParameterCollection
A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- lE0
float64
The length of the desired emitter window to be modeled by mcard.
- bE0
float64
The width of the desired emitter window to be modeled by mcard.
- nfinger
integer
Number of emitter fingers.
- config
str
A unique identifier for the configuration.
- mcard
- scale_capacitances(mcard, lE0, bE0, nfinger, config)[source]
This method receives a Modelcard (that includes relevant scaling parameters such as sheet resistances) and sets the scaled capacitances accordingly.
- Parameters:
- mcard
McParameterCollection
A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- lE0
float64
The length of the desired emitter window to be modeled by mcard.
- bE0
float64
The width of the desired emitter window to be modeled by mcard.
- nfinger
integer
Number of emitter fingers.
- config
str
A unique identifier for the configuration.
- mcard
- scale_currents(mcard, lE0, bE0, nfinger, config)[source]
This method receives a Modelcard (that includes relevant scaling parameters such as sheet resistances) and sets the scaled currents accordingly.
- Parameters:
- mcard
McParameterCollection
A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- lE0
float64
The length of the desired emitter window to be modeled by mcard.
- bE0
float64
The width of the desired emitter window to be modeled by mcard.
- nfinger
integer
Number of emitter fingers.
- config
str
A unique identifier for the configuration.
- mcard
- scale_modelcard(mcard: MCard, lE0: float, bE0: float, nfinger: int, config: str, dut: DutView | None = None, lE_drawn_ref: float | None = None, bE_drawn_ref: float | None = None) MCard [source]
This method scales a already finished modelcard (no sheet resistances).
- Parameters:
- mcard
McParameterCollection
A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- lE0
float64
The length of the desired emitter window to be modeled by mcard.
- bE0
float64
The width of the desired emitter window to be modeled by mcard.
- nfinger
integer
Number of emitter fingers.
- config
str
A unique identifier for the configuration.
- dut
DutView
DutView to scale for.
- mcard
- scale_sheet_resistances(mcard, lE0, bE0, nfinger, config)[source]
This method receives a Modelcard (that includes relevant scaling parameters such as sheet resistances) and sets the scaled resistances accordingly.
- Parameters:
- mcard
McParameterCollection
A Modelcard or McParameterCollection that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.
- lE0
float64
The length of the desired emitter window to be modeled by mcard.
- bE0
float64
The width of the desired emitter window to be modeled by mcard.
- nfinger
integer
Number of emitter fingers.
- config
str
A unique identifier for the configuration.
- mcard
- abstract serialize()[source]
Return a dict which makes a constructor of the class callable
- Returns:
dict
Has 1 required (“class”) and 3 optional keys
“class”: always str(self.__class__), this is used to identify the correct technology during loading!
“constructor”: Name of the STATIC constructor method to call to create the technology. If not set, __init__ is used.
“args”: List of arguments to pass to the constructor
“kwargs”: List of keyword arguments to pass to the constructor
While loading a DutView the deserializiaton will be called like:
tech = getattr(cls_technology, serialized_technology["constructor"])(*args, **kwargs)