bag3_digital.measurement.liberty.char

Module Contents

Classes

LibertyCharMM

A class that handles circuit performance measurement.

class bag3_digital.measurement.liberty.char.LibertyCharMM(*args: Any, **kwargs: Any)[source]

Bases: bag.simulation.measure.MeasurementManager

A class that handles circuit performance measurement.

This class handles all the steps needed to measure a specific performance metric of the device-under-test. This may involve creating and simulating multiple different testbenches, where configuration of successive testbenches depends on previous simulation results. This class reduces the potentially complex measurement tasks into a few simple abstract methods that designers simply have to implement.

property fake: bool[source]
commit() None[source]

Commit changes to specs dictionary. Perform necessary initialization.

async async_measure_performance(name: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], harnesses: Optional[Sequence[bag.simulation.cache.DesignInstance]] = None) Mapping[str, Any][source]

A coroutine that performs measurement.

Parameters:
  • name (str) – name of this measurement.

  • sim_dir (Path) – simulation directory.

  • sim_db (SimulationDB) – the simulation database object.

  • dut (Optional[DesignInstance]) – the DUT to measure.

  • harnesses (Optional[Sequence[DesignInstance]]) – the list of DUT and harnesses to measure.

Returns:

output – the measurement results.

Return type:

Mapping[str, Any]

async _measure_in_cap(name: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], pin_name: str, in_cap_table: Mapping[str, float], output_table: Dict[str, Any]) float[source]
async _measure_out_cap(name: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], pin_name: str, related: str, max_cap: Optional[float], max_trf: float, cond: Mapping[str, int], out_cap_min: float, output_table: Dict[str, Any]) None[source]
async _measure_delay(name: str, sim_id: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], pin_name: str, related: str, sense_str: str, cond: Mapping[str, int], timing_type_str: str, zero_delay: bool, user_data: Optional[Mapping[str, Any]], output_list: List[Dict[str, Any]]) None[source]
async static _measure_flop(name: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], seq_name: str, mm: bag.simulation.measure.MeasurementManager, ans: Dict[str, Any]) None[source]
async _measure_custom(name: str, sim_dir: pathlib.Path, sim_db: bag.simulation.cache.SimulationDB, dut: Optional[bag.simulation.cache.DesignInstance], meas_name: str, meas_cls: str, meas_specs: Mapping[str, Any], ans: Dict[str, Any]) None[source]