bag3_testbenches.measurement.digital.flop.timing

Module Contents

Classes

FlopConstraintTimingMM

Measures setup/hold/recovery/removal time.

class bag3_testbenches.measurement.digital.flop.timing.FlopConstraintTimingMM(*args: Any, **kwargs: Any)[source]

Bases: bag3_testbenches.measurement.search.IntervalSearchMM

Measures setup/hold/recovery/removal time.

Notes

specification dictionary has the following entries in addition to IntervalSearchMM:

meas_modeUnion[str, FlopMeasMode]

the measurement mode.

flop_paramsMapping[str, Any]

flop parameters.

delay_thresfloat

Defaults to 0.05. Percent increase in delay for setup/hold constraints. Use infinity to disable. At least one of delay_thres or delay_inc must be specified. If both are given, both constraints will be satisfied.

delay_incfloat

Defaults to infinity. Increase in delay in seconds for setup/hold constraints. At least one delay_thres or delay_inc must be specified. If both are given, both constraints will be satisfied.

constraint_minfloat

Defaults to negative infinity. If the timing constraint is less than this value, return this value instead. Used to speed up simulation.

sim_env_namestr

Use to query for sim_env dependent timing offset.

tbm_clsUnion[str, Type[FlopTimingBase]]

The testbench class.

tbm_specsMapping[str, Any]

TestbenchManager specifications.

search_paramsMapping[str, Any]

interval search parameters, with the following entries:

max_marginfloat

Optional. maximum timing margin in seconds. Defaults to t_clk_per/4.

tolfloat

tolerance of the binary search. Terminate the search when it is below this value.

overhead_factorfloat

ratio of simulation startup time to time it takes to simulate one sweep point.

fake: bool

Defaults to False. True to output fake data for debugging.

use_dutbool

Defaults to True. True to instantiate DUT.

wrapper_paramsMapping[str, Any]

Used only if simulated with a DUT wrapper. Contains the following entries:

libstr

wrapper library name.

cellstr

wrapper cell name.

paramsMapping[str, Any]

DUT wrapper schematic parameters.

pinsSequence[str]

wrapper pin list.

power_domainMapping[str, Tuple[str, str]

power domain of wrapper.

Initialize this MeasurementManager.

Returns:

  • tbm (TestbenchManager) – the TestbenchManager object.

  • tb_params (Mapping[str, Any]) – the testbench schematic parameters dictionary.

  • intv_params (Mapping[str, Mapping[str, Any]]) – A dictionary from search parameter name to its configuration dictionary. The values have the following entries:

    lowfloat

    lower bound.

    highOptional[float]

    upper bound. If None, perform a unbounded binary search.

    stepfloat

    initial step size for unbounded binary search.

    tolfloat

    tolerance of the binary search. Terminate the search when it is below this value.

    max_errfloat

    Used only in unbounded binary search. If unbounded binary search exceeds this value, raise an error.

    overhead_factorfloat

    ratio of simulation startup time to time it takes to simulate one sweep point.

  • intv_defaults (Mapping[str, Any]) – If any interval configuration are not specified, the value is taken from this dictionary.

  • has_init (bool) – True to run an initialization step.

  • use_dut (bool) – True to instantiate DUT.

get_init_result(adj_name: str) Dict[str, Any][source]
process_init(cur_info: bag.simulation.measure.MeasInfo, sim_results: bag.simulation.cache.SimResults) Tuple[Dict[str, Any], bool][source]
process_output_helper(cur_info: bag.simulation.measure.MeasInfo, sim_results: bag.simulation.cache.SimResults, remaining: Set[str]) Mapping[str, Tuple[Tuple[float, float], Dict[str, Any], bool]][source]