torc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
torc::router::RouteNode Class Reference

An object that holds an arc and path information for routing. More...

#include <RouteNode.hpp>

+ Inheritance diagram for torc::router::RouteNode:
+ Collaboration diagram for torc::router::RouteNode:

Public Member Functions

 RouteNode ()
 Null Constructor. More...
 
 RouteNode (Tilewire inSource, Tilewire inSink, boost::int32_t inDepth, RouteNode *inParent)
 Arc only constructor. More...
 
 RouteNode (Tilewire inSource, Tilewire inSink, boost::int32_t inCost, boost::int32_t inPathCost, boost::int32_t inDepth, RouteNode *inParent)
 Complete Tilewire based constructor. More...
 
 RouteNode (Arc inArc, boost::int32_t inDepth, RouteNode *inParent)
 Public Constructor. More...
 
 RouteNode (Arc inArc, boost::int32_t inCost, boost::int32_t inPathCost, boost::int32_t inDepth, RouteNode *inParent)
 Public Constructor. More...
 
const ArcgetArc () const
 Get the associated Arc. More...
 
const TilewiregetSourceTilewire () const
 Get the source Tilewire. More...
 
const TilewiregetSinkTilewire () const
 Get the sink Tilewire. More...
 
const boost::int32_t getCost () const
 Get the heuristic node cost. More...
 
void setCost (boost::int32_t inHeuristicCost)
 Set the heuristic node cost. More...
 
const boost::int32_t getPathCost () const
 Get the path cost. More...
 
void setPathCost (boost::int32_t inPathCost)
 Set the path cost. More...
 
const boost::int32_t getDepth () const
 Get the node depth. More...
 
void setDepth (boost::int32_t inDepth)
 Set the node depth. More...
 
RouteNodegetParent () const
 Get the node's parent. More...
 
RouteNodegetTop ()
 Return the top node by tracing parent pointers. More...
 
bool operator< (const RouteNode *rhs) const
 

Protected Types

typedef architecture::Tilewire Tilewire
 Imported type name. More...
 
typedef architecture::Arc Arc
 Imported type name. More...
 

Protected Attributes

architecture::Arc mArc
 Arc that this node describes. More...
 
boost::int32_t mCost
 Cost associated with this arc. More...
 
boost::int32_t mPathCost
 Path cost for this arc. More...
 
boost::int32_t mDepth
 Depth of node from the source. More...
 
RouteNodemParent
 Pointer to parent node. More...
 

Detailed Description

An object that holds an arc and path information for routing.

Todo:
Have to justify the packing decision, and its impact on memory footprint versus performance.

A RouteNode contains an arc in the device and includes a parent pointer to allow recovery of the actual path to configure following completion of routing a net or sink.

Definition at line 40 of file RouteNode.hpp.

Member Typedef Documentation

Imported type name.

Definition at line 46 of file RouteNode.hpp.

Imported type name.

Definition at line 44 of file RouteNode.hpp.

Constructor & Destructor Documentation

torc::router::RouteNode::RouteNode ( )
inline

Null Constructor.

Definition at line 62 of file RouteNode.hpp.

62 : mArc(), mCost(0), mPathCost(0), mDepth(-1), mParent(0) {}
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58
torc::router::RouteNode::RouteNode ( Tilewire  inSource,
Tilewire  inSink,
boost::int32_t  inDepth,
RouteNode inParent 
)
inline

Arc only constructor.

Definition at line 64 of file RouteNode.hpp.

65  : mArc(inSource, inSink), mCost(0), mPathCost(0), mDepth(inDepth), mParent(0) {}
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58
torc::router::RouteNode::RouteNode ( Tilewire  inSource,
Tilewire  inSink,
boost::int32_t  inCost,
boost::int32_t  inPathCost,
boost::int32_t  inDepth,
RouteNode inParent 
)
inline

Complete Tilewire based constructor.

Definition at line 67 of file RouteNode.hpp.

69  : mArc(inSource, inSink), mCost(inCost), mPathCost(inPathCost), mDepth(inDepth),
70  mParent(inParent) {}
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58
torc::router::RouteNode::RouteNode ( Arc  inArc,
boost::int32_t  inDepth,
RouteNode inParent 
)
inline

Public Constructor.

Definition at line 72 of file RouteNode.hpp.

73  :mArc(inArc), mCost(0), mPathCost(0), mDepth(inDepth), mParent(inParent) {}
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58
torc::router::RouteNode::RouteNode ( Arc  inArc,
boost::int32_t  inCost,
boost::int32_t  inPathCost,
boost::int32_t  inDepth,
RouteNode inParent 
)
inline

Public Constructor.

Definition at line 75 of file RouteNode.hpp.

76  : mArc(inArc), mCost(inCost),
77  mPathCost(inPathCost), mDepth(inDepth), mParent(inParent) {}
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58

Member Function Documentation

const Arc& torc::router::RouteNode::getArc ( ) const
inline

Get the associated Arc.

Definition at line 80 of file RouteNode.hpp.

80 { return mArc; }
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50

+ Here is the caller graph for this function:

const boost::int32_t torc::router::RouteNode::getCost ( ) const
inline

Get the heuristic node cost.

Definition at line 86 of file RouteNode.hpp.

86 { return mCost; }
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52

+ Here is the caller graph for this function:

const boost::int32_t torc::router::RouteNode::getDepth ( ) const
inline

Get the node depth.

Definition at line 94 of file RouteNode.hpp.

94 { return mDepth; }
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56

+ Here is the caller graph for this function:

RouteNode* torc::router::RouteNode::getParent ( ) const
inline

Get the node's parent.

Definition at line 98 of file RouteNode.hpp.

98 { return mParent; }
RouteNode * mParent
Pointer to parent node.
Definition: RouteNode.hpp:58

+ Here is the caller graph for this function:

const boost::int32_t torc::router::RouteNode::getPathCost ( ) const
inline

Get the path cost.

Definition at line 90 of file RouteNode.hpp.

90 { return mPathCost; }
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54

+ Here is the caller graph for this function:

const Tilewire& torc::router::RouteNode::getSinkTilewire ( void  ) const
inline

Get the sink Tilewire.

Definition at line 84 of file RouteNode.hpp.

84 { return mArc.getSinkTilewire(); }
const Tilewire & getSinkTilewire(void) const
Returns the sink tilewire.
Definition: Arc.hpp:47
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const Tilewire& torc::router::RouteNode::getSourceTilewire ( ) const
inline

Get the source Tilewire.

Definition at line 82 of file RouteNode.hpp.

82 { return mArc.getSourceTilewire(); }
const Tilewire & getSourceTilewire(void) const
Returns the source tilewire.
Definition: Arc.hpp:45
architecture::Arc mArc
Arc that this node describes.
Definition: RouteNode.hpp:50

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

RouteNode* torc::router::RouteNode::getTop ( )
inline

Return the top node by tracing parent pointers.

Definition at line 100 of file RouteNode.hpp.

100  {
101  RouteNode* top = this;
102  while (top->mParent != 0) top = top->mParent;
103  return top;
104  }
RouteNode()
Null Constructor.
Definition: RouteNode.hpp:62

+ Here is the caller graph for this function:

bool torc::router::RouteNode::operator< ( const RouteNode rhs) const
inline

Definition at line 105 of file RouteNode.hpp.

105  {
106  return (mCost < rhs->mCost);
107  }
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52
void torc::router::RouteNode::setCost ( boost::int32_t  inHeuristicCost)
inline

Set the heuristic node cost.

Definition at line 88 of file RouteNode.hpp.

88 { mCost = inHeuristicCost; }
boost::int32_t mCost
Cost associated with this arc.
Definition: RouteNode.hpp:52

+ Here is the caller graph for this function:

void torc::router::RouteNode::setDepth ( boost::int32_t  inDepth)
inline

Set the node depth.

Definition at line 96 of file RouteNode.hpp.

96 { mDepth = inDepth; }
boost::int32_t mDepth
Depth of node from the source.
Definition: RouteNode.hpp:56
void torc::router::RouteNode::setPathCost ( boost::int32_t  inPathCost)
inline

Set the path cost.

Definition at line 92 of file RouteNode.hpp.

92 { mPathCost = inPathCost; }
boost::int32_t mPathCost
Path cost for this arc.
Definition: RouteNode.hpp:54

Field Documentation

architecture::Arc torc::router::RouteNode::mArc
protected

Arc that this node describes.

Definition at line 50 of file RouteNode.hpp.

boost::int32_t torc::router::RouteNode::mCost
protected

Cost associated with this arc.

Definition at line 52 of file RouteNode.hpp.

boost::int32_t torc::router::RouteNode::mDepth
protected

Depth of node from the source.

Definition at line 56 of file RouteNode.hpp.

RouteNode* torc::router::RouteNode::mParent
protected

Pointer to parent node.

Definition at line 58 of file RouteNode.hpp.

boost::int32_t torc::router::RouteNode::mPathCost
protected

Path cost for this arc.

Definition at line 54 of file RouteNode.hpp.


The documentation for this class was generated from the following file: