bag3_testbenches.measurement.tran.digital
Module Contents
Classes
A transient testbench with digital stimuli. All pins are connected to either 0 or 1. |
- class bag3_testbenches.measurement.tran.digital.DigitalTranTB(*args: Any, **kwargs: Any)[source]
Bases:
bag3_testbenches.measurement.tran.base.TranTB
A transient testbench with digital stimuli. All pins are connected to either 0 or 1.
Notes
specification dictionary has the following entries in addition to the default ones:
- sim_paramsMapping[str, float]
Required entries are listed below.
- t_simfloat
the total simulation time.
- t_rstfloat
the duration of reset signals.
- t_rst_rffloat
the reset signals rise/fall time.
- pulse_listSequence[Mapping[str, Any]]
Optional. List of pulse sources. Each dictionary has the following entries:
- pinstr
the pin to connect to.
- tperUnion[float, str]
period.
- tpwUnion[float, str]
the pulse width, measures from 50% to 50%, i.e. it is tper/2 for 50% duty cycle.
- trfUnion[float, str]
rise/fall time as defined by thres_lo and thres_hi.
- tdUnion[float, str]
Optional. Pulse delay in addition to any reset period, Measured from the end of reset period to the 50% point of the first edge.
- posbool
Defaults to True. True if this is a positive pulse (010).
- td_after_rst: bool
Defaults to True. True if td is measured from the end of reset period, False if td is measured from t=0.
- reset_listSequence[Tuple[str, bool]]
Optional. List of reset pin name and reset type tuples. Reset type is True for active-high, False for active-low.
- rtolfloat
Optional. Relative tolerance for equality checking in timing measurement.
- atolfloat
Optional. Absolute tolerance for equality checking in timing measurement.
- thres_lofloat
Optional. Low threshold value for rise/fall time calculation. Defaults to 0.1
- thres_hifloat
Optional. High threshold value for rise/fall time calculation. Defaults to 0.9
subclasses’ specs dictionary must have pwr_domain, rtol, atol, thres_lo, and thres_hi.
- get_t_rst_end(data: bag.simulation.data.SimData) numpy.ndarray [source]
- pre_setup(sch_params: Optional[Mapping[str, Any]]) Optional[Mapping[str, Any]] [source]
Set up PWL waveform files.
- get_reset_sources(reset_list: Iterable[Tuple[str, bool]], src_list: List[Mapping[str, Any]], src_pins: Set[str], skip_src: bool = False) None [source]
- get_pulse_sources(pulse_list: Iterable[Mapping[str, Any]], src_list: List[Mapping[str, Any]], src_pins: Set[str]) None [source]
- calc_cross(data: bag.simulation.data.SimData, out_name: str, out_edge: bag3_testbenches.measurement.data.tran.EdgeType, t_start: Union[numpy.ndarray, float, str] = 0, t_stop: Union[numpy.ndarray, float, str] = float('inf')) numpy.ndarray [source]
- calc_delay(data: bag.simulation.data.SimData, in_name: str, out_name: str, in_edge: bag3_testbenches.measurement.data.tran.EdgeType, out_edge: bag3_testbenches.measurement.data.tran.EdgeType, t_start: Union[numpy.ndarray, float, str] = 0, t_stop: Union[numpy.ndarray, float, str] = float('inf')) numpy.ndarray [source]
- calc_trf(data: bag.simulation.data.SimData, out_name: str, out_rise: bool, allow_inf: bool = False, t_start: Union[numpy.ndarray, float, str] = 0, t_stop: Union[numpy.ndarray, float, str] = float('inf')) numpy.ndarray [source]