Struct libreda_sta::models::ndlm_cell_delay::NDLMSignal
source · pub struct NDLMSignal {
edge_polarity: EdgePolarity,
slew: [Time; 4],
delay: [Time; 4],
logic_value: Logic3,
}Expand description
Slew rate and edge polarity of a signal.
Fields§
§edge_polarity: EdgePolarityType of the transition.
slew: [Time; 4]Transition times for: min-rise, min-fall, max-rise, max-fall
delay: [Time; 4]Arrival times for: min-rise, min-fall, max-rise, max-fall
logic_value: Logic3Logic value on which the signal stabilizes.
Implementations§
source§impl NDLMSignal
impl NDLMSignal
sourcepub fn new(slew_rate: Time, arrival_time: Time) -> Self
pub fn new(slew_rate: Time, arrival_time: Time) -> Self
Create a new signal with a given arrival time. Other values are set to defaults.
sourcepub fn set_polarity(&mut self, edge_polarity: EdgePolarity)
pub fn set_polarity(&mut self, edge_polarity: EdgePolarity)
Set the polarity of the signal transition.
Default is EdgePolarity::Unknown.
sourcepub fn with_polarity(self, edge_polarity: EdgePolarity) -> Self
pub fn with_polarity(self, edge_polarity: EdgePolarity) -> Self
Set the polarity of the signal transition.
Default is EdgePolarity::Unknown.
sourcepub fn slew(&self, minmax: MinMax, edge: RiseFall) -> Time
pub fn slew(&self, minmax: MinMax, edge: RiseFall) -> Time
Get the minimum/maximum slew for the rise or fall edge.
fn max_slew(&self) -> Time
fn min_slew(&self) -> Time
fn max_delay(&self) -> Time
fn min_delay(&self) -> Time
sourcepub fn delay(&self, minmax: MinMax, edge: RiseFall) -> Time
pub fn delay(&self, minmax: MinMax, edge: RiseFall) -> Time
Get the minimum/maximum delay for the rise or fall edge.
fn slew_mut(&mut self, minmax: MinMax, edge: RiseFall) -> &mut Time
fn delay_mut(&mut self, minmax: MinMax, edge: RiseFall) -> &mut Time
sourcepub fn set_slew_rates(&mut self, slew_rate: Time)
pub fn set_slew_rates(&mut self, slew_rate: Time)
Set the slew rate for all corners.
sourcepub fn set_arrival_times(&mut self, arrival_time: Time)
pub fn set_arrival_times(&mut self, arrival_time: Time)
Set the arrival times for all corners.
sourcepub fn set_slew_rate(&mut self, corner: MinMax, edge: RiseFall, slew_rate: Time)
pub fn set_slew_rate(&mut self, corner: MinMax, edge: RiseFall, slew_rate: Time)
Set the slew rate for the specified corner and transition type.
sourcepub fn set_arrival_time(
&mut self,
corner: MinMax,
edge: RiseFall,
arrival_time: Time
)
pub fn set_arrival_time( &mut self, corner: MinMax, edge: RiseFall, arrival_time: Time )
Set the slew rate for the specified corner and transition type.
sourcefn acc_arrival_time(&mut self, edge: RiseFall, arrival_time: Time)
fn acc_arrival_time(&mut self, edge: RiseFall, arrival_time: Time)
Accumulate arrival time.
sourcepub fn set_logic_value(self, value: Logic3)
pub fn set_logic_value(self, value: Logic3)
Set the logic value of the signal (after transition).
sourcepub fn with_slew_rates(self, slew_rate: Time) -> Self
pub fn with_slew_rates(self, slew_rate: Time) -> Self
Set the slew rate for all corners.
sourcepub fn with_arrival_times(self, arrival_time: Time) -> Self
pub fn with_arrival_times(self, arrival_time: Time) -> Self
Set the arrival times for all corners.
sourcepub fn with_slew_rate(
self,
corner: MinMax,
edge: RiseFall,
slew_rate: Time
) -> Self
pub fn with_slew_rate( self, corner: MinMax, edge: RiseFall, slew_rate: Time ) -> Self
Set the slew rate for the specified corner and transition type.
sourcepub fn with_arrival_time(
self,
corner: MinMax,
edge: RiseFall,
arrival_time: Time
) -> Self
pub fn with_arrival_time( self, corner: MinMax, edge: RiseFall, arrival_time: Time ) -> Self
Set the slew rate for the specified corner and transition type.
sourcepub fn with_logic_value(self, value: Logic3) -> Self
pub fn with_logic_value(self, value: Logic3) -> Self
Set the logic value of the signal (after transition).
Trait Implementations§
source§impl Clone for NDLMSignal
impl Clone for NDLMSignal
source§fn clone(&self) -> NDLMSignal
fn clone(&self) -> NDLMSignal
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moresource§impl Debug for NDLMSignal
impl Debug for NDLMSignal
source§impl PartialEq<NDLMSignal> for NDLMSignal
impl PartialEq<NDLMSignal> for NDLMSignal
source§fn eq(&self, other: &NDLMSignal) -> bool
fn eq(&self, other: &NDLMSignal) -> bool
self and other values to be equal, and is used
by ==.source§impl Signal for NDLMSignal
impl Signal for NDLMSignal
§type LogicValue = Logic3
type LogicValue = Logic3
0, 1 and ‘unknown’.
The default is typically ‘unknown’.
This is used to specify static input signals when evaluating cell delays or constraints.