|
Recti 1.2.4
|
Implements a simple linear delay model. More...
#include <dme_algorithm.hpp>


Public Member Functions | |
| LinearDelayCalculator (double delay_per_unit=1.0, double capacitance_per_unit=1.0) | |
| double | calculate_wire_delay (int length, double) const override |
| Calculates the delay of a wire segment. | |
| double | calculate_wire_delay_per_unit (double) const override |
| Calculates the delay per unit length of a wire. | |
| double | calculate_wire_capacitance (int length) const override |
| Calculates the capacitance of a wire segment. | |
| TappingResult | calculate_tapping_point (int distance, double left_delay, double right_delay, double, double) const override |
| Linear-model tapping point. | |
Public Member Functions inherited from recti::DelayCalculator | |
| DelayCalculator ()=default | |
| DelayCalculator (const DelayCalculator &)=default | |
| DelayCalculator & | operator= (const DelayCalculator &)=default |
| DelayCalculator (DelayCalculator &&)=default | |
| DelayCalculator & | operator= (DelayCalculator &&)=default |
| virtual | ~DelayCalculator ()=default |
Implements a simple linear delay model.
In this model, delay is directly proportional to the wire length. Delay = delay_per_unit * length. Capacitance = capacitance_per_unit * length.
|
inline |
|
overridevirtual |
Linear-model tapping point.
extend_left = round((skew / delay_per_unit + distance) / 2)
When the raw extend_left falls below 0 or above distance, the value is clamped and delay_left is set to the delay of the opposite child (the one that does not need elongation). The raw value is preserved in raw_extend_left so that the caller can apply the original elongation wire-length rules.
Implements recti::DelayCalculator.
|
inlineoverridevirtual |
Calculates the capacitance of a wire segment.
| length | The length of the wire. |
Implements recti::DelayCalculator.
|
inlineoverridevirtual |
Calculates the delay of a wire segment.
| length | The length of the wire segment. |
| load_capacitance | The total capacitance driven by this wire segment. |
Implements recti::DelayCalculator.
|
inlineoverridevirtual |
Calculates the delay per unit length of a wire.
| load_capacitance | The total capacitance driven by this wire segment. |
Implements recti::DelayCalculator.