Always check that coreAb fit into coronaAb while building a chip.
This commit is contained in:
parent
6fb0215742
commit
c8d98a304e
|
@ -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 ):
|
||||
|
|
|
@ -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())
|
||||
|
|
Loading…
Reference in New Issue