pub struct ClockAwareInterconnectModel<M> { /* private fields */ }Expand description
Wrapper around interconnect delay models.
Used to keep the link between signals and their clock domains. The data-structure is zero-cost for the interconnect model. The data-structure for the signals gets larger because of the additional clock ID.
Implementations§
Source§impl<M> ClockAwareInterconnectModel<M>
impl<M> ClockAwareInterconnectModel<M>
Trait Implementations§
Source§impl<M: Clone> Clone for ClockAwareInterconnectModel<M>
impl<M: Clone> Clone for ClockAwareInterconnectModel<M>
Source§fn clone(&self) -> ClockAwareInterconnectModel<M>
fn clone(&self) -> ClockAwareInterconnectModel<M>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<M: Debug> Debug for ClockAwareInterconnectModel<M>
impl<M: Debug> Debug for ClockAwareInterconnectModel<M>
Source§impl<M> DelayBase for ClockAwareInterconnectModel<M>where
M: DelayBase,
Delegate trait implementation to the inner model.
impl<M> DelayBase for ClockAwareInterconnectModel<M>where
M: DelayBase,
Delegate trait implementation to the inner model.
Source§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, N> InterconnectDelayModel<N> for ClockAwareInterconnectModel<M>where
N: NetlistBase,
M: InterconnectDelayModel<N>,
impl<M, N> InterconnectDelayModel<N> for ClockAwareInterconnectModel<M>where
N: NetlistBase,
M: InterconnectDelayModel<N>,
Source§fn interconnect_output(
&self,
netlist: &N,
source_terminal: &TerminalId<N>,
input_signal: &Self::Signal,
target_terminal: &TerminalId<N>,
output_load: &Self::Load,
) -> Option<Self::Signal>
fn interconnect_output( &self, netlist: &N, source_terminal: &TerminalId<N>, input_signal: &Self::Signal, target_terminal: &TerminalId<N>, output_load: &Self::Load, ) -> Option<Self::Signal>
Source§impl<M> LoadBase for ClockAwareInterconnectModel<M>where
M: LoadBase,
Delegate trait implementation to the inner model.
impl<M> LoadBase for ClockAwareInterconnectModel<M>where
M: LoadBase,
Delegate trait implementation to the inner model.
Source§impl<M> TimingBase for ClockAwareInterconnectModel<M>where
M: TimingBase,
Delegate trait implementation to the inner model.
impl<M> TimingBase for ClockAwareInterconnectModel<M>where
M: TimingBase,
Delegate trait implementation to the inner model.
Source§type Signal = SignalWithClock<<M as TimingBase>::Signal>
type Signal = SignalWithClock<<M as TimingBase>::Signal>
Representation of signals at input or output pins.
In case of the Non-linear delay model (NLDM) 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.
Source§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.Auto Trait Implementations§
impl<M> Freeze for ClockAwareInterconnectModel<M>where
M: Freeze,
impl<M> RefUnwindSafe for ClockAwareInterconnectModel<M>where
M: RefUnwindSafe,
impl<M> Send for ClockAwareInterconnectModel<M>where
M: Send,
impl<M> Sync for ClockAwareInterconnectModel<M>where
M: Sync,
impl<M> Unpin for ClockAwareInterconnectModel<M>where
M: Unpin,
impl<M> UnwindSafe for ClockAwareInterconnectModel<M>where
M: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more