coriolis/kite/doc/man/man3/Kite_NegociateWindow.3

158 lines
5.4 KiB
Groff
Raw Normal View History

.TH "NegociateWindow" 3 "Sun Nov 21 2021" "Version 1.0" "Kite - Detailed Router" \" -*- nroff -*-
.ad l
.nh
.SH NAME
NegociateWindow \- Perform the routing, main \fBRoutingEvent\fP manager\&.
.SH SYNOPSIS
.br
.PP
.SS "Public Types"
.in +1c
.ti -1c
.RI "enum \fBStage\fP { \fBNegociation\fP = 1, \fBPacking\fP = 2 }"
.br
.in -1c
.SS "Public Member Functions"
.in +1c
.ti -1c
.RI "void \fBdestroy\fP ()"
.br
.ti -1c
.RI "bool \fBisInterrupted\fP () const"
.br
.ti -1c
.RI "\fBKiteEngine\fP * \fBgetKiteEngine\fP () const"
.br
.ti -1c
.RI "\fBHurricane::Cell\fP * \fBgetCell\fP () const"
.br
.ti -1c
.RI "const Katabatic::GCellVector & \fBgetGCells\fP () const"
.br
.ti -1c
.RI "\fBRoutingEventQueue\fP & \fBgetEventQueue\fP ()"
.br
.ti -1c
.RI "\fBRoutingEventHistory\fP & \fBgetEventHistory\fP ()"
.br
.ti -1c
.RI "\fBRoutingEventLoop\fP & \fBgetEventLoop\fP ()"
.br
.ti -1c
.RI "\fBStage\fP \fBgetStage\fP () const"
.br
.ti -1c
.RI "void \fBsetGCells\fP (const Katabatic::GCellVector &)"
.br
.ti -1c
.RI "void \fBsetInterrupt\fP (bool)"
.br
.ti -1c
.RI "void \fBsetStage\fP (\fBStage\fP)"
.br
.ti -1c
.RI "double \fBcomputeWirelength\fP ()"
.br
.ti -1c
.RI "\fBTrackElement\fP * \fBcreateTrackSegment\fP (\fBAutoSegment\fP *, unsigned int flags)"
.br
.ti -1c
.RI "void \fBaddRoutingEvent\fP (\fBTrackElement\fP *, unsigned int level)"
.br
.ti -1c
.RI "void \fBrescheduleEvent\fP (\fBRoutingEvent\fP *, unsigned int level)"
.br
.ti -1c
.RI "void \fBrun\fP (unsigned int flags)"
.br
.ti -1c
.RI "void \fBprintStatistics\fP () const"
.br
.in -1c
.SS "Static Public Member Functions"
.in +1c
.ti -1c
.RI "static \fBNegociateWindow\fP * \fBcreate\fP (\fBKiteEngine\fP *)"
.br
.in -1c
.SH "Detailed Description"
.PP
Perform the routing, main \fBRoutingEvent\fP manager\&.
This object perform the routing\&. That is creates all the initial \fBRoutingEvent\fP, load them into the queue and then process the queue until it is empty, that is, the routing is finished\&.
.PP
This object is the owner of the \fBRoutingEventQueue\fP, \fBRoutingEventHistory\fP and \fBRoutingEventLoop\fP used all troughout \fBRoutingEvent\fP and \fBSegmentFsm\fP\&.
.SH "Member Enumeration Documentation"
.PP
.SS "enum \fBStage\fP"
The state under which the router is operating\&.
.PP
\fBEnumerator\fP
.in +1c
.TP
\fB\fINegociation \fP\fP
The normal mode, priority negociation with ripup\&.
.TP
\fB\fIPacking \fP\fP
Try to find a better placement for segment but just by looking for other fully free spaces\&. No ripup is performed\&.
.SH "Member Function Documentation"
.PP
.SS "create (\fBKiteEngine\fP * kite)\fC [static]\fP"
The publicly avalaible contructor\&. Route the whole are defined by the \fBKite\fP associated Cell abutment box\&.
.SS "void destroy ()"
The publicly avalaible destructor\&.
.SS "bool isInterrupted () const\fC [inline]\fP"
\fBReturns:\fP \fBtrue\fP if the \fBNegociateWindow\fP has received an interrupt request\&.
.SS "\fBKiteEngine\fP * getKiteEngine () const\fC [inline]\fP"
\fBReturns:\fP The associated \fBKiteEngine\fP\&.
.PP
Referenced by NegociateWindow::printStatistics()\&.
.SS "\fBHurricane::Cell\fP * getCell () const"
\fBReturns:\fP The associated Cell\&.
.SS "const Katabatic::GCellVector & getGCells () const\fC [inline]\fP"
\fBReturns:\fP A Copy of the vector of GCell from KatabaticEngine\&. The vector is copied but not the GCell themselves (shallow copy)\&.
.SS "\fBRoutingEventQueue\fP & getEventQueue ()\fC [inline]\fP"
\fBReturns:\fP The \fBRoutingEventQueue\fP\&.
.SS "\fBRoutingEventHistory\fP & getEventHistory ()\fC [inline]\fP"
\fBReturns:\fP The \fBRoutingEventHistory\fP\&.
.SS "\fBRoutingEventLoop\fP & getEventLoop ()\fC [inline]\fP"
\fBReturns:\fP The \fBRoutingEventLoop\fP\&.
.SS "\fBStage\fP getStage () const\fC [inline]\fP"
\fBReturns:\fP The stage (NegicateWindow::Stage) into which the \fBNegociateWindow\fP is running\&.
.SS "void setGCells (const Katabatic::GCellVector & v)"
Sets the GCell vector from KatabaticEngine (perform a shallow copy)\&.
.SS "void setInterrupt (bool state)\fC [inline]\fP"
Sets or unset the interruption flag\&.
.SS "void setStage (\fBStage\fP stage)\fC [inline]\fP"
Set the stage (\fBNegociateWindow::Stage\fP) under which we are running\&.
.SS "double computeWirelength ()"
Compute the total wirelength of the circuit\&. It is not completly accurate because overlaps are not took into accounts\&.
.PP
Referenced by NegociateWindow::run()\&.
.SS "\fBTrackElement\fP * createTrackSegment (\fBAutoSegment\fP * autoSegment, unsigned int flags)"
Build a \fBTrackSegment\fP from the \fBKatabatic::AutoSegment\fP\&. If \fCflags\fP contains Kite::KtLoadingStage then assume that we are in the initial loading stage (constructor)\&.
.SS "void addRoutingEvent (\fBTrackElement\fP * segment, unsigned int level)"
Create a new \fBRoutingEvent\fP from \fBTrackElement\fP (if it doesn't already exists) and insert it into the queue with priority \fClevel\fP\&.
.PP
Referenced by TrackSegment::reschedule()\&.
.SS "void rescheduleEvent (\fBRoutingEvent\fP * event, unsigned int level)\fC [inline]\fP"
Reschedule an event into the queue, with priority \fClevel\fP\&.
.PP
Referenced by TrackSegment::reschedule()\&.
.SS "void run (unsigned int flags)"
Perform the routing\&.
.PP
\fCslowMotion\fP is not implemented yet\&.
.SS "void printStatistics () const"
Display some statistics about the routing, compute the internal complete statistics\&.
.PP
Referenced by NegociateWindow::run()\&.
.SH "Author"
.PP
Generated automatically by Doxygen for Kite - Detailed Router from the source code\&.