xq_poa_bilinear_full_reg module

Extracts PoA parameters using bilinear scaling for a given quantity. Subclass this for easier PoA separations such as the classical one.

  • quantity_a -> area related quantitiy

  • quantity_l -> length related quantity

  • quantity_b -> width related quantity

  • quantity_corner -> corner related quantity

Author: Markus Müller | Markus.Mueller3@tu-dresden.de Author: Mario Krattenmacher | Mario.Krattenmacher@semimod.de

class DMT.extraction.xq_poa_bilinear_full_reg.XQPoaBilinearFullReg(*args, **kwargs)[source]

Bases: XQPoaBilinearFull

XPoa is the superclass for PoA analysis of electrical quantities. It implements a linear PoA analysis of a given quantity at multiple operating points using the QStep framework.

XPoaBilinearFull can perform a length and/or width related PoA separation for many operating point at the same time

(1) quantity(op) = quantity_a(op) * area + quantity_l * length + quantity_b * width + quantity_corner
length = length + delta_length
width = width + delta_width

at different operating points, depending on the parameter that are passed to this object. The deltas are optimized globally.
Parameters:
namestr

name of this XStep.

mcardDMT.core.McParamterCompositon

Modelcard where the parameters dl and db are stored (they will be unique)

libDMT.core.DutLib

Library object that stores all devices of interest for this XStep.

op_definition{DMT.core.specifier:val}

Dict whose keys and values define the operating regions for this XStep. E.g. specifiers:TEMPERATURE:300 would only allow data at temperature 300K.

quantityDMT.core.specifier

The quantity to be scaled, e.g. specifiers.CAPACITANCE + ‘B’ + ‘E’.

quantity_scalefloat

The scaling factor to determine the unit of the quantity, e.g. 1e3 will cause the quantity to be plotted as milli.

sweep_voltageDMT.core.specifier

The voltage that is to be used for sweeping during PoA analysis.

dut_typeDMT.core.DutType

The device type, e.g. DutType.npn.

scale_alongstr

Either ‘’width’, ‘length’ or ‘both’. If ‘width’ or ‘length’, only devices with different scale_along will be used for scaling at fixed other dimension specified by scale_at .

scale_atfloat

Only active if scale_along is ‘width’ or ‘length’. The other dimension is the fixed at scale_at .

legend_offbool, True

Turn the legend in the main_plot off or on.

negativebool

If negative values are to be scaled, this will invert them to generate nicer plots.

calc_all(xdata, paras_model, jac=True, reinit=False)[source]

Much simpler than for XStep. No DutTcad support and no Jacobian support.

fit(data_model, compositions)[source]

Set the y-values, using one quantity_a for each line and one quantity_p for all lines.

init_data_reference()[source]

Go through all relevant duts and extract I_B.

main_plot()[source]

Overwrite main plot.

plot_quantity_density_separated()[source]

Plot quantity as a function of operating point meas vs fit for multiple geometries for all analyzed duts

plot_quantity_scaled_fit()[source]

Plot quantity as a function of operating point meas vs fit for multiple geometries for all analyzed duts

plot_quantity_separated()[source]

Plot quantity as a function of operating point meas vs fit for multiple geometries for all analyzed duts

set_initial_guess_line(composition, line)[source]

For this simple linear extraction the starting guess need not be very clever. Just assume that quantity_p=0.

staticMetaObject = PySide6.QtCore.QMetaObject("XQPoaBilinearFullReg" inherits "XQPoaBilinearFull": )[source]