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.

Implementors§

source§

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

Delegate DelayModel implementation to self.delay_model.

§

type Delay = <D as DelayBase>::Delay

source§

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

source§

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

§

type Delay = <M as DelayBase>::Delay