Struct libreda_sta::models::clock_tracking::Model
source · pub struct Model<M> {
inner: M,
}Expand description
Wrap a delay and/or constraint model and add the capability of tracking clock sources.
Fields§
§inner: MUnderlying delay/constraint model.
Trait Implementations§
source§impl<M> ConstraintBase for Model<M>where
M: ConstraintBase,
impl<M> ConstraintBase for Model<M>where M: ConstraintBase,
§type Constraint = <M as ConstraintBase>::Constraint
type Constraint = <M as ConstraintBase>::Constraint
Representation of a constraint.
This might be for example an earliest or latest required arrival time or a allowed timing window
or also a constraint on any other signal properties such as the slew.
§type RequiredSignal = <M as ConstraintBase>::RequiredSignal
type RequiredSignal = <M as ConstraintBase>::RequiredSignal
Representation of a signal which is required to satisfy constraints.
§type Slack = <M as ConstraintBase>::Slack
type Slack = <M as ConstraintBase>::Slack
Difference between the arrival times of an actual signal and a required signal.
source§fn summarize_constraints(
&self,
constraint1: &Self::RequiredSignal,
constraint2: &Self::RequiredSignal
) -> Self::RequiredSignal
fn summarize_constraints( &self, constraint1: &Self::RequiredSignal, constraint2: &Self::RequiredSignal ) -> Self::RequiredSignal
Summarize two constraints
c1 and c2 into a single constraint c such that if c is satisfied
then also c1 and c2 are satisfied.
Depending on the timing analysis mode (late/early) this might be
a max or min function.source§fn solve_delay_constraint(
&self,
actual_delay: &Self::Delay,
required_output: &Self::RequiredSignal,
actual_signal: &Self::Signal
) -> Self::RequiredSignal
fn solve_delay_constraint( &self, actual_delay: &Self::Delay, required_output: &Self::RequiredSignal, actual_signal: &Self::Signal ) -> Self::RequiredSignal
Find the required input signal such that the actual output signal is equal to the
required_output. The actual_delay from the input to the output is given.
Also the actual output is given (might not be necessary to compute the result).source§impl<M> DelayBase for Model<M>where
M: DelayBase,
impl<M> DelayBase for Model<M>where M: DelayBase,
§type Delay = <M as DelayBase>::Delay
type Delay = <M as DelayBase>::Delay
Type representing a delay.
This can be as simple as a
f64 or more complicated such as a probability distribution.source§impl<M> TimingBase for Model<M>where
M: TimingBase,
impl<M> TimingBase for Model<M>where M: TimingBase,
§type Signal = SignalClocked<<M as TimingBase>::Signal>
type Signal = SignalClocked<<M as TimingBase>::Signal>
Representation of signals at input or output pins.
In case of the Non-linear delay model (NDLM) this could be a bundle of the slew rate
and the delay but also the polarity of the signal.
But this type could as well also be a statistical representation of a signal, e.g. a probability
distribution of arrival times.
§type LogicValue = <M as TimingBase>::LogicValue
type LogicValue = <M as TimingBase>::LogicValue
Type of logic value.
Typically this might be a three-valued type which represents logical
0, 1 and ‘unknown’.
The default is typically ‘unknown’.
This is used to specify static input signals when evaluating cell delays or constraints.