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().