#include <NetRouter.hpp>


Public Member Functions | |
| NetRouter (DDB &inDB, NetRouterHeuristicBase *inHeuristic) | |
| Public Constructor. | |
| ~NetRouter () | |
| Destructor. | |
| void | routeNet (RouteNet &net) |
| Route a net. | |
| void | resetStats () |
| void | printStats (std::ostream &out) |
Protected Member Functions | |
| void | graphSearch (const Tilewire &inSource, TilewireVector &inSinks, RouteNodePtrVector &outRoute) |
| Internal top level route function. | |
| void | graphSearchLoop (const Tilewire &inSource, const Tilewire &inSink, RouteNodePtrVector &outRoute) |
| Routing loop function. | |
| void | graphSearchFilter (RouteNode *inParent, const Arc &inArc, RouteNodePtrVector &outRoute) |
| Create a new node and put it into the appropriate structure. | |
| void | recordPath (RouteNode *node, Tilewire key, Tilewire inSource, RouteNodePtrVector &outRoute) |
| Add the newly found route to the outRoute vector. | |
| void | clearContainers () |
| Delete nodes in containers and clear them. | |
| bool | expandNetTerminals (Tilewire &inSource, TilewireVector &inSinks, RouteNodePtrVector &outRoute) |
| Move net terminals out into the INT tiles. | |
| bool | testDedicatedPath (Tilewire inSource, Tilewire inSink, RouteNodePtrVector &outRoute) |
| Test for a dedicated routing path. | |
| Tilewire | expandSourceTerminal (Tilewire inSource, RouteNodePtrVector &outRoute) |
| Move the source terminal of a net in the sinkwards direction. | |
| Tilewire | expandSinkTerminal (Tilewire inSink, RouteNodePtrVector &outRoute) |
| Move the sink terminal of a net in the sourcewards direction. | |
Protected Attributes | |
| ArcUsage & | mArcUsage |
| Database reference. | |
| WireUsage & | mWireUsage |
| WireUsage reference. | |
| RouteNodePtrQueue | mOrder |
| Pointer to the heuristic for making routing decisions. | |
| RouteNodePtrMap | mOpen |
| Collection of candidate nodes the router can expand. | |
| RouteNodePtrMap | mClosed |
| Collection of nodes that have been expanded. | |
| RouteNodePtrMap | mSkipped |
| Collection of nodes skipped due to heuristic constraints. | |
| RouteNodePtrVector | mPreRoute |
| Vector of nodes created during pre-routing. | |
| TilewireSet | mAuxClosed |
| Set of Closed Tilewires to avoid issues with bidir resources. | |
| TilewireVector | mSegmentBuf |
| Scratch segment storage. | |
| ArcVector | mArcsBuf |
| Scratch arc storage. | |
| boost::uint32_t | mSearchLimit |
| Maximum number of nodes to explore before failing. | |
| boost::uint32_t | mStatNets |
| Number of nets routed since construction. | |
| boost::uint32_t | mStatLoopPasses |
| Number of passes through the main loop since construction. | |
| boost::uint32_t | mStatExpanded |
| Number of nodes created from expansion. | |
| boost::uint32_t | mStatSources |
| Number of net sources seen since construction. | |
| boost::uint32_t | mStatSinks |
| Number of net sinks seen since construction. | |
Private Types | |
| typedef architecture::DDB | DDB |
| Imported type names. | |
| typedef architecture::ArcUsage | ArcUsage |
| typedef architecture::WireUsage | WireUsage |
| typedef architecture::Tilewire | Tilewire |
| typedef architecture::Arc | Arc |
|
typedef architecture::TilewireVector | TilewireVector |
| typedef architecture::ArcVector | ArcVector |
|
typedef std::priority_queue < RouteNode *, std::vector < RouteNode * > , RouteNodePtrCostCompare > | RouteNodePtrQueue |
|
typedef boost::unordered_map < Tilewire, RouteNode *, boost::hash < architecture::Tilewire > > | RouteNodePtrMap |
|
typedef boost::unordered_set < Tilewire, boost::hash < architecture::Tilewire > > | TilewireSet |
The router can either return a vector of nodes or directly populate DDB usage.
Definition at line 42 of file NetRouter.hpp.
typedef architecture::DDB torc::router::NetRouter::DDB [private] |
Imported type names.
Reimplemented from torc::router::NetRouterBase.
Definition at line 45 of file NetRouter.hpp.
| torc::router::NetRouter::NetRouter | ( | DDB & | inDB, | |
| NetRouterHeuristicBase * | inHeuristic | |||
| ) | [inline] |
| torc::router::NetRouter::~NetRouter | ( | ) | [inline] |
| void torc::router::NetRouter::routeNet | ( | RouteNet & | net | ) | [inline, virtual] |
Route a net.
Implements torc::router::NetRouterBase.
Definition at line 122 of file NetRouter.hpp.
| void torc::router::NetRouter::graphSearch | ( | const Tilewire & | inSource, | |
| TilewireVector & | inSinks, | |||
| RouteNodePtrVector & | outRoute | |||
| ) | [inline, protected] |
Internal top level route function.
Definition at line 201 of file NetRouter.hpp.
| void torc::router::NetRouter::graphSearchLoop | ( | const Tilewire & | inSource, | |
| const Tilewire & | inSink, | |||
| RouteNodePtrVector & | outRoute | |||
| ) | [inline, protected] |
Routing loop function.
Definition at line 250 of file NetRouter.hpp.
| void torc::router::NetRouter::clearContainers | ( | ) | [inline, protected] |
Delete nodes in containers and clear them.
Definition at line 354 of file NetRouter.hpp.
| bool torc::router::NetRouter::expandNetTerminals | ( | Tilewire & | inSource, | |
| TilewireVector & | inSinks, | |||
| RouteNodePtrVector & | outRoute | |||
| ) | [inline, protected] |
| Tilewire torc::router::NetRouter::expandSourceTerminal | ( | Tilewire | inSource, | |
| RouteNodePtrVector & | outRoute | |||
| ) | [inline, protected] |
Move the source terminal of a net in the sinkwards direction.
Definition at line 407 of file NetRouter.hpp.
| Tilewire torc::router::NetRouter::expandSinkTerminal | ( | Tilewire | inSink, | |
| RouteNodePtrVector & | outRoute | |||
| ) | [inline, protected] |
Move the sink terminal of a net in the sourcewards direction.
Definition at line 425 of file NetRouter.hpp.
ArcUsage& torc::router::NetRouter::mArcUsage [protected] |
WireUsage& torc::router::NetRouter::mWireUsage [protected] |
RouteNodePtrQueue torc::router::NetRouter::mOrder [protected] |
Pointer to the heuristic for making routing decisions.
Priority queue of nodes to explore during routing, mirrors mOpen.
Definition at line 72 of file NetRouter.hpp.
RouteNodePtrMap torc::router::NetRouter::mOpen [protected] |
RouteNodePtrMap torc::router::NetRouter::mClosed [protected] |
RouteNodePtrMap torc::router::NetRouter::mSkipped [protected] |
Collection of nodes skipped due to heuristic constraints.
Definition at line 78 of file NetRouter.hpp.
RouteNodePtrVector torc::router::NetRouter::mPreRoute [protected] |
TilewireSet torc::router::NetRouter::mAuxClosed [protected] |
Set of Closed Tilewires to avoid issues with bidir resources.
Definition at line 82 of file NetRouter.hpp.
TilewireVector torc::router::NetRouter::mSegmentBuf [protected] |
ArcVector torc::router::NetRouter::mArcsBuf [protected] |
boost::uint32_t torc::router::NetRouter::mSearchLimit [protected] |
boost::uint32_t torc::router::NetRouter::mStatNets [protected] |
boost::uint32_t torc::router::NetRouter::mStatLoopPasses [protected] |
Number of passes through the main loop since construction.
Definition at line 94 of file NetRouter.hpp.
boost::uint32_t torc::router::NetRouter::mStatExpanded [protected] |
boost::uint32_t torc::router::NetRouter::mStatSources [protected] |
boost::uint32_t torc::router::NetRouter::mStatSinks [protected] |
1.5.6