Measurement DuTs

Manage measurement data in DMT in as a measurement dut. Additionally has attributes which define the size and die of the dut.

class DMT.core.dut_meas.DutMeas(database_dir, name, dut_type, wafer=None, die=None, ndevices=1, deemb_name=None, **kwargs)[source]

Bases: DutView

Subclass of DutView that is used to capture relevant methods and properties of measured data.

Parameters:
database_dirstr

Root directory for saving duts and databases of this project.

namestr

Name of the dut to save it human readable.

dut_typeDutType
widthfloat64, optional

Width in m.

lengthfloat64, optional

Length in m.

waferstr, optional

Wafer identification string of this object.

diestr, optional

Die identification string of this object.

ndevicesinteger

Number of physically parallel devices of this measurement.

hashfloat64

Unique hash of this object.

Attributes:
widthfloat64

Width in m.

lengthfloat64

Length in m.

perimeterfloat64

Perimeter in m.

areafloat64

Area of this DutMeas object in m^2.

waferstr

Wafer identification string of this object.

diestr

Die identification string of this object.

ndevicesinteger

Number of physically parallel devices of this measurement.

Methods

run_simulation(sweep)

Raises NotImplementedError since measurements can not be simulated!

get_hash()

Return a unique hash based on some attributes of the DutMeas object.

add_short(short, key=’/dummies/short’, force=True)

Add a short dummy to the database of this DutMeas object.

add_open(short, key=’/dummies/short’, force=True)

Add an open dummy to the database of this DutMeas object.

get_output_data(sweep)

Raises NotImplementedError since a measurement can not return its output files.

add_open(open_, key='dummies/open')[source]

Add an open dummy to the database of this DutMeas object.

Parameters:
open_str or DMT.DataFrame or pd.DataFrame

The File or DataFrame with the short small signal parameters as a function of frequency.

keystr

Key that will be used to save the short dummy in the database. Default=’/dummies/short’

add_short(short, key='dummies/short')[source]

Add a short dummy to the database of this DutMeas object.

Parameters:
shortstr or DMT.DataFrame or pd.DataFrame

The File or DataFrame with the short small signal parameters as a function of frequency.

keystr

Key that will be used to save the short dummy in the database. Default=’/dummies/short’

classmethod from_json(json_content: Dict, classes_technology: List[Type[Technology]]) DutMeas[source]

Static class method. Loads a DutMeas object from a pickle file with full path save_dir.

Calls the from_json method of DutView with all dictionary inside the “parent” keyword. Afterwards the additional parameters are set correctly.

Parameters:
json_contentdict

Readed dictionary from a saved json DutMeas.

classes_technologyList[Type[Technology]]

All possible technologies this loaded DutMeas can have. One will be choosen according to the serialized technology loaded from the file.

Returns:
DutMeas

Loaded object.

get_hash()[source]

Empty string, so it is evaluated to false, but still a string.

Returns:
‘’
get_output_data(sweep)[source]
info_json(**_kwargs) Dict[source]

Returns a dict with serializeable content for the json file to create.

The topmost dict MUST have only one key: The string casted class name. Inside the parameters are:

  • A version key,

  • all extra parameters of DutMeas compared to DutView and

  • the info_json of DutView.

Returns:
dict

str(DutMeas): serialized content

join_key_temperature(*key_parts, temperature_converter=None)[source]

Collects the temperature from key_parts and replaces it by a proper temperature key part.

Parameters:
key_parts[str]

List of key strings to join. One element contains the temperature information.

temperature_convertercallable() object, optional

Function to convert a key part into a temperature.

Returns:
keystr

The correctly joined key_parts. If the temperature was inside, it is converted into “T” + temp + “K”.

make_input(sweep)[source]

Should genrate the input file for a given simulation sweep. This is not possible for measurements!

Raises:
OSError

Always when called.

prepare_simulation(sweep)[source]

Raise a OSError. Measurement duts can not be simulated!

Raises:
OSError

Always when called.

run_simulation(sweep)[source]

Raise a OSError. Measurements can not be simulated!

Raises:
OSError

Always when called.

temp_converter_default(key_part)[source]

Default converter from key_part to temperature. Asumes the temperature in the key parts is in Kelvin.

Parameters:
key_partstr

Key to inspect

Returns:
tempfloat or None

If key does not contain a temperature, -1 is returned. If id does contain a temperature, the temperature in Kelvin is returned.