In EtesianEngine::toColoquinte(), increase the buf_x8 size to solve DRC/LUP.
This commit is contained in:
parent
20efd75a32
commit
7f41cd73c7
|
@ -689,10 +689,13 @@ namespace Etesian {
|
||||||
DbU::Unit hpitch = getSliceStep();
|
DbU::Unit hpitch = getSliceStep();
|
||||||
DbU::Unit vpitch = getSliceStep();
|
DbU::Unit vpitch = getSliceStep();
|
||||||
DbU::Unit sliceHeight = getSliceHeight();
|
DbU::Unit sliceHeight = getSliceHeight();
|
||||||
|
bool isFlexLib = (getGauge()->getName() == "FlexLib");
|
||||||
|
|
||||||
cmess1 << " o Converting <" << getCell()->getName() << "> into Coloquinte." << endl;
|
cmess1 << " o Converting \"" << getCell()->getName() << "\" into Coloquinte." << endl;
|
||||||
cmess1 << ::Dots::asString(" - H-pitch" , DbU::getValueString(hpitch)) << endl;
|
cmess1 << ::Dots::asString(" - H-pitch" , DbU::getValueString(hpitch)) << endl;
|
||||||
cmess1 << ::Dots::asString(" - V-pitch" , DbU::getValueString(vpitch)) << endl;
|
cmess1 << ::Dots::asString(" - V-pitch" , DbU::getValueString(vpitch)) << endl;
|
||||||
|
if (isFlexLib)
|
||||||
|
cmess1 << ::Dots::asString(" - Using patches for" , "\"FlexLib\"") << endl;
|
||||||
cmess2 << " o Looking through the hierarchy." << endl;
|
cmess2 << " o Looking through the hierarchy." << endl;
|
||||||
|
|
||||||
for( Occurrence occurrence : getCell()->getTerminalNetlistInstanceOccurrences() )
|
for( Occurrence occurrence : getCell()->getTerminalNetlistInstanceOccurrences() )
|
||||||
|
@ -814,7 +817,9 @@ namespace Etesian {
|
||||||
|
|
||||||
_instsToIds.insert( make_pair(instance,instanceId) );
|
_instsToIds.insert( make_pair(instance,instanceId) );
|
||||||
_idsToInsts.push_back( make_tuple(instance,vector<RoutingPad*>()) );
|
_idsToInsts.push_back( make_tuple(instance,vector<RoutingPad*>()) );
|
||||||
// cerr << "FIXED id=" << instanceId
|
// cerr << endl;
|
||||||
|
// cerr << "FIXED " << instance << endl;
|
||||||
|
// cerr << " id=" << instanceId
|
||||||
// << " " << instance << " size:(" << xsize << " " << ysize
|
// << " " << instance << " size:(" << xsize << " " << ysize
|
||||||
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
||||||
++instanceId;
|
++instanceId;
|
||||||
|
@ -869,6 +874,10 @@ namespace Etesian {
|
||||||
// cerr << instance << " size:(" << xsize << " " << ysize
|
// cerr << instance << " size:(" << xsize << " " << ysize
|
||||||
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
||||||
|
|
||||||
|
string masterName = getString( instance->getMasterCell()->getName() );
|
||||||
|
if (isFlexLib and not instance->isFixed() and (masterName == "buf_x8"))
|
||||||
|
++xsize;
|
||||||
|
|
||||||
instances[instanceId].size = point<int_t>( xsize, ysize );
|
instances[instanceId].size = point<int_t>( xsize, ysize );
|
||||||
instances[instanceId].list_index = instanceId;
|
instances[instanceId].list_index = instanceId;
|
||||||
instances[instanceId].area = static_cast<capacity_t>(xsize) * static_cast<capacity_t>(ysize);
|
instances[instanceId].area = static_cast<capacity_t>(xsize) * static_cast<capacity_t>(ysize);
|
||||||
|
@ -881,7 +890,9 @@ namespace Etesian {
|
||||||
|coloquinte::YFlippable;
|
|coloquinte::YFlippable;
|
||||||
} else {
|
} else {
|
||||||
instances[instanceId].attributes = 0;
|
instances[instanceId].attributes = 0;
|
||||||
// cerr << "FIXED id=" << instanceId
|
// cerr << endl;
|
||||||
|
// cerr << "FIXED " << instance << endl;
|
||||||
|
// cerr << " id=" << instanceId
|
||||||
// << " " << instance << " size:(" << xsize << " " << ysize
|
// << " " << instance << " size:(" << xsize << " " << ysize
|
||||||
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
// << ") pos:(" << xpos << " " << ypos << ")" << endl;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue