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.

Parameters:
namestr

Name of the technology

Attributes:
namestr

Name of the technology

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:
libDutLib
pathstr

File path to write to.

dut_typeDutType, optional

Dut types to create model cards for.

abstract get_bib_entries()[source]

bibliograpy entries of a technology

name = ''[source]
abstract print_tex(dut_ref, mcard)[source]

Prints a technology description, mainly used for autodocumentation reasons.

Parameters:
dut_refDutView`

Can be used to obtain tech quanties… (or to generate a TRADICA input file :) )

mcardMcParameterCollection

A Modelcard that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

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:
mcardMcParameterCollection

A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

lE0float64

The length of the desired emitter window to be modeled by mcard.

bE0float64

The width of the desired emitter window to be modeled by mcard.

nfingerinteger

Number of emitter fingers.

configstr

A unique identifier for the configuration.

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:
mcardMcParameterCollection

A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

lE0float64

The length of the desired emitter window to be modeled by mcard.

bE0float64

The width of the desired emitter window to be modeled by mcard.

nfingerinteger

Number of emitter fingers.

configstr

A unique identifier for the configuration.

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:
mcardMcParameterCollection

A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

lE0float64

The length of the desired emitter window to be modeled by mcard.

bE0float64

The width of the desired emitter window to be modeled by mcard.

nfingerinteger

Number of emitter fingers.

configstr

A unique identifier for the configuration.

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:
mcardMcParameterCollection

A Modelcard or McParameterCompositon that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

lE0float64

The length of the desired emitter window to be modeled by mcard.

bE0float64

The width of the desired emitter window to be modeled by mcard.

nfingerinteger

Number of emitter fingers.

configstr

A unique identifier for the configuration.

dutDutView

DutView to scale for.

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:
mcardMcParameterCollection

A Modelcard or McParameterCollection that contains all parameters that are required for scaling, as well as the parameters that shall be scaled.

lE0float64

The length of the desired emitter window to be modeled by mcard.

bE0float64

The width of the desired emitter window to be modeled by mcard.

nfingerinteger

Number of emitter fingers.

configstr

A unique identifier for the configuration.

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)