pub struct ElmoreDelayCalculator {
pub unit_resistance: f64,
pub unit_capacitance: f64,
}Expand description
Elmore delay model: considers distributed wire resistance and capacitance.
delay = R * (C / 2 + load_capacitance) where R and C are
the total resistance and capacitance of the wire segment.
Fields§
§unit_resistance: f64Resistance per unit length of wire
unit_capacitance: f64Capacitance per unit length of wire
Implementations§
Trait Implementations§
Source§impl DelayCalculator for ElmoreDelayCalculator
impl DelayCalculator for ElmoreDelayCalculator
Source§fn calculate_wire_delay(&self, length: i32, load_capacitance: f64) -> f64
fn calculate_wire_delay(&self, length: i32, load_capacitance: f64) -> f64
Elmore wire delay: $\text{delay} = R \times \left(\frac{C}{2} + C_{\text{load}}\right)$
where $R = r_{\text{unit}} \times \text{length}$ and $C = c_{\text{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
fn calculate_tapping_point( &self, distance: i32, left_delay: f64, right_delay: f64, left_capacitance: f64, right_capacitance: f64, ) -> TappingResult
Tapping point for Elmore delay model. Solves for split fraction $z$:
$$z = \frac{\text{skew} + R(C_W/2 + C_{\text{right}})}{R(C_W + C_{\text{right}} + C_{\text{left}})}$$
where $R = r \cdot \text{distance}$ and $C_W = c \cdot \text{distance}$.
Source§fn calculate_wire_delay_per_unit(&self, load_capacitance: f64) -> f64
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
fn calculate_wire_capacitance(&self, length: i32) -> f64
Calculates the total wire capacitance for a given length.
Auto Trait Implementations§
impl Freeze for ElmoreDelayCalculator
impl RefUnwindSafe for ElmoreDelayCalculator
impl Send for ElmoreDelayCalculator
impl Sync for ElmoreDelayCalculator
impl Unpin for ElmoreDelayCalculator
impl UnsafeUnpin for ElmoreDelayCalculator
impl UnwindSafe for ElmoreDelayCalculator
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