x_verify module
Additional verification plots are available in
XVerify Module Documentation
Step to verify the extracted model by simulating and plotting measurement data and simulation data. Also allows global fitting but it is not recommended to fit too many parameters at once.
Author: Mario Krattenmacher | Mario.Krattenmacher@semimod.de Author: Markus Müller | Markus.Mueller3@tu-dresden.de
- class DMT.extraction.x_verify.XVerify(name, mcard, lib, op_definition, DutCircuitClass, model_deemb_method=None, verify_area_densities=False, required_specifiers=None, **kwargs)[source]
Bases:
XStep
XVerify implements parameter extraction steps that require circuit simulation for MOS and BJT type devices. Typically these steps are the last part of a parameter extraction flow, this is why they are used for “verification and tuning”.
- Parameters:
- same as for XStep, and additionally:
- verify_area_densities
Bool
,False
If True, currents and charges are normalized to the DutView.area for BJT type devices and to the device width for MOS type devices. These attributes must be stored in the DutView objects supplied to this XStep.
- fit_along
Specifiers.Current
orSpecifiers.Voltage
orSpecifiers.Frequency
, default=V_BE|FORCED The inner quantity that shall be fitted along.
- inner_sweep_voltage”: Specifiers.Current or Specifiers.Voltage, default=V_BE|FORCED
The inner sweep specifier (voltage or current) that shall be simulated.
- outer_sweep_voltage”: Specifiers.Current or Specifiers.Voltage, default=V_BC|FORCED
The outer sweep specifier (voltage or current) that shall be simulated.
- quantity_fit”: None
The electrical quantity that shall be fitted.
- add_data_to_plot(plot_obj, x_col, y_col, area_x=False, area_y=False, omega=False)[source]
This method adds x and y-axis data from self.data_reference and self.line_model to the plot object “plot_obj”.
- Parameters:
- plot_obj
DMT.Plot
This is the plot to which the lines shall be added.
- x_col
str
orDMT.specifier
This is the key for the x-axis data in self.data_reference and self.data_model.
- y_col
str
orDMT.specifier
This is the key for the y-axis data in self.data_reference and self.data_model.
- area_x
Bool
,False
If True, the x-axis data is normalized to the device area (BJT) or device width (MOS).
- area_y
Bool
,False
If True, the y-axis data is normalized to the device area (BJT) or device width (MOS).
- omega
Bool
,False
If True, the y-axis data is normalized to the angular frequency.
- plot_obj
- calc_all(*args, **kwargs)[source]
This method needs to start the calculation of the function to be optimized self.f_0 and its jacobian self.jac .
Calculating the jacobian here allows to use DMT’s parallel computing features, which might be relevant for circuit or TCAD simulations.
This function is called inside fit_function.
- Parameters:
- xdata
np.ndarray
The argument of the fit_function, scipy.curve_fit wants to calculate.
- paras_model
McParameterCollection
Parameters of the model to calculate. Can bei either a full modelcard or only a McParameterCollection.
- jac{
True
,False
},optional
This boolean controls wheather or not the jacobian is computed.
- reinit
Boolean
What is this?
- n_optimize
integer
The number of parameters to optimize. Not really needed but for memoization in XVerify.
- xdata
- Returns:
- self.data_model
dict
{} This is only returned in order to enable memoization. It is actually not really needed for anything else.
- self.data_model
- fit(data_model, paras_model, dut=None)[source]
cite from XStep docs: | - Return the data_model’s y values for the x-values, if the x-step uses a dut+sweep combination. | In this cases, XStep already carried out dut+sweep simulations with the parameters before calling the function. Promised. | Reason: This allows to use DMT’s multithreading capabilities, speeding up the extraction significantly.
- get_description()[source]
Return a tex description of this XStep. Used for generating the documentation. If not implemented, there is no description for this XStep in the documentation.
- get_plt_y(y_col, real=False)[source]
Generic method that generates a plot for the given y-Parameter y_col.
- Parameters:
- y_col
DMT.core.SpecifierStr
A Specifier that should correspond to a Y-parameter.
- real
Bool
,False
If True, plot a real part, else an imaginary part.
- y_col
- get_tex()[source]
Return a tex Representation of the Model that is beeing fitted. This can then be displayed in the UI.
- init_data_reference_per_dataframe(dataframe, t_meas, dut=None, key=None)[source]
Find the required data in the user supplied dataframe or database and write them into data_model attribute of XStep object.
- set_initial_guess(reference_data)[source]
This methods should set an initial guess for the optimization parameters from the available reference_data array. If no initial guess is set for a parameter, the value for the initial guess is taken form the modelcard. For steps which use a simulation of a DutCircuit, here the sweep should be defined, too.