Generate virtual data
This module helps to generate virtual measurement data to test an extraction in an standardized manner.
generate virtual data module
Functions to generate virtual measurement data.
- DMT.extraction.generate_virtual_data._get_sweep(name=None, v10=None, v12=None, v20=None, v30=0, i1=None, i0=None, ac=True, temp=300, freq=1000.0, dut_type=None, mode='lin')[source]
Return a a DMT.Sweep Definition suitable for three port device simulation. The contacts of a three port device considered by this routine are named port_1, port_2, port_3 and ground(0). Note that only TWO of the port voltages v10, v12, v20 and/or port currents i1, i0 and i2 (not yet implemented) can be defined, since two voltages or one voltage and one current unambiguously define all bias that can be forced for a two port.
The voltage v30 is special and defaults to zero (Emitter-Substrate short or Bulk-Source) short. If v30 is specified, it is added as the outermost voltage sweep. The voltage v30 is always interpreted as a list and never as a linear sweep.
- Parameters:
- v10, v12, v20, v30, i1, i0
float64
,np.array
(),list
,None
The sweep definition for the current or voltage at or between the respective port pin(s) 1, 2 and 0: (1) A constant value indicates a CONSTANT voltage/current. (2) A List and keyword “mode”=”lin”: Indicates a linear sweep for the voltage/current from the value of the [0]th array element to [1]th array element in [2]th array value equally spaced steps. (3) List and keyword “mode”=”list”: Value is swept according to the values specified in the list If the keyword mode ==”lin”, only one contact voltage or current can be swept!
- acbool,
optional
, default=True If True: return a sweep that contains an AC simulation definition for the specified frequency “freq”.
- tempfloat,[
float
],optional
, default=300 Temperature of the simulation in Kelvin. If a list of floats is given, the temperature is swept as the outermost sweep.
- freqfloat64,[
float
], 1e3 The frequency for AC simulations at every DC operating point in Hertz. If single value: Simulation only at this frequency. If three element list: Log sweep from 10^freq[0] to 10^freq[1] in freq[2] logarithmically spaced steps.
- dut_type
DutTypeInt
orDutTypeFlag
Indicates if the sweep is targeted at a MOSFET or BJT type device.
- mode
str
, “lin” or “list” Parameter that controls how the primary sweep variable shall be interpreted.
- v10, v12, v20, v30, i1, i0
- Returns:
- sweep
Sweep
DMT sweep definition
- sweep
- DMT.extraction.generate_virtual_data.generate_virtual_data(dut, sweeps, force=True, t_max=10000, n_core=4, rename=True, remove_simulations=True)[source]
Simulates a DuT for the specified sweeps and generates new keys in the DuT that represent the corresponding simulated data in its database.
- Parameters:
- dut
DutView`
DuT for which the simulated data shall be generated.
- sweeps[
Sweep
] List of sweeps that shall be simulated. The sweeps must have a meaningful unique names as DMT’s hashing function is not used here.
- rename
True
,Bool
If True, the sweep hases are removed from the keys in the database, which corresponds to typical measurements taken in a lab.
- dut
- Returns:
- run_simsbool
True, if any simulation was started. False if all simulations were read from hard disk.
- DMT.extraction.generate_virtual_data.get_output_def(qs_analysis=False, additional_outputs=None)[source]
Generalized
Sweep
outputdef creation for the DEVICE TCAD simulator. TODO: Maybe add to DMT.Device instead of here.
- DMT.extraction.generate_virtual_data.get_sweep_ac_vb(vbe=None, vce=None, freq=None, temperature=300, name='freq_vb_', **kwargs)[source]
Generate a forward Gummel sweep with inner Vbe sweep outer Vce sweep and additional small-signal AC analysis at a specific frequency for bipolar devices.
- Parameters:
- vbe
np.ndarray
,optional
List of vbe values to be simulated. Defaults to a linear sweep from 0.0 to 1.2 V in 0.1 Volt steps.
- vce
np.ndarray
,optional
The single value or list of vce values for which the vbe sweep is simulated. Defaults to a list from 0.0V to 3.0V in 16 equally spaced steps.
- freq
float
The frequency in Hertz at which the AC analysis shall be conducted.
- temperature
float
, 300,optional
The temperature at which the simulations shall be undertaken.
- name
str
, “freq_vb_”,optional
Should be a unique and useful name for the generated sweep.
- vbe
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp
- DMT.extraction.generate_virtual_data.get_sweep_ac_vbc(vbe=None, vbc=None, freq=None, temperature=300, name='freq_vbc', **kwargs)[source]
Generate a forward Gummel sweep with inner Vbe sweep outer Vbc sweep and additional small-signal AC analysis at a specific frequency for bipolar devices.
- Parameters:
- vbe
np.ndarray
,optional
List of vbe values to be simulated. Defaults to a linear sweep from 0.0 to 1.2 V in 0.01 Volt steps.
- vbc
np.ndarray
,optional
The single value or list of vbc values for which the vbe sweep is simulated. Defaults to a list with [-3.0, -2.5, -2.0, -1.5, -1.0, -0.7, -0.5, -0.2, 0, 0.2, 0.5, 0.7].
- freq
float
The frequency in Hertz at which the AC analysis shall be conducted.
- temperature
float
, 300,optional
The temperature at which the simulations shall be undertaken.
- name
str
, “freq_vbc”,optional
Should be a unique and useful name for the generated sweep.
- vbe
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp
- DMT.extraction.generate_virtual_data.get_sweep_ac_vc(vbe=None, vce=None, freq=None, temperature=300, name='freq_vc', **kwargs)[source]
Generate an output sweep with inner Vce sweep outer Vbe sweep and additional small-signal AC analysis at a specific frequency for bipolar devices.
- Parameters:
- vbe
np.ndarray
,optional
List of vbe values to be simulated. Defaults to a linear sweep from 0.0 to 1.2 V in 0.1 Volt steps.
- vce
np.ndarray
,optional
The single value or list of vce values for which the vbe sweep is simulated. Defaults to a list from -2.0V to 3.0V in 501 equally spaced steps.
- freq
float
The frequency in Hertz at which the AC analysis shall be conducted.
- temperature
float
, 300,optional
The temperature at which the simulations shall be undertaken.
- name
str
, “freq_vc”,optional
Should be a unique and useful name for the generated sweep.
- vbe
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp
- DMT.extraction.generate_virtual_data.get_sweep_bjt(name=None, vbe=None, vbc=None, vce=None, vse=0, ib=None, ie=None, ac=True, temp=300, freq=1000.0, mode='lin')[source]
Wrapper for the method get_sweep, suitable for BJT type devices. See the documentation of the get_sweep method for details.
- DMT.extraction.generate_virtual_data.get_sweep_fgummel(vbe=None, vbc=None, freq=None, temperature=300, name='fgummel_vbc', **kwargs)[source]
Generate a forward Gummel sweep for bipolar devices.
- Parameters:
- vbe
np.ndarray
,optional
List of vbe values to be simulated. Defaults to a linear sweep from 0 to 1.2 V in 0.01 Volt steps.
- vbc
np.ndarray
,optional
The single value or list of vbc values for which the vbe sweep is simulated. Defaults to a list with [-3.0, -2.5, -2.0, -1.5, -1.0, -0.7, -0.5, -0.2, 0, 0.2, 0.5, 0.7].
- temperature
float
, 300,optional
The temperature at which the simulations shall be undertaken.
- name
str
, “fgummel_vbc”,optional
Should be a unique and useful name for the generated sweep.
- vbe
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp
- DMT.extraction.generate_virtual_data.get_sweep_foutput_ib(ib=None, vce=None, temperature=300, name='foutput_ib', **kwargs)[source]
Generate a forced Ib sweep with inner Vce sweep and inner Ib sweep.
- Parameters:
- ib
np.ndarray
,optional
List of ib values to be simulated. Defaults to a linear sweep from 2 to 20 uA in 10 equally spaced steps.
- vce
np.ndarray
,optional
The single value or list of vce values for which the vbe sweep is simulated. Defaults to a list from 0.0V to 2.0V in 101 equally spaced steps.
- temperature
float
, 300,optional
The temperature at which the simulations shall be undertaken.
- name
str
, “foutput_ib”,optional
Should be a unique and useful name for the generated sweep.
- ib
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp
- DMT.extraction.generate_virtual_data.get_sweep_foutput_vb(vbe=None, vce=None, temperature=300, name='foutput_vb', freq=None, **kwargs)[source]
Get a forced base voltage forward output sweep.
- Parameters:
- vce
np.ndarray
,optional
List of vbe values for which the vce sweep shall be simulated. Defaults to a linear sweep from 0.0 to 3.0 V in 0.05 Volt steps.
- vbe
np.ndarray
,optional
The single value or list of vbe values for which the vce sweep is simulated. Defaults to a list from -1 to 1.2V in 0.01V.
- temperaturefloat,300,
optional
The temperature at which the simulations shall be undertaken.
- name
str
, “foutput_vb”,optional
Should be a unique and useful name for the generated sweep.
- vce
- Returns:
- swp
Sweep
A DMT Sweep object that can be simulated with TCAD and circuit simulators.
- swp