|
AMF-Placer
2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
|
TimingNode is the node in TimingGraph, which could be pin or cell in the design netlist. More...
#include <PlacementTimingInfo.h>
Public Member Functions | |
| TimingNode (nodeType *designNode, int id) | |
| Construct a new Timing Node object. More... | |
| ~TimingNode () | |
| int | getId () |
| nodeType * | getDesignNode () |
| void | setIsRegister () |
| indicate that this node is a register node More... | |
| bool | checkIsRegister () |
| check if the node is a register node More... | |
| void | addInEdge (TimingEdge *tmpEdge) |
| void | addOutEdge (TimingEdge *tmpEdge) |
| void | setForwardLevel (int _forwardLevel) |
| Set the data path forward level of the node for later propagation. More... | |
| void | setBackwardLevel (int _backwardLevel) |
| void | calcLongestPath () |
| calculate the length of the longest path containing this TimingNode More... | |
| int | getForwardLevel () |
| Get the distance toward the farthest predecessor register based on the path length (instead of delay) More... | |
| int | getBackwardLevel () |
| Get the distance toward the farthest successor register based on the path length (instead of delay) More... | |
| int | getLongestPathLength () |
| Get the length of the longest path containing this TimingNode. More... | |
| void | setDestLevel (int _destLevel) |
| int | getDestLevel () |
| std::vector< TimingEdge * > & | getOutEdges () |
| Get the outward edges from this TimingNode. More... | |
| void | sortOutEdgesByBackwardLevel () |
| sort the outward edges by their sink node backward level More... | |
| std::vector< TimingEdge * > & | getInEdges () |
| Get the inward edges to this TimingNode. More... | |
| void | sortInEdgesByForwardLevel () |
| sort the inward edges by their source node forward level More... | |
| float | getLatestInputArrival () |
| Get the latest arrival time to the output of this timing node. More... | |
| void | setLatestInputArrival (float _latestInputArrival) |
| Set the latest arrival time to the output of this timing node. More... | |
| void | setLatestOutputArrival (float _latestOutputArrival) |
| float | getLatestOutputArrival () |
| int | getSlowestPredecessorId () |
| Get the slowest predecessor node Id. More... | |
| void | setSlowestPredecessorId (int _slowestPredecessorId) |
| Set the slowest predecessor node Id. More... | |
| void | setInnerDelay (float _innerDelay) |
| Set the inner delay. More... | |
| float | getInnerDelay () |
| Get the inner delay. More... | |
| float | getRequiredArrivalTime () |
| Get the required arrival time. More... | |
| void | setRequiredArrivalTime (float _requiredArrival) |
| Set the required arrival time. More... | |
| void | setInitialRequiredArrivalTime (float _requiredArrival) |
| Set the required arrival time. More... | |
| int | getEarlestSuccessorId () |
| Get the earliest successor node Id. More... | |
| void | setEarlestSuccessorId (int _earliestSuccessorId) |
| Set the earliest successor node Id. More... | |
| void | setClockPeriod (float _clockPeriod) |
| float | getClockPeriod () |
| void | setClusterId (int _clusterId) |
| float | getClusterId () |
Private Attributes | |
| nodeType * | designNode = nullptr |
| the pointer linked to the design element (pin or cell) More... | |
| int | id |
| float | latestInputArrival = 0.0 |
| float | latestOutputArrival = 0.0 |
| float | requiredArrival = 10.0 |
| float | clockPeriod = -10 |
| int | slowestPredecessorId = -1 |
| int | earliestSuccessorId = -1 |
| int | clusterId = -1 |
| float | innerDelay = 0.1 |
| the node can have internal delay (e.g., cell delay) More... | |
| bool | isRegister = false |
| std::vector< TimingEdge * > | inEdges |
| std::vector< TimingEdge * > | outEdges |
| int | forwardLevel = -1 |
| the distance toward the farthest predecessor register based on the path length (instead of delay) More... | |
| int | backwardLevel = -1 |
| the distance toward the farthest successor register based on the path length (instead of delay) More... | |
| int | destLevel = -1 |
| int | longestPathLength = 100000000 |
| the length of the longest path containing this TimingNode More... | |
TimingNode is the node in TimingGraph, which could be pin or cell in the design netlist.
Definition at line 96 of file PlacementTimingInfo.h.
|
inline |
Construct a new Timing Node object.
| designNode | node element, could be cell or pin |
| id | unique id for the node |
Definition at line 105 of file PlacementTimingInfo.h.
|
inline |
Definition at line 110 of file PlacementTimingInfo.h.
|
inline |
Definition at line 142 of file PlacementTimingInfo.h.
|
inline |
Definition at line 147 of file PlacementTimingInfo.h.
|
inline |
calculate the length of the longest path containing this TimingNode
Definition at line 172 of file PlacementTimingInfo.h.
|
inline |
check if the node is a register node
Definition at line 137 of file PlacementTimingInfo.h.
|
inline |
Get the distance toward the farthest successor register based on the path length (instead of delay)
Definition at line 194 of file PlacementTimingInfo.h.
|
inline |
Definition at line 393 of file PlacementTimingInfo.h.
|
inline |
Definition at line 403 of file PlacementTimingInfo.h.
|
inline |
Definition at line 117 of file PlacementTimingInfo.h.
|
inline |
Definition at line 218 of file PlacementTimingInfo.h.
|
inline |
Get the earliest successor node Id.
Definition at line 373 of file PlacementTimingInfo.h.
|
inline |
Get the distance toward the farthest predecessor register based on the path length (instead of delay)
Definition at line 183 of file PlacementTimingInfo.h.
|
inline |
Definition at line 112 of file PlacementTimingInfo.h.
|
inline |
Get the inward edges to this TimingNode.
Definition at line 249 of file PlacementTimingInfo.h.
|
inline |
|
inline |
Get the latest arrival time to the output of this timing node.
Definition at line 270 of file PlacementTimingInfo.h.
|
inline |
Definition at line 290 of file PlacementTimingInfo.h.
|
inline |
Get the length of the longest path containing this TimingNode.
Definition at line 204 of file PlacementTimingInfo.h.
|
inline |
Get the outward edges from this TimingNode.
Definition at line 228 of file PlacementTimingInfo.h.
|
inline |
|
inline |
Get the slowest predecessor node Id.
Definition at line 300 of file PlacementTimingInfo.h.
|
inline |
Definition at line 163 of file PlacementTimingInfo.h.
|
inline |
Definition at line 388 of file PlacementTimingInfo.h.
|
inline |
Definition at line 398 of file PlacementTimingInfo.h.
|
inline |
Definition at line 213 of file PlacementTimingInfo.h.
|
inline |
Set the earliest successor node Id.
| _earliestSuccessorId |
Definition at line 383 of file PlacementTimingInfo.h.
|
inline |
Set the data path forward level of the node for later propagation.
| _forwardLevel |
Definition at line 157 of file PlacementTimingInfo.h.
|
inline |
Set the required arrival time.
| _requiredArrival |
Definition at line 360 of file PlacementTimingInfo.h.
|
inline |
|
inline |
indicate that this node is a register node
Definition at line 126 of file PlacementTimingInfo.h.
|
inline |
Set the latest arrival time to the output of this timing node.
| _latestInputArrival |
Definition at line 280 of file PlacementTimingInfo.h.
|
inline |
Definition at line 285 of file PlacementTimingInfo.h.
|
inline |
Set the required arrival time.
| _requiredArrival |
Definition at line 350 of file PlacementTimingInfo.h.
|
inline |
Set the slowest predecessor node Id.
| _slowestPredecessorId |
Definition at line 310 of file PlacementTimingInfo.h.
|
inline |
sort the inward edges by their source node forward level
Definition at line 258 of file PlacementTimingInfo.h.
|
inline |
sort the outward edges by their sink node backward level
Definition at line 237 of file PlacementTimingInfo.h.
|
private |
the distance toward the farthest successor register based on the path length (instead of delay)
Definition at line 444 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::calcLongestPath(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getBackwardLevel(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getLongestPathLength(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setBackwardLevel().
|
private |
Definition at line 418 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getClockPeriod(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setClockPeriod(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setInitialRequiredArrivalTime().
|
private |
Definition at line 421 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getClusterId(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setClusterId().
|
private |
the pointer linked to the design element (pin or cell)
Definition at line 413 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getDesignNode().
|
private |
|
private |
Definition at line 420 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setEarlestSuccessorId().
|
private |
the distance toward the farthest predecessor register based on the path length (instead of delay)
Definition at line 437 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::calcLongestPath(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getForwardLevel(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getLongestPathLength(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setForwardLevel().
|
private |
Definition at line 414 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getId().
|
private |
Definition at line 429 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::addInEdge(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getInEdges(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::sortInEdgesByForwardLevel(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::TimingNode().
|
private |
the node can have internal delay (e.g., cell delay)
Definition at line 427 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getInnerDelay(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setInnerDelay().
|
private |
Definition at line 428 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::checkIsRegister(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setIsRegister().
|
private |
Definition at line 415 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getLatestInputArrival(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setLatestInputArrival().
|
private |
Definition at line 416 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getLatestOutputArrival(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setLatestOutputArrival().
|
private |
the length of the longest path containing this TimingNode
Definition at line 451 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::calcLongestPath(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getLongestPathLength().
|
private |
Definition at line 430 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::addOutEdge(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getOutEdges(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::sortOutEdgesByBackwardLevel(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::TimingNode().
|
private |
Definition at line 417 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getRequiredArrivalTime(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setInitialRequiredArrivalTime(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setRequiredArrivalTime().
|
private |
Definition at line 419 of file PlacementTimingInfo.h.
Referenced by PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getEarlestSuccessorId(), PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::getSlowestPredecessorId(), and PlacementTimingInfo::TimingGraph< nodeType >::TimingNode::setSlowestPredecessorId().