# -*- Mode:Python -*-
+from __future__ import print_function
import os
import Cfg
import CRL
import Viewer
#import node180.scn6m_deep_09
-import symbolic.cmos
-from helpers import l, u, n
+import symbolic.cmos45
+from helpers import overlay, l, u, n
-
-Cfg.Configuration.pushDefaultPriority( Cfg.Parameter.Priority.UserFile )
-
-
-Viewer.Graphics.setStyle( 'Alliance.Classic [black]' )
-
-Cfg.getParamBool ( 'misc.catchCore' ).setBool ( False )
-Cfg.getParamBool ( 'misc.info' ).setBool ( False )
-Cfg.getParamBool ( 'misc.paranoid' ).setBool ( False )
-Cfg.getParamBool ( 'misc.bug' ).setBool ( False )
-Cfg.getParamBool ( 'misc.logMode' ).setBool ( True )
-Cfg.getParamBool ( 'misc.verboseLevel1' ).setBool ( True )
-Cfg.getParamBool ( 'misc.verboseLevel2' ).setBool ( True )
-#Cfg.getParamInt ( 'misc.minTraceLevel' ).setInt ( 159 )
-#Cfg.getParamInt ( 'misc.maxTraceLevel' ).setInt ( 160 )
-Cfg.getParamEnumerate ( 'etesian.effort' ).setInt ( 2 )
-Cfg.getParamPercentage( 'etesian.spaceMargin' ).setPercentage( 20.0 )
-Cfg.getParamPercentage( 'etesian.aspectRatio' ).setPercentage( 100.0 )
-Cfg.getParamBool ( 'etesian.uniformDensity' ).setBool ( True )
-Cfg.getParamInt ( 'anabatic.edgeLenght' ).setInt ( 24 )
-Cfg.getParamInt ( 'anabatic.edgeWidth' ).setInt ( 8 )
-Cfg.getParamString ( 'anabatic.topRoutingLayer' ).setString ( 'METAL4')
-Cfg.getParamInt ( 'katana.eventsLimit' ).setInt ( 1000000 )
-Cfg.getParamInt ( 'katana.hTracksReservedLocal' ).setInt ( 7 )
-Cfg.getParamInt ( 'katana.vTracksReservedLocal' ).setInt ( 6 )
-#Cfg.getParamInt ( 'clockTree.minimumSide' ).setInt ( l(1000) )
-
-Cfg.Configuration.popDefaultPriority()
-
-#cellsTop = os.path.abspath( os.getcwd()+'/../cells' )
if os.environ.has_key('CELLS_TOP'):
- cellsTop = os.environ['CELLS_TOP']
+ cellsTop = os.environ['CELLS_TOP']
else:
- cellsTop = '../../../cells'
-
-af = CRL.AllianceFramework.get()
-env = af.getEnvironment()
-env.addSYSTEM_LIBRARY( library=cellsTop+'/nsxlib', mode=CRL.Environment.Prepend )
-env.addSYSTEM_LIBRARY( library=cellsTop+'/mpxlib', mode=CRL.Environment.Prepend )
-#env.setCLOCK( '^clk$|m_clock' )
-env.setCLOCK( 'clk' )
-env.setPOWER( 'vdd' )
-env.setGROUND( 'vss' )
-
-Cfg.Configuration.popDefaultPriority()
-
-print 'Successfully read user configuration'
-
+ cellsTop = '../../../alliance-check-toolkit/cells'
+with overlay.CfgCache(priority=Cfg.Parameter.Priority.UserFile) as cfg:
+ cfg.misc.catchCore = False
+ cfg.misc.info = False
+ cfg.misc.paranoid = False
+ cfg.misc.bug = False
+ cfg.misc.logMode = True
+ cfg.misc.verboseLevel1 = True
+ cfg.misc.verboseLevel2 = True
+ cfg.etesian.graphics = 3
+ cfg.etesian.spaceMargin = 0.05
+ cfg.etesian.aspectRatio = 1.0
+ cfg.anabatic.edgeLenght = 24
+ cfg.anabatic.edgeWidth = 8
+ cfg.anabatic.topRoutingLayer = 'METAL5'
+ cfg.katana.eventsLimit = 4000000
+ cfg.etesian.effort = 2
+ cfg.etesian.uniformDensity = True
+ cfg.katana.hTracksReservedLocal = 7
+ cfg.katana.vTracksReservedLocal = 6
+ Viewer.Graphics.setStyle( 'Alliance.Classic [black]' )
+ af = CRL.AllianceFramework.get()
+ env = af.getEnvironment()
+ env.setCLOCK( '^clk|^ck|^tck' )
+ env.addSYSTEM_LIBRARY( library=cellsTop+'/niolib', mode=CRL.Environment.Prepend )
+ env.addSYSTEM_LIBRARY( library=cellsTop+'/nsxlib', mode=CRL.Environment.Prepend )
+print( ' o Successfully run "<>/coriolis2/settings.py".' )
+print( ' - CELLS_TOP = "{}"'.format(cellsTop) )