Perform the routing, main RoutingEvent manager. More...
Public Types | |
enum | Stage { Negociation = 1, Packing = 2 } |
Public Member Functions | |
void | destroy () |
bool | isInterrupted () const |
KiteEngine * | getKiteEngine () const |
Hurricane::Cell * | getCell () const |
const Katabatic::GCellVector & | getGCells () const |
RoutingEventQueue & | getEventQueue () |
RoutingEventHistory & | getEventHistory () |
RoutingEventLoop & | getEventLoop () |
Stage | getStage () const |
void | setGCells (const Katabatic::GCellVector &) |
void | setInterrupt (bool) |
void | setStage (Stage) |
double | computeWirelength () |
TrackElement * | createTrackSegment (AutoSegment *, unsigned int flags) |
void | addRoutingEvent (TrackElement *, unsigned int level) |
void | rescheduleEvent (RoutingEvent *, unsigned int level) |
void | run (unsigned int flags) |
void | printStatistics () const |
Static Public Member Functions | |
static NegociateWindow * | create (KiteEngine *) |
Perform the routing, main RoutingEvent manager.
This object perform the routing. That is creates all the initial RoutingEvent, load them into the queue and then process the queue until it is empty, that is, the routing is finished.
This object is the owner of the RoutingEventQueue, RoutingEventHistory and RoutingEventLoop used all troughout RoutingEvent and SegmentFsm.
enum Stage |
|
static |
The publicly avalaible contructor. Route the whole are defined by the Kite associated Cell abutment box.
void destroy | ( | ) |
The publicly avalaible destructor.
|
inline |
Returns: true if the NegociateWindow has received an interrupt request.
|
inline |
Returns: The associated KiteEngine.
Referenced by NegociateWindow::printStatistics().
Hurricane::Cell * getCell | ( | ) | const |
Returns: The associated Cell.
Referenced by NegociateWindow::printStatistics().
|
inline |
Returns: A Copy of the vector of GCell from KatabaticEngine. The vector is copied but not the GCell themselves (shallow copy).
|
inline |
Returns: The RoutingEventQueue.
|
inline |
Returns: The RoutingEventHistory.
|
inline |
Returns: The RoutingEventLoop.
|
inline |
Returns: The stage (NegicateWindow::Stage) into which the NegociateWindow is running.
void setGCells | ( | const Katabatic::GCellVector & | v | ) |
Sets the GCell vector from KatabaticEngine (perform a shallow copy).
|
inline |
Sets or unset the interruption flag.
|
inline |
Set the stage (NegociateWindow::Stage) under which we are running.
double computeWirelength | ( | ) |
Compute the total wirelength of the circuit. It is not completly accurate because overlaps are not took into accounts.
Referenced by NegociateWindow::run().
TrackElement * createTrackSegment | ( | AutoSegment * | autoSegment, |
unsigned int | flags | ||
) |
Build a TrackSegment from the Katabatic::AutoSegment. If flags
contains Kite::KtLoadingStage then assume that we are in the initial loading stage (constructor).
void addRoutingEvent | ( | TrackElement * | segment, |
unsigned int | level | ||
) |
Create a new RoutingEvent from TrackElement (if it doesn't already exists) and insert it into the queue with priority level
.
Referenced by TrackSegment::reschedule().
|
inline |
Reschedule an event into the queue, with priority level
.
Referenced by TrackSegment::reschedule().
void run | ( | unsigned int | flags | ) |
Perform the routing.
slowMotion
is not implemented yet.
void printStatistics | ( | ) | const |
Display some statistics about the routing, compute the internal complete statistics.
Referenced by NegociateWindow::run().
Generated by doxygen 1.8.5 on Mon Oct 1 2018 | Return to top of page |
Kite - Detailed Router | Copyright © 2008-2016 UPMC. All rights reserved |