Opaque blocks area was not taken into account in EtesianEngine::toHurricane().
* Bug: In EtesianEngine::toHurricane(), when looping over the AB of all the FIXED instances occurrences, we where excluding contained AB instead of merging them...
This commit is contained in:
parent
9dc0040703
commit
109b2e4dee
|
@ -690,7 +690,7 @@ namespace Etesian {
|
|||
Occurrence cellOccurrence = toCell( occurrence );
|
||||
cellOccurrence.getPath().getTransformation().applyOn( instanceAb );
|
||||
|
||||
if (not topPlaceArea.contains(instanceAb)) {
|
||||
if (not topPlaceArea.intersect(instanceAb)) {
|
||||
if (instance->getPlacementStatus() != Instance::PlacementStatus::FIXED)
|
||||
cerr << Warning( "EtesianEngine::readSlices(): Instance %s is not fully enclosed in the top cell.\n"
|
||||
" * topPlaceArea=%s\n"
|
||||
|
@ -703,6 +703,19 @@ namespace Etesian {
|
|||
continue;
|
||||
}
|
||||
|
||||
if (not topPlaceArea.contains(instanceAb)) {
|
||||
if (instance->getPlacementStatus() != Instance::PlacementStatus::FIXED)
|
||||
cerr << Warning( "EtesianEngine::readSlices(): Instance %s is not fully enclosed in the top cell.\n"
|
||||
" * topPlaceArea=%s\n"
|
||||
" * instanceAb=%s cell=%s"
|
||||
, getString(instance->getName()).c_str()
|
||||
, getString(topPlaceArea).c_str()
|
||||
, getString(instanceAb).c_str()
|
||||
, getString(instance->getCell()).c_str()
|
||||
) << endl;
|
||||
instanceAb = topPlaceArea.getIntersection( instanceAb );
|
||||
}
|
||||
|
||||
_area->merge( cellOccurrence, instanceAb );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue