TimingQuery

Trait TimingQuery 

Source
pub trait TimingQuery: NetlistIds {
    type NetlistIds: NetlistIds;
    type ArrivalTime;
    type RequiredArrivalTime;
    type Slack: Debug;

    // Required methods
    fn report_aat(
        &self,
        pin: TerminalId<Self::NetlistIds>,
        edge_polarity: RiseFall,
    ) -> Option<Self::ArrivalTime>;
    fn report_rat(
        &self,
        pin: TerminalId<Self::NetlistIds>,
        edge_polarity: RiseFall,
    ) -> Option<Self::RequiredArrivalTime>;
    fn report_slack(
        &self,
        pin: TerminalId<Self::NetlistIds>,
        edge_polarity: RiseFall,
    ) -> Option<Self::Slack>;
    fn report_timing(&self) -> Vec<()>;
}
Expand description

Enhance a netlist with timing queries.

Required Associated Types§

Source

type NetlistIds: NetlistIds

Type which defines IDs of netlist components.

Source

type ArrivalTime

Type for the actual arrival times.

Source

type RequiredArrivalTime

Type for required arrival times.

Source

type Slack: Debug

Type for delays (time difference) such as slack.

Required Methods§

Source

fn report_aat( &self, pin: TerminalId<Self::NetlistIds>, edge_polarity: RiseFall, ) -> Option<Self::ArrivalTime>

Report arrival time. Assumes prior call to update_timing if the netlist was modified. Might panic otherwise. Returns an Option because some it is possible that no arrival time is defined (for example for a floating part of the netlist which is not attached to a clock).

Source

fn report_rat( &self, pin: TerminalId<Self::NetlistIds>, edge_polarity: RiseFall, ) -> Option<Self::RequiredArrivalTime>

Report required arrival time. Assumes prior call to update_timing if the netlist was modified. Might panic otherwise.

Source

fn report_slack( &self, pin: TerminalId<Self::NetlistIds>, edge_polarity: RiseFall, ) -> Option<Self::Slack>

Report slack (arrival time - required arrival time). Assumes prior call to update_timing if the netlist was modified. Might panic otherwise.

Source

fn report_timing(&self) -> Vec<()>

Report a list of worst paths.

Implementors§