From 1fb433d9ac7567d8e0116a8328d8da4d9a07a4de Mon Sep 17 00:00:00 2001 From: Jean-Paul Chaput Date: Tue, 4 May 2021 19:31:34 +0200 Subject: [PATCH] Stop saving AP files when working in real mode. * Change: In cumulus/plugins.block.configuration.Configuration.save() and cumulus/plugins.chip.Chip.save(), according to the kind of routing gauge we are using (symbolic or real), either recursively save all the layouts (AP symbolic files) or only the top-level GDSII (which embed all the hierarchy) one. --- cumulus/src/plugins/alpha/block/configuration.py | 10 +++++++++- cumulus/src/plugins/alpha/chip/chip.py | 9 ++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/cumulus/src/plugins/alpha/block/configuration.py b/cumulus/src/plugins/alpha/block/configuration.py index f0735123..ed176fbc 100644 --- a/cumulus/src/plugins/alpha/block/configuration.py +++ b/cumulus/src/plugins/alpha/block/configuration.py @@ -1237,7 +1237,15 @@ class BlockConf ( GaugeConf ): cell.setName( cell.getName()+'_cts' ) if self.chip is None: self.cell.setName( self.cell.getName()+'_r' ) - rsave( self.cell, CRL.Catalog.State.Physical|flags ) + views = CRL.Catalog.State.Logical + if self.routingGauge.isSymbolic(): + views = views | CRL.Catalog.State.Physical + rsave( self.cell, views|flags ) + if not self.routingGauge.isSymbolic(): + topCell = self.chip + if topCell is None: + topCell = self.cell + CRL.Gds.save( topCell ) return def toXPitch ( self, x, superior=False ): diff --git a/cumulus/src/plugins/alpha/chip/chip.py b/cumulus/src/plugins/alpha/chip/chip.py index 75bc44a4..be61bd04 100644 --- a/cumulus/src/plugins/alpha/chip/chip.py +++ b/cumulus/src/plugins/alpha/chip/chip.py @@ -143,9 +143,12 @@ class Chip ( Block ): def save ( self, flags=0 ): if not self.conf.validated: raise ErrorMessage( 1, 'chip.save(): Chip is not valid, aborting.' ) - super(Chip,self).save( flags ) self.conf.corona.setName( self.conf.corona.getName()+'_r' ) self.conf.chip .setName( self.conf.chip .getName()+'_r' ) + views = CRL.Catalog.State.Logical + if self.conf.routingGauge.isSymbolic(): + views = views | CRL.Catalog.State.Physical af = CRL.AllianceFramework.get() - af.saveCell( self.conf.corona, CRL.Catalog.State.Views|flags ) - af.saveCell( self.conf.chip , CRL.Catalog.State.Views|flags ) + af.saveCell( self.conf.corona, views|flags ) + af.saveCell( self.conf.chip , views|flags ) + super(Chip,self).save( flags )