diff --git a/katana/src/PowerRails.cpp b/katana/src/PowerRails.cpp index 3942158a..23a62662 100644 --- a/katana/src/PowerRails.cpp +++ b/katana/src/PowerRails.cpp @@ -915,9 +915,10 @@ namespace { virtual void doQuery (); inline void doLayout (); inline uint32_t getGoMatchCount () const; + inline RoutingGauge* getRoutingGauge () const; private: AllianceFramework* _framework; - KatanaEngine* _katana; + KatanaEngine* _katana; RoutingGauge* _routingGauge; const ChipTools& _chipTools; PowerRailsPlanes _powerRailsPlanes; @@ -957,6 +958,10 @@ namespace { { return _powerRailsPlanes.doLayout(); } + inline RoutingGauge* QueryPowerRails::getRoutingGauge () const + { return _routingGauge; } + + bool QueryPowerRails::hasBasicLayer ( const BasicLayer* basicLayer ) { return _powerRailsPlanes.hasPlane ( basicLayer ); } @@ -1031,6 +1036,12 @@ namespace { cdebug_log(159,0) << " rootNet " << rootNet << " (" << rootNet->isClock() << ") " << go->getCell() << " (" << go->getCell()->isTerminal() << ")" << endl; + // unsigned int type = _powerRailsPlanes.getActivePlane()->getRoutingPlane()->getLayerGauge()->getType(); + if (go->getCell()->isTerminalNetlist()) { + if (not rootNet->isSupply() and not rootNet->isClock() and not _isBlockagePlane) + return; + } + const Segment* segment = dynamic_cast(component); if ( segment != NULL ) { _goMatchCount++;