From 30afe6036b7f1c6aa0595f3f760fd6290917e707 Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Sat, 7 Jan 2023 12:57:23 +0100 Subject: [PATCH] Add management of unused layers in cumulus/plugins.block.configuration. --- crlcore/python/helpers/__init__.py | 1 - cumulus/src/plugins/__init__.py | 3 ++- cumulus/src/plugins/alpha/block/configuration.py | 4 ++++ cumulus/src/plugins/alpha/core2chip/core2chip.py | 3 +-- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/crlcore/python/helpers/__init__.py b/crlcore/python/helpers/__init__.py index 23dd9a26..d8376bcb 100644 --- a/crlcore/python/helpers/__init__.py +++ b/crlcore/python/helpers/__init__.py @@ -318,7 +318,6 @@ def setNdaTopDir ( ndaTopDirArg ): ndaTopDir = ndaTopDirArg sys.path.append( os.path.join(ndaTopDir,'etc/coriolis2') ) sys.path.append( ndaTopDir ) - return diff --git a/cumulus/src/plugins/__init__.py b/cumulus/src/plugins/__init__.py index 509617b4..b793af05 100644 --- a/cumulus/src/plugins/__init__.py +++ b/cumulus/src/plugins/__init__.py @@ -250,13 +250,14 @@ def staticInitialization (): if helpers.ndaTopDir: vprint( 1, ' o Preload NDA protected plugins.' ) - pythonDir =os.path.join( helpers.ndaTopDir, 'python{}.{}'.format( sys.version_info.major + pythonDir = os.path.join( helpers.ndaTopDir, 'python{}.{}'.format( sys.version_info.major , sys.version_info.minor )) if os.path.isdir(pythonDir): pluginsDir = os.path.join( pythonDir, 'site-packages/cumulus/plugins' ) loadPlugins( pluginsDir ) else: vprint( 1, ' - No NDA protected plugins directory.' ) + vprint( 1, ' ({}).'.format( pythonDir )) else: vprint( 1, ' - No NDA protected plugins.' ) except Exception as e: diff --git a/cumulus/src/plugins/alpha/block/configuration.py b/cumulus/src/plugins/alpha/block/configuration.py index 7d386a76..5c14979a 100644 --- a/cumulus/src/plugins/alpha/block/configuration.py +++ b/cumulus/src/plugins/alpha/block/configuration.py @@ -166,8 +166,12 @@ class GaugeConf ( object ): for depth in range(0,self.topLayerDepth+1): trace( 550, '\tdepth:{} {}\n'.format(depth,self._routingGauge.getLayerGauge(depth) )) + if self._routingGauge.getLayerGauge(depth).getType() == RoutingLayerGauge.Unusable: + continue if self._routingGauge.getLayerGauge(depth).getType() == RoutingLayerGauge.PinOnly: continue + if self._routingGauge.getLayerGauge(depth).getType() == RoutingLayerGauge.BottomPowerSupply: + continue if self._routingGauge.getLayerGauge(depth).getType() == RoutingLayerGauge.PowerSupply: continue if self._routingGauge.getLayerGauge(depth).getDirection() == RoutingLayerGauge.Horizontal: diff --git a/cumulus/src/plugins/alpha/core2chip/core2chip.py b/cumulus/src/plugins/alpha/core2chip/core2chip.py index 1dece882..1a9ea415 100644 --- a/cumulus/src/plugins/alpha/core2chip/core2chip.py +++ b/cumulus/src/plugins/alpha/core2chip/core2chip.py @@ -492,7 +492,7 @@ class CoreToChip ( object ): :param instance: The instance to work on. :param netO: The signal to connect to, could be either the net *name* or the net object itself. - :param masterNetO: The master net (interal net) of the plug. Could be either + :param masterNetO: The master net (internal net) of the plug. Could be either the net *name* or the net object. If not supplied, ``_connect()`` will look for a master net of the same name as ``netO`` @@ -503,7 +503,6 @@ class CoreToChip ( object ): if not masterNetO: masterNet = instance.getMasterCell().getNet( chipNet.getName() ) elif isinstance(masterNetO,Net): masterNet = masterNetO else: masterNet = instance.getMasterCell().getNet( masterNetO ) - instance.getPlug( masterNet ).setNet( chipNet ) return