pub trait CellDelayModel<N: NetlistIds>: CellModel<N> + DelayBase {
// Required methods
fn cell_output(
&self,
netlist: &N,
arc: &CellDelayArc<N::PinId>,
input_signal: &Self::Signal,
output_load: &Self::Load,
other_inputs: &impl Fn(&N::PinId) -> Option<Self::LogicValue>,
) -> Option<Self::Signal>;
fn delay_arcs(
&self,
netlist: &N,
cell_id: &N::CellId,
) -> impl Iterator<Item = CellDelayArc<N::PinId>> + '_;
}Expand description
Define the computation of the cell delay.
A combinational delay from an input i to an output o should depend on
- what is attached to the output
o(the load), - on what signal arrives at input
i - and on the state of the other inputs.
Required Methods§
Sourcefn cell_output(
&self,
netlist: &N,
arc: &CellDelayArc<N::PinId>,
input_signal: &Self::Signal,
output_load: &Self::Load,
other_inputs: &impl Fn(&N::PinId) -> Option<Self::LogicValue>,
) -> Option<Self::Signal>
fn cell_output( &self, netlist: &N, arc: &CellDelayArc<N::PinId>, input_signal: &Self::Signal, output_load: &Self::Load, other_inputs: &impl Fn(&N::PinId) -> Option<Self::LogicValue>, ) -> Option<Self::Signal>
Propagate a signal from the input_pin to the output_pin.
This is used as a more general form of computing the cell delay.
The input_pin and the output_pin must be pins of the same cell.
§Parameters
other_inputs: Values at other input pins. If a value is not specified, this implies the default (for example ‘unkown’).
Returns the output signal or None if there is no delay arc from the selected input to selected output.
Sourcefn delay_arcs(
&self,
netlist: &N,
cell_id: &N::CellId,
) -> impl Iterator<Item = CellDelayArc<N::PinId>> + '_
fn delay_arcs( &self, netlist: &N, cell_id: &N::CellId, ) -> impl Iterator<Item = CellDelayArc<N::PinId>> + '_
Iterate over the output pins of all delay arcs starting at related_pin.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.