bag3_digital.measurement.stdcells.passgate.delay

Module Contents

Classes

PassGateRCDelayCharMM

Characterize RC of a passgate.

class bag3_digital.measurement.stdcells.passgate.delay.PassGateRCDelayCharMM(*args: Any, **kwargs: Any)[source]

Bases: bag.simulation.measure.MeasurementManager

Characterize RC of a passgate.

Notes

specification dictionary has the following entries:

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 for r_src/c_load.

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_min: float:

Defaults to 0.1ps. small step size used to approxmiate step function, also used to estimate time unit (time unit = 10 * t_step_min).

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]

static _fit_rc(idx: int, td: numpy.ndarray, rs: numpy.ndarray, c_in: float, cl: numpy.ndarray, res: numpy.ndarray, cs: numpy.ndarray, cd: numpy.ndarray, r_unit: float, c_unit: float, t_unit: float) None[source]