bag3_testbenches.measurement.digital.flop.array

Module Contents

Classes

FlopArrayTimingTB

This class performs transient simulation on an array of flops

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

Bases: bag3_testbenches.measurement.digital.flop.base.FlopTimingBase

This class performs transient simulation on an array of flops

this testbench assumes the following:

  1. all flops share the same clock, reset, and scan enable signal.

  2. output of one flop goes into the scan_in of the next one.

Notes

specification dictionary has the following entries in addition to those in FlopTimingBase:

flop_paramsMapping[str, Any]

Flop parameters, with the following entries:

in_pinstr

the input pin(s), in CDBA format. the first pin in the string corresponds to the first flop in the scan chain.

out_pinstr

the output pin(s), in CDBA format.

clk_pinstr

the clock pin name.

se_pinstr

Optional. The scan enable pin name.

si_pinstr

Optional. The first scan input pin.

rst_pinstr

Optional. The reset pin name.

rst_active_highbool

Defaults to True. True if reset pin is active high.

rst_to_highbool

Defaults to False. True if output is high during reset.

rst_timingbool

True to characterize timing on reset pin.

out_invertbool

Defaults to False. True if outputs are inverted from input.

clk_risingbool

True if flop trigger on rising edge of clock.

out_timing_pinstr

Defaults to out_pin. The output pin(s) for which to add clock-to-q delay information, as a string in CDBA format.

in_timing_pin: str

Defaults to in_pin. The input pin(s) for which to add timing information, as a string in CDBA format.

c_load_pin: str

Defaults to out_timing_pin. The output pin(s) for which to add load capacitor.

setup_offsetfloat

Defaults to 0. Offset to add to setup time.

hold_offsetfloat

Defaults to 0. Offset to add to hold time.

delay_offsetfloat

Defaults to 0. Offset to add to clock-to-q delay.

property num_cycles: int[source]
property c_load_pins: Iterable[str][source]
commit() None[source]
classmethod get_default_flop_params() Dict[str, Any][source]
classmethod get_meas_modes(flop_params: Mapping[str, Any]) Sequence[bag3_testbenches.measurement.digital.flop.base.FlopMeasMode][source]
classmethod get_output_meas_modes(flop_params: Mapping[str, Any]) Sequence[bag3_testbenches.measurement.digital.flop.base.FlopMeasMode][source]
classmethod get_setup_hold_name(pin: str) Tuple[str, str][source]
classmethod get_recovery_removal_name(pin: str) Tuple[str, str][source]
get_stimuli() Tuple[Sequence[Mapping[str, Any]], Dict[str, int], Set[str], Sequence[str]][source]
get_output_map(output_timing: bool) Mapping[str, Tuple[Mapping[str, Any], Sequence[Tuple[bag3_testbenches.measurement.data.tran.EdgeType, Sequence[str]]]]][source]