NegociateWindow(3)

NAME
NegociateWindow - Perform the routing, main RoutingEvent manager.

SYNOPSIS

  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 *)

Detailed Description

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.

Member Enumeration Documentation

  enum Stage
The state under which the router is operating.

Enumerator

Negociation
    The normal mode, priority negociation with ripup.

Packing
    Try to find a better placement for segment but just by looking for other fully free spaces. No ripup is performed.

Member Function Documentation

  create (KiteEngine * kite) [static]
The publicly avalaible contructor. Route the whole are defined by the Kite associated Cell abutment box.

  void destroy ()
The publicly avalaible destructor.

  bool isInterrupted () const [inline]
Returns: true if the NegociateWindow has received an interrupt request.

  KiteEngine * getKiteEngine () const [inline]
Returns: The associated KiteEngine.

Referenced by NegociateWindow::printStatistics().

  Hurricane::Cell * getCell () const
Returns: The associated Cell.

  const Katabatic::GCellVector & getGCells () const [inline]
Returns: A Copy of the vector of GCell from KatabaticEngine. The vector is copied but not the GCell themselves (shallow copy).

  RoutingEventQueue & getEventQueue () [inline]
Returns: The RoutingEventQueue.

  RoutingEventHistory & getEventHistory () [inline]
Returns: The RoutingEventHistory.

  RoutingEventLoop & getEventLoop () [inline]
Returns: The RoutingEventLoop.

  Stage getStage () const [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).

  void setInterrupt (bool state) [inline]
Sets or unset the interruption flag.

  void setStage (Stage stage) [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().

  void rescheduleEvent (RoutingEvent * event, unsigned int level) [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().

Author

Generated automatically by Doxygen for Kite - Detailed Router from the source code.