diff --git a/cumulus/src/plugins/block/block.py b/cumulus/src/plugins/block/block.py index 741b2fcb..fd0792ef 100644 --- a/cumulus/src/plugins/block/block.py +++ b/cumulus/src/plugins/block/block.py @@ -484,6 +484,19 @@ class Block ( object ): trace( 550, '\tCORE AB is {}\n'.format(self.conf.cell.getAbutmentBox()) ) if self.conf.isCoreBlock: self.conf.setupICore() + minHCorona = self.conf.minHCorona + minVCorona = self.conf.minVCorona + innerBb = Box( self.conf.coreAb ) + innerBb.inflate( minHCorona, minVCorona ) + coronaAb = self.conf.corona.getAbutmentBox() + if innerBb.getWidth() > coronaAb.getWidth(): + raise ErrorMessage( 1, 'Core is too wide to fit into the corona, needs {} but only has {}.' \ + .format( DbU.getValueString(innerBb .getWidth()) + , DbU.getValueString(coronaAb.getWidth()) ) ) + if innerBb.getHeight() > coronaAb.getHeight(): + raise ErrorMessage( 1, 'Core is too tall to fit into the corona, needs {} but only has {}.' \ + .format( DbU.getValueString(innerBb .getHeight()) + , DbU.getValueString(coronaAb.getHeight()) ) ) self.conf.setRoutingBb( self.conf.cellPnR.getAbutmentBox() ) def flattenNets ( self ): diff --git a/cumulus/src/plugins/chip/chip.py b/cumulus/src/plugins/chip/chip.py index 4fa7a44e..91e5a724 100644 --- a/cumulus/src/plugins/chip/chip.py +++ b/cumulus/src/plugins/chip/chip.py @@ -99,11 +99,14 @@ class Chip ( Block ): trace( 550, '\tminHCorona={}\n'.format(DbU.getValueString( minHCorona ))) trace( 550, '\tminVCorona={}\n'.format(DbU.getValueString( minVCorona ))) else: + print( ' - Using harness.' ) self.padsCorona = harnessPads.Corona( self ) self.padsCorona.doLayout() innerBb = Box( self.conf.coreAb ) innerBb.inflate( minHCorona, minVCorona ) coronaAb = self.conf.corona.getAbutmentBox() + trace( 550, '\tinnerBb:{}\n'.format(innerBb) ) + trace( 550, '\tcoronaAb:{}\n'.format(coronaAb) ) if innerBb.getWidth() > coronaAb.getWidth(): raise ErrorMessage( 1, 'Core is too wide to fit into the corona, needs {} but only has {}.' \ .format( DbU.getValueString(innerBb .getWidth())