From f89e4ed4670579bc1646b3087b634ae0bf5f4272 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 23 Mar 2021 17:22:07 +0100 Subject: [PATCH] In cumulus/plugins.block.Block, make use of the C++ backport of hfns4. --- cumulus/src/plugins/alpha/block/block.py | 4 +++- cumulus/src/plugins/alpha/block/spares.py | 2 +- cumulus/src/plugins/alpha/chip/chip.py | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/cumulus/src/plugins/alpha/block/block.py b/cumulus/src/plugins/alpha/block/block.py index 6b396014..02f2c6e4 100644 --- a/cumulus/src/plugins/alpha/block/block.py +++ b/cumulus/src/plugins/alpha/block/block.py @@ -575,6 +575,8 @@ class Block ( object ): self.etesian = Etesian.EtesianEngine.create( self.conf.cell ) if self.conf.placeArea: self.etesian.setPlaceArea( self.conf.placeArea ) + self.etesian.getCell().flattenNets( None, Cell.Flags_NoClockFlatten ) + if self.conf.useHFNS: self.etesian.doHFNS() self.etesian.place() self.etesian.flattenPower() Breakpoint.stop( 100, 'Placement done.' ) @@ -700,7 +702,7 @@ class Block ( object ): self.placeIoPins() self.checkIoPins() self.spares.build() - if self.conf.useHFNS: self.findHfnTrees4() + #if self.conf.useHFNS: self.findHfnTrees4() if self.conf.useClockTree: self.addClockTrees() #if self.conf.useHFNS: self.addHfnBuffers() if editor: editor.fit() diff --git a/cumulus/src/plugins/alpha/block/spares.py b/cumulus/src/plugins/alpha/block/spares.py index 9f5c31ff..7dbc88e3 100644 --- a/cumulus/src/plugins/alpha/block/spares.py +++ b/cumulus/src/plugins/alpha/block/spares.py @@ -952,7 +952,7 @@ class Spares ( object ): return None tailPath = path.getTailPath() headInstance = path.getHeadInstance() - headPlug = utils.getPlugByNet(headInstance,topNet) + headPlug = utils.getPlugByNet( headInstance, topNet ) if not headPlug: masterCell = headInstance.getMasterCell() masterNet = masterCell.getNet( topNet.getName() ) diff --git a/cumulus/src/plugins/alpha/chip/chip.py b/cumulus/src/plugins/alpha/chip/chip.py index ed8349a6..dc18849c 100644 --- a/cumulus/src/plugins/alpha/chip/chip.py +++ b/cumulus/src/plugins/alpha/chip/chip.py @@ -71,6 +71,10 @@ class Chip ( Block ): return self.conf.validated def doChipFloorplan ( self ): + print( ' - Chip has {} north pads.'.format(len(self.conf.chipConf.northPads)) ) + print( ' - Chip has {} south pads.'.format(len(self.conf.chipConf.southPads)) ) + print( ' - Chip has {} east pads.' .format(len(self.conf.chipConf.eastPads )) ) + print( ' - Chip has {} west pads.' .format(len(self.conf.chipConf.westPads )) ) self.conf.computeCoronaBorder() self.conf.chipValidate() if not self.conf.validated: