Skip to main content

LinearDelayCalculator

Struct LinearDelayCalculator 

Source
pub struct LinearDelayCalculator {
    pub delay_per_unit: f64,
    pub capacitance_per_unit: f64,
}
Expand description

Linear delay model where wire delay is proportional to wire length.

delay = delay_per_unit * length

Fields§

§delay_per_unit: f64

Delay per unit length of wire

§capacitance_per_unit: f64

Capacitance per unit length of wire

Implementations§

Source§

impl LinearDelayCalculator

Source

pub fn new(delay_per_unit: f64, capacitance_per_unit: f64) -> Self

Creates a linear delay calculator with the given parameters.

Trait Implementations§

Source§

impl DelayCalculator for LinearDelayCalculator

Source§

fn calculate_wire_delay(&self, length: i32, _load_capacitance: f64) -> f64

Linear wire delay: $\text{delay} = \text{delay_per_unit} \times \text{length}$

Source§

fn calculate_tapping_point( &self, distance: i32, left_delay: f64, right_delay: f64, _left_capacitance: f64, _right_capacitance: f64, ) -> TappingResult

Tapping point for linear delay model:

$$\text{skew} = \text{right_delay} - \text{left_delay}$$

$$\text{raw} = \left\lfloor\frac{\text{skew} / \text{delay_per_unit} + \text{distance}}{2}\right\rceil$$

Source§

fn calculate_wire_delay_per_unit(&self, _load_capacitance: f64) -> f64

Calculates the wire delay per unit length for a given load capacitance.
Source§

fn calculate_wire_capacitance(&self, length: i32) -> f64

Calculates the total wire capacitance for a given length.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.