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 )