17 #ifndef KITE_KITE_ENGINE_H 18 #define KITE_KITE_ENGINE_H 22 #include "hurricane/Name.h" 30 #include "crlcore/RoutingGauge.h" 31 #include "katabatic/KatabaticEngine.h" 37 #include "kite/Constants.h" 38 #include "kite/TrackElement.h" 39 #include "kite/Configuration.h" 54 class NegociateWindow;
63 static const Name& staticGetName ();
66 static void wipeoutRouting (
Cell* );
68 inline bool useClockTree ()
const;
71 inline Configuration* getKiteConfiguration ();
72 virtual Configuration* getConfiguration ();
73 inline Net* getBlockageNet ();
74 inline bool getToolSuccess ()
const;
75 inline unsigned long getEventsLimit ()
const;
76 inline unsigned int getRipupLimit (
unsigned int type )
const;
77 unsigned int getRipupLimit (
const TrackElement* )
const;
78 inline unsigned int getRipupCost ()
const;
79 inline size_t getHTracksReservedLocal ()
const;
80 inline size_t getVTracksReservedLocal ()
const;
81 inline bool profileEventCosts ()
const;
82 virtual const Name& getName ()
const;
83 inline Configuration::PostEventCb_t&
86 inline size_t getRoutingPlanesSize ()
const;
87 RoutingPlane* getRoutingPlaneByIndex (
size_t index )
const;
90 inline void printConfiguration ()
const;
91 void printCompletion ()
const;
92 void dumpMeasures ( std::ostream& )
const;
93 void dumpMeasures ()
const;
95 inline void setPostEventCb ( Configuration::PostEventCb_t );
96 inline void setEventLimit (
unsigned long );
97 inline void setMinimumWL (
double );
98 inline void setRipupLimit (
unsigned int type,
unsigned int );
99 inline void setRipupCost (
unsigned int );
100 inline void setHTracksReservedLocal (
size_t );
101 inline void setVTracksReservedLocal (
size_t );
102 void buildPowerRails ();
103 void buildPreRouteds ();
104 void protectRoutingPads ();
106 void setInterrupt (
bool );
107 void createGlobalGraph (
unsigned int mode );
108 virtual void createDetailedGrid ();
109 void saveGlobalSolution ();
110 void annotateGlobalGraph ();
111 void setFixedPreRouted ();
112 void runNegociate (
unsigned int flags=KtNoFlags );
113 void runGlobalRouter (
unsigned int mode );
114 virtual void loadGlobalRouting (
unsigned int method );
115 virtual void finalizeLayout ();
116 void _runKiteInit ();
118 void _computeCagedConstraints ();
121 bool _check (
unsigned int& overlap,
const char* message=NULL )
const;
122 void _check (
Net* )
const;
123 virtual Record* _getRecord ()
const;
124 virtual string _getString ()
const;
125 virtual string _getTypeName ()
const;
129 static Name _toolName;
132 Knik::KnikEngine* _knik;
134 Configuration* _configuration;
135 vector<RoutingPlane*> _routingPlanes;
138 mutable bool _toolSuccess;
144 virtual void _postCreate ();
145 virtual void _preDestroy ();
146 void _initDataBase ();
154 inline bool KiteEngine::useClockTree ()
const {
return _configuration->useClockTree(); }
155 inline CellViewer* KiteEngine::getViewer ()
const {
return _viewer; }
157 inline Configuration* KiteEngine::getKiteConfiguration () {
return _configuration; }
158 inline Net* KiteEngine::getBlockageNet () {
return _blockageNet; }
159 inline Configuration::PostEventCb_t& KiteEngine::getPostEventCb () {
return _configuration->getPostEventCb(); }
160 inline bool KiteEngine::getToolSuccess ()
const {
return _toolSuccess; }
161 inline unsigned long KiteEngine::getEventsLimit ()
const {
return _configuration->getEventsLimit(); }
162 inline unsigned int KiteEngine::getRipupCost ()
const {
return _configuration->getRipupCost(); }
163 inline size_t KiteEngine::getHTracksReservedLocal ()
const {
return _configuration->getHTracksReservedLocal(); }
164 inline size_t KiteEngine::getVTracksReservedLocal ()
const {
return _configuration->getVTracksReservedLocal(); }
165 inline bool KiteEngine::profileEventCosts ()
const {
return _configuration->profileEventCosts(); }
166 inline unsigned int KiteEngine::getRipupLimit (
unsigned int type )
const {
return _configuration->getRipupLimit(type); }
167 inline NegociateWindow* KiteEngine::getNegociateWindow () {
return _negociateWindow; }
168 inline size_t KiteEngine::getRoutingPlanesSize ()
const {
return _routingPlanes.size(); }
169 inline void KiteEngine::setViewer (
CellViewer* viewer ) { _viewer=viewer; }
170 inline void KiteEngine::setEventLimit (
unsigned long limit ) { _configuration->setEventsLimit(limit); }
171 inline void KiteEngine::setRipupLimit (
unsigned int type,
unsigned int limit ) { _configuration->setRipupLimit(limit,type); }
172 inline void KiteEngine::setRipupCost (
unsigned int cost ) { _configuration->setRipupCost(cost); }
173 inline void KiteEngine::setHTracksReservedLocal (
size_t reserved ) { _configuration->setHTracksReservedLocal(reserved); }
174 inline void KiteEngine::setVTracksReservedLocal (
size_t reserved ) { _configuration->setVTracksReservedLocal(reserved); }
175 inline void KiteEngine::setMinimumWL (
double minimum ) { _minimumWL = minimum; }
176 inline void KiteEngine::setPostEventCb ( Configuration::PostEventCb_t cb ) { _configuration->setPostEventCb(cb); }
177 inline void KiteEngine::printConfiguration ()
const { _configuration->print(getCell()); }
182 extern const char* missingRW;
191 #endif // KITE_KITE_ENGINE_H
Definition: KiteEngine.h:33
Structure managing one routing track.
Definition: Track.h:42
Perform the routing, main RoutingEvent manager.
Definition: NegociateWindow.h:92
The Kite Tool.
Definition: KiteEngine.h:60
Array of Tracks in one Layer.
Definition: RoutingPlane.h:34
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
The namespace dedicated to Kite.
Definition: Constants.h:22