Struct libreda_sta::liberty_library::LibertyTimingLibrary
source · pub struct LibertyTimingLibrary<'a> {
pub(crate) lib: &'a Group,
table_templates: HashMap<String, LuTableTemplate>,
time_unit: Time,
capacitive_load_unit: Capacitance,
pub(crate) cells: HashMap<String, Cell>,
}Expand description
Timing library based on a ‘liberty’ library.
Fields§
§lib: &'a GroupLiberty library group.
table_templates: HashMap<String, LuTableTemplate>§time_unit: Time§capacitive_load_unit: Capacitance§cells: HashMap<String, Cell>Mapping from (cell_name, pin_name, related_pin_name) to the delay arc structure.
Implementations§
source§impl<'a> LibertyTimingLibrary<'a>
impl<'a> LibertyTimingLibrary<'a>
sourcepub fn new(lib: &'a Group) -> Result<Self, LibertyErr>
pub fn new(lib: &'a Group) -> Result<Self, LibertyErr>
Create a new timing library based on a liberty structure.
sourcefn init_units(&mut self) -> Result<(), LibertyErr>
fn init_units(&mut self) -> Result<(), LibertyErr>
Load units from the liberty data structure.
sourcepub fn get_pin(&self, cell: &str, output_pin: &str) -> Option<&Pin>
pub fn get_pin(&self, cell: &str, output_pin: &str) -> Option<&Pin>
Find a pin by the name of the cell and the name of the pin.
pub(crate) fn get_delay_arc( &self, cell: &str, output_pin: &str, related_pin: &str ) -> Option<&DelayArc>
pub(crate) fn get_hold_rising_arc( &self, cell: &str, output_pin: &str, related_pin: &str ) -> Option<&ConstraintArc>
pub(crate) fn get_hold_falling_arc( &self, cell: &str, output_pin: &str, related_pin: &str ) -> Option<&ConstraintArc>
pub(crate) fn get_setup_rising_arc( &self, cell: &str, output_pin: &str, related_pin: &str ) -> Option<&ConstraintArc>
pub(crate) fn get_setup_falling_arc( &self, cell: &str, output_pin: &str, related_pin: &str ) -> Option<&ConstraintArc>
Trait Implementations§
source§impl<'a> Clone for LibertyTimingLibrary<'a>
impl<'a> Clone for LibertyTimingLibrary<'a>
source§fn clone(&self) -> LibertyTimingLibrary<'a>
fn clone(&self) -> LibertyTimingLibrary<'a>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<'a> Debug for LibertyTimingLibrary<'a>
impl<'a> Debug for LibertyTimingLibrary<'a>
source§impl<'a> TimingLibrary for LibertyTimingLibrary<'a>
impl<'a> TimingLibrary for LibertyTimingLibrary<'a>
source§fn get_slew(
&self,
edge_polarity: EdgePolarity,
cell: &str,
output_pin: &str,
related_pin: &str,
input_slew: Time,
output_capacitance: Capacitance
) -> Option<Time>
fn get_slew( &self, edge_polarity: EdgePolarity, cell: &str, output_pin: &str, related_pin: &str, input_slew: Time, output_capacitance: Capacitance ) -> Option<Time>
Get the transition time (slew) of an output pin.
The transition time is dependent on the input transition time
input_slew and the capacitive load
at the output pin output_capacitance.source§fn get_cell_delay(
&self,
edge_polarity: EdgePolarity,
cell: &str,
output_pin: &str,
related_pin: &str,
input_slew: Time,
output_capacitance: Capacitance
) -> Option<Time>
fn get_cell_delay( &self, edge_polarity: EdgePolarity, cell: &str, output_pin: &str, related_pin: &str, input_slew: Time, output_capacitance: Capacitance ) -> Option<Time>
Get the signal propagation time from the
related_pin to the output_pin.
The delay is dependent on the input transition time input_slew and the capacitive load
at the output pin output_capacitance.source§fn get_hold_constraint(
&self,
cell: &str,
constrained_pin: &str,
related_pin: &str,
constrained_edge_polarity: EdgePolarity,
related_edge_polarity: EdgePolarity,
related_pin_transition: Time,
constrained_pin_transition: Time,
output_load: Capacitance
) -> Option<Time>
fn get_hold_constraint( &self, cell: &str, constrained_pin: &str, related_pin: &str, constrained_edge_polarity: EdgePolarity, related_edge_polarity: EdgePolarity, related_pin_transition: Time, constrained_pin_transition: Time, output_load: Capacitance ) -> Option<Time>
Get the a constraint between edges of two input signals.
The ‘constrained’ edge is usually some data signal with is constrained
by a clock signal (also called ‘related’ edge). Read more
source§fn get_setup_constraint(
&self,
cell: &str,
constrained_pin: &str,
related_pin: &str,
constrained_edge_polarity: EdgePolarity,
related_edge_polarity: EdgePolarity,
related_pin_transition: Time,
constrained_pin_transition: Time,
output_load: Capacitance
) -> Option<Time>
fn get_setup_constraint( &self, cell: &str, constrained_pin: &str, related_pin: &str, constrained_edge_polarity: EdgePolarity, related_edge_polarity: EdgePolarity, related_pin_transition: Time, constrained_pin_transition: Time, output_load: Capacitance ) -> Option<Time>
Get the a constraint between edges of two input signals.
The ‘constrained’ edge is usually some data signal with is constrained
by a clock signal (also called ‘related’ edge). Read more