Fix net creation/lookup ordering in cumulus/core2chip (fuse vss & iovss).

This commit is contained in:
Jean-Paul Chaput 2021-04-28 14:24:47 +02:00
parent 89a45180c1
commit e2d0188543
2 changed files with 11 additions and 7 deletions

View File

@ -117,8 +117,10 @@ class CoreToChip ( BaseCoreToChip ):
chipNet = Net.create( self.chip, ioPadConf.coreSupplyNetName ) chipNet = Net.create( self.chip, ioPadConf.coreSupplyNetName )
chipNet.setExternal( True ) chipNet.setExternal( True )
chipNet.setType ( Net.Type.GROUND ) chipNet.setType ( Net.Type.GROUND )
self.icorona.getPlug( coronaNet ).setNet( chipNet ) coronaPlug = self.icorona.getPlug( coronaNet )
self.ringNetNames['vss'] = chipNet if not coronaPlug.getNet():
coronaPlug.setNet( chipNet )
self.ringNetNames['vss'] = chipNet
ioPadConf.pads.append( Instance.create( self.chip ioPadConf.pads.append( Instance.create( self.chip
, 'p_vss_{}'.format(ioPadConf.index) , 'p_vss_{}'.format(ioPadConf.index)
, self.getCell(self.ioPadNames['vss']) ) ) , self.getCell(self.ioPadNames['vss']) ) )
@ -132,7 +134,7 @@ class CoreToChip ( BaseCoreToChip ):
padNet = Net.create( self.chip, ioPadConf.padSupplyNetName ) padNet = Net.create( self.chip, ioPadConf.padSupplyNetName )
padNet.setExternal( True ) padNet.setExternal( True )
padNet.setType ( Net.Type.GROUND ) padNet.setType ( Net.Type.GROUND )
self.ringNetNames['iovss'] = padNet self.ringNetNames['iovss'] = padNet
ioPadConf.pads.append( Instance.create( self.chip ioPadConf.pads.append( Instance.create( self.chip
, 'p_iovss_{}'.format(ioPadConf.index) , 'p_iovss_{}'.format(ioPadConf.index)
, self.getCell(self.ioPadNames['iovss']) ) ) , self.getCell(self.ioPadNames['iovss']) ) )

View File

@ -82,8 +82,10 @@ class CoreToChip ( BaseCoreToChip ):
chipNet = Net.create( self.chip, ioPadConf.coreSupplyNetName ) chipNet = Net.create( self.chip, ioPadConf.coreSupplyNetName )
chipNet.setExternal( True ) chipNet.setExternal( True )
chipNet.setType ( Net.Type.GROUND ) chipNet.setType ( Net.Type.GROUND )
self.icorona.getPlug( coronaNet ).setNet( chipNet ) coronaPlug = self.icorona.getPlug( coronaNet )
self.ringNetNames['vss'] = chipNet if not coronaPlug.getNet():
coronaPlug.setNet( chipNet )
self.ringNetNames['vss'] = chipNet
ioPadConf.pads.append( Instance.create( self.chip ioPadConf.pads.append( Instance.create( self.chip
, 'p_vss_{}'.format(ioPadConf.index) , 'p_vss_{}'.format(ioPadConf.index)
, self.getCell('vss') ) ) , self.getCell('vss') ) )
@ -92,12 +94,12 @@ class CoreToChip ( BaseCoreToChip ):
self.chipPads += ioPadConf.pads self.chipPads += ioPadConf.pads
def _buildIoGroundPads ( self, ioPadConf ): def _buildIoGroundPads ( self, ioPadConf ):
padNet = self.chip.getNet( ioPadConf.padSupplyNetName ) padNet = self.chip.getNet( ioPadConf.padSupplyNetName )
if not padNet: if not padNet:
padNet = Net.create( self.chip, ioPadConf.padSupplyNetName ) padNet = Net.create( self.chip, ioPadConf.padSupplyNetName )
padNet.setExternal( True ) padNet.setExternal( True )
padNet.setType ( Net.Type.GROUND ) padNet.setType ( Net.Type.GROUND )
self.ringNetNames['iovss'] = padNet self.ringNetNames['iovss'] = padNet
ioPadConf.pads.append( Instance.create( self.chip ioPadConf.pads.append( Instance.create( self.chip
, 'p_iovss_{}'.format(ioPadConf.index) , 'p_iovss_{}'.format(ioPadConf.index)
, self.getCell('iovss') ) ) , self.getCell('iovss') ) )