DelayBase

Trait DelayBase 

Source
pub trait DelayBase: TimingBase {
    type Delay: Clone + Debug + Zero + Send + Sync;

    // Required methods
    fn summarize_delays(
        &self,
        signal1: &Self::Signal,
        signal2: &Self::Signal,
    ) -> Self::Signal;
    fn get_delay(&self, from: &Self::Signal, to: &Self::Signal) -> Self::Delay;
}
Expand description

Abstraction of a delay model.

Required Associated Types§

Source

type Delay: Clone + Debug + Zero + Send + Sync

Type representing a delay. This can be as simple as a f64 or more complicated such as a probability distribution.

Required Methods§

Source

fn summarize_delays( &self, signal1: &Self::Signal, signal2: &Self::Signal, ) -> Self::Signal

Summarize multiple possible output signals into one signal. Depending on the timing analysis mode (late/early) this might be a max or min function.

Source

fn get_delay(&self, from: &Self::Signal, to: &Self::Signal) -> Self::Delay

Compute the delay from one signal to another signal.

Implementations on Foreign Types§

Source§

impl<DB: DelayBase + ?Sized> DelayBase for &DB

Source§

type Delay = <DB as DelayBase>::Delay

Type representing a delay. This can be as simple as a f64 or more complicated such as a probability distribution.

Source§

fn summarize_delays( &self, signal1: &Self::Signal, signal2: &Self::Signal, ) -> Self::Signal

Source§

fn get_delay(&self, from: &Self::Signal, to: &Self::Signal) -> Self::Delay

Implementors§

Source§

impl<'a, N: NetlistBase> DelayBase for NLDMCellModel<'a, N>

Source§

impl<D> DelayBase for ZeroInterconnectDelayModel<D>
where D: DelayBase,

Delegate DelayModel implementation to self.delay_model.

Source§

impl<M> DelayBase for ClockAwareInterconnectModel<M>
where M: DelayBase,

Delegate trait implementation to the inner model.

Source§

impl<M> DelayBase for ClockAwareModel<M>
where M: DelayBase,