#include <Unrouter.hpp>
Public Member Functions | |
Unrouter (DDB &inDB) | |
Public Constructor. | |
~Unrouter () | |
Destructor. | |
boost::int32_t | unrouteToSinks (const Tilewire inTilewire) |
RouteTreeNode * | traceToSinks (Tilewire inTilewire) |
Trace from given Tilewire in a sinkwards direction only. | |
RouteTreeNode * | traceBranch (Tilewire inTilewire) |
Trace from given Tilewire sinkwards and sourcewards to source or branch. | |
RouteTreeNode * | traceToSource (Tilewire inTilewire) |
Trace from given Tilewire sourcewards to the source of the net. | |
RouteTreeNode * | traceFull (Tilewire inTilewire) |
Trace from given Tilewire and recover the entire net. | |
Protected Types | |
enum | { eTraceToSource = 0, eTraceToBranch = 1, eTraceFullNet = 2 } |
Protected Member Functions | |
void | traceDownstream (RouteTreeNode *inNode) |
Remove the dummy node if possible. | |
void | traceUpstream (RouteTreeNode *inNode, boost::int32_t inMode) |
Recursively traces from the specified RouteTreeNode in one of three modes. | |
Protected Attributes | |
DDB & | mDB |
Database reference. | |
ArcUsage & | mArcUsage |
ArcUsage reference. | |
WireUsage & | mWireUsage |
WireUsage reference. | |
TilewireVector | mSegmentBuf |
Scratch segment storage. | |
TilewireVector | mSinksBuf |
Scratch wire storage. | |
TilewireVector | mSourcesBuf |
Scratch wire storage. | |
std::set< Tilewire > | mTracedWiresBuf |
Traced wires collection. | |
TilewireVector | mWireQueue |
Private Types | |
typedef architecture::DDB | DDB |
Imported type name. | |
typedef architecture::ArcUsage | ArcUsage |
typedef architecture::WireUsage | WireUsage |
typedef architecture::Tilewire | Tilewire |
typedef architecture::Arc | Arc |
typedef architecture::TilewireVector | TilewireVector |
typedef architecture::ArcVector | ArcVector |
The unrouter allows the user to deactivate pips and wires that are associated with one another as all or part of a net.
Definition at line 36 of file Unrouter.hpp.
typedef architecture::DDB torc::router::Unrouter::DDB [private] |
torc::router::Unrouter::Unrouter | ( | DDB & | inDB | ) | [inline] |
torc::router::Unrouter::~Unrouter | ( | ) | [inline] |
RouteTreeNode* torc::router::Unrouter::traceToSinks | ( | Tilewire | inTilewire | ) | [inline] |
Trace from given Tilewire in a sinkwards direction only.
Traces from the specified source Tilewire in a sinkwards direction. If the Tilewire is a logic site output, then the result will be a full net.
Definition at line 116 of file Unrouter.hpp.
RouteTreeNode* torc::router::Unrouter::traceBranch | ( | Tilewire | inTilewire | ) | [inline] |
Trace from given Tilewire sinkwards and sourcewards to source or branch.
Traces from the specified source Tilewire. All downstream sinks are found and the closest branch point in the net or source is found.
Definition at line 126 of file Unrouter.hpp.
RouteTreeNode* torc::router::Unrouter::traceToSource | ( | Tilewire | inTilewire | ) | [inline] |
Trace from given Tilewire sourcewards to the source of the net.
Traces from the specified source Tilewire. All downstream sinks are found and the source of the net is found. Branch points are ignored.
Definition at line 136 of file Unrouter.hpp.
RouteTreeNode* torc::router::Unrouter::traceFull | ( | Tilewire | inTilewire | ) | [inline] |
Trace from given Tilewire and recover the entire net.
Traces from the specified Tilewire. All net sinks and the source are recovered fully reconstructing the net to which the Tilewire belongs.
Definition at line 146 of file Unrouter.hpp.
void torc::router::Unrouter::traceDownstream | ( | RouteTreeNode * | inNode | ) | [inline, protected] |
Remove the dummy node if possible.
Removes the dummy node if it is at an end of the trace. If it is in the middle, it removes it if there is only one child. Otherwise no change is made. Find the source of net that owns the given Tilewire. Recursively traces from the specified RouteTreeNode.
Definition at line 241 of file Unrouter.hpp.
void torc::router::Unrouter::traceUpstream | ( | RouteTreeNode * | inNode, | |
boost::int32_t | inMode | |||
) | [inline, protected] |
Recursively traces from the specified RouteTreeNode in one of three modes.
Definition at line 275 of file Unrouter.hpp.
DDB& torc::router::Unrouter::mDB [protected] |
ArcUsage& torc::router::Unrouter::mArcUsage [protected] |
WireUsage& torc::router::Unrouter::mWireUsage [protected] |
TilewireVector torc::router::Unrouter::mSegmentBuf [protected] |
TilewireVector torc::router::Unrouter::mSinksBuf [protected] |
TilewireVector torc::router::Unrouter::mSourcesBuf [protected] |
std::set<Tilewire> torc::router::Unrouter::mTracedWiresBuf [protected] |