Remove check over RegularLayer in TrackFixedsegment CTOR (for real mode).

This commit is contained in:
Jean-Paul Chaput 2020-11-11 13:46:47 +01:00
parent 03bfc091c3
commit 1b6d5bd09d
1 changed files with 9 additions and 4 deletions

View File

@ -60,6 +60,7 @@ namespace Katana {
: TrackElement (NULL) : TrackElement (NULL)
, _segment (segment) , _segment (segment)
{ {
cdebug_log(159,0) << "TrackFixedSegment::TrackFixedSegment() track:" << track << endl;
Box boundingBox = segment->getBoundingBox(); Box boundingBox = segment->getBoundingBox();
uint32_t flags = TElemFixed | ((segment->getNet() == Session::getBlockageNet()) ? TElemBlockage : 0); uint32_t flags = TElemFixed | ((segment->getNet() == Session::getBlockageNet()) ? TElemBlockage : 0);
@ -69,13 +70,15 @@ namespace Katana {
uint32_t depth = track->getDepth(); uint32_t depth = track->getDepth();
Technology* technology = DataBase::getDB()->getTechnology(); Technology* technology = DataBase::getDB()->getTechnology();
const Layer* layer1 = track->getLayer()->getBlockageLayer(); const Layer* layer1 = track->getLayer()->getBlockageLayer();
RegularLayer* layer2 = dynamic_cast<RegularLayer*>(technology->getLayer(layer1->getMask())); //RegularLayer* layer2 = dynamic_cast<RegularLayer*>(technology->getLayer(layer1->getMask()));
if ( layer2 ) { //if (layer2) {
//cerr << track->getLayer() << " minSpace:" << DbU::getValueString(track->getLayer()->getMinimalSpacing()) << endl; //cerr << track->getLayer() << " minSpace:" << DbU::getValueString(track->getLayer()->getMinimalSpacing()) << endl;
Interval segside; Interval segside;
Interval uside = track->getKatanaEngine()->getUSide( track->getDirection() ); Interval uside = track->getKatanaEngine()->getUSide( track->getDirection() );
DbU::Unit cap = track->getLayer()->getMinimalSpacing()/2 /*+ track->getLayer()->getExtentionCap()*/; DbU::Unit cap = track->getLayer()->getMinimalSpacing()/2 /*+ track->getLayer()->getExtentionCap()*/;
cdebug_log(159,0) << "uside:" << uside << " cap:" << DbU::getValueString(cap) << endl;
cdebug_log(159,0) << "bb:" << boundingBox << endl;
if (track->getDirection() == Flags::Horizontal) { if (track->getDirection() == Flags::Horizontal) {
segside = Interval( boundingBox.getXMin(), boundingBox.getXMax() ); segside = Interval( boundingBox.getXMin(), boundingBox.getXMax() );
_sourceU = max( boundingBox.getXMin() - cap, uside.getVMin()); _sourceU = max( boundingBox.getXMin() - cap, uside.getVMin());
@ -98,8 +101,9 @@ namespace Katana {
( depth, gcell->getSide( track->getDirection() ).getIntersection( segside ).getSize() ); ( depth, gcell->getSide( track->getDirection() ).getIntersection( segside ).getSize() );
gcell->flags() |= gcellFlags; gcell->flags() |= gcellFlags;
} }
} //}
} } else
cdebug_log(159,0) << "No track specified!" << endl;
} }
@ -122,6 +126,7 @@ namespace Katana {
{ {
TrackFixedSegment* trackFixedSegment = NULL; TrackFixedSegment* trackFixedSegment = NULL;
if (track) { if (track) {
cdebug_log(159,0) << "TrackFixedSegment::create() track:" << track << endl;
trackFixedSegment = new TrackFixedSegment ( track, segment ); trackFixedSegment = new TrackFixedSegment ( track, segment );
trackFixedSegment->_postCreate(); trackFixedSegment->_postCreate();