bag3_testbenches.measurement.digital.delay

Module Contents

Classes

RCDelayCharMM

Characterize delay of a digital gate using pulse sources in series with a resistor.

class bag3_testbenches.measurement.digital.delay.RCDelayCharMM(*args: Any, **kwargs: Any)[source]

Bases: bag.simulation.measure.MeasurementManager

Characterize delay of a digital gate using pulse sources in series with a resistor.

Notes

specification dictionary has the following entries:

in_pinUnion[str, Sequence[str]]

input pin(s)

out_pinUnion[str, Sequence[str]]

output pin(s)

out_invertUnion[bool, Sequence[bool]]

True if output is inverted from input. Corresponds to each input/output pair.

tbm_specsMapping[str, Any]

DigitalTranTB related specifications. The following simulation parameters are required:

t_rst :

reset duration.

t_rst_rf :

reset rise/fall time.

t_bit :

bit value duration.

t_rf :

input rise/fall time

r_srcfloat

nominal source resistance.

c_loadfloat

nominal load capacitance.

scale_minfloat

lower bound scale factor for c_load/r_src.

scale_maxfloat

upper bound scale factor for c_load/r_src.

num_samplesint

number of data points to measure.

c_infloat

Defaults to 0. If nonzero, add this input capacitance.

wait_cyclesint

Defaults to 0. Number of cycles to wait toggle before finally measuring delay.

t_step_minfloat

Defaults to 0.1e-12 (0.1 ps). rise/fall time of the step function approximation.

plotbool

Defaults to False. True to plot fitted lines.

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]

classmethod fit_rc_in(td: numpy.ndarray, rin_linear: numpy.ndarray, c_in_const: float, t_unit: float) Tuple[numpy.ndarray, numpy.ndarray][source]
classmethod fit_rc_out(td: numpy.ndarray, cl: numpy.ndarray, t_unit: float) Tuple[numpy.ndarray, numpy.ndarray][source]