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;
66 static void wipeoutRouting (
Cell* );
68 inline bool useClockTree ()
const;
76 inline unsigned int getRipupLimit (
unsigned int type )
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; }
159 inline Configuration::PostEventCb_t& KiteEngine::getPostEventCb () {
return _configuration->getPostEventCb(); }
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(); }
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()); }
178 inline TrackElement* KiteEngine::_lookup ( AutoSegment* segment )
const {
return segment->getObserver<TrackElement>(); }
182 extern const char* missingRW;
191 #endif // KITE_KITE_ENGINE_H
static const Name & staticGetName()
unsigned int getRipupCost() const
Definition: KiteEngine.h:162
Net * getBlockageNet()
Definition: KiteEngine.h:158
Structure managing one routing track.
Definition: Track.h:42
unsigned int getRipupLimit(unsigned int type) const
Definition: KiteEngine.h:166
Perform the routing, main RoutingEvent manager.
Definition: NegociateWindow.h:92
virtual Configuration * getConfiguration()
The Kite Tool.
Definition: KiteEngine.h:60
unsigned long getEventsLimit() const
Definition: KiteEngine.h:161
static KiteEngine * create(Cell *)
Array of Tracks in one Layer.
Definition: RoutingPlane.h:34
Abstract Class for all Elements inserted inside a Track.
Definition: TrackElement.h:100
KatabaticEngine * base()
Definition: KiteEngine.h:156
bool getToolSuccess() const
Definition: KiteEngine.h:160
Configuration * getKiteConfiguration()
Definition: KiteEngine.h:157