coriolis/crlcore/etc/symbolic/phenitec06/kite.conf

97 lines
5.1 KiB
Python

# -*- Mode:Python; explicit-buffer-name: "kite.conf<phenitec06>" -*-
import helpers
from helpers import l, u, n
# Contains the layout (shared by all technologies).
execfile( helpers.sysConfDir+'/common/kite.conf' )
parametersTable = \
( ('lefImport.minTerminalWidth' , TypeDouble , 0.0 )
, ("katabatic.globalLengthThreshold", TypeInt , 1450 ) # Katabatic parameters.
, ("katabatic.saturateRatio" , TypePercentage, 80 )
, ("katabatic.saturateRp" , TypeInt , 8 )
, ('katabatic.topRoutingLayer' , TypeString , 'METAL3' )
# Kite parameters.
, ("kite.hTracksReservedLocal" , TypeInt , 4 , { 'min':0, 'max':18 } )
, ("kite.vTracksReservedLocal" , TypeInt , 3 , { 'min':0, 'max':18 } )
, ("kite.eventsLimit" , TypeInt , 4000002 )
, ("kite.ripupCost" , TypeInt , 3 , { 'min':0 } )
, ("kite.strapRipupLimit" , TypeInt , 16 , { 'min':1 } )
, ("kite.localRipupLimit" , TypeInt , 9 , { 'min':1 } )
, ("kite.globalRipupLimit" , TypeInt , 5 , { 'min':1 } )
, ("kite.longGlobalRipupLimit" , TypeInt , 5 , { 'min':1 } )
# Anabatic parameters are temporarily hosted here.
, ('anabatic.topRoutingLayer' , TypeString , 'METAL3' )
, ("anabatic.routingGauge" , TypeString , 'msxlib3')
, ("anabatic.edgeLength" , TypeInt , 48 )
, ("anabatic.edgeWidth" , TypeInt , 8 )
, ("anabatic.edgeCostH" , TypeDouble , 19.0 )
, ("anabatic.edgeCostK" , TypeDouble , -60.0 )
, ("anabatic.edgeHInc" , TypeDouble , 1.0 )
, ("anabatic.edgeHScaling" , TypeDouble , 1.0 )
, ("anabatic.globalIterations" , TypeInt , 20 , { 'min':1, 'max':100 } )
, ("anabatic.gcell.displayMode" , TypeEnumerate , 1
, { 'values':( ("Boundary" , 1)
, ("Density" , 2) ) }
)
, ("katana.hTracksReservedLocal" , TypeInt , 5 )
, ("katana.vTracksReservedLocal" , TypeInt , 3 )
, ("katana.termSatReservedLocal" , TypeInt , 5 )
, ("katana.termSatThreshold" , TypeInt , 11 )
, ("katana.eventsLimit" , TypeInt , 4000002 )
, ("katana.ripupCost" , TypeInt , 3 , { 'min':0 } )
, ("katana.strapRipupLimit" , TypeInt , 16 , { 'min':1 } )
, ("katana.localRipupLimit" , TypeInt , 9 , { 'min':1 } )
, ("katana.globalRipupLimit" , TypeInt , 5 , { 'min':1 } )
, ("katana.longGlobalRipupLimit" , TypeInt , 5 , { 'min':1 } )
, ('chip.padCoreSide' , TypeString , 'South' )
)
# Format of routingGaugesTable (dictionary):
# A list of entry of the form:
# ( METAL_NAME, (Direction, Type, depth, density, offset, pitch, wire_width, via_width, obs_dw) )
routingGaugesTable = {}
routingGaugesTable['msxlib'] = \
( ( 'METAL1' , ( Gauge.Vertical , Gauge.PinOnly, 0, 0.0, l(0), l(10), l(3), l(2), l(7) ) )
, ( 'METAL2' , ( Gauge.Horizontal, Gauge.Default, 1, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
, ( 'METAL3' , ( Gauge.Vertical , Gauge.Default, 2, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
, ( 'METAL4' , ( Gauge.Horizontal, Gauge.Default, 3, 0.0, l(0), l(20), l(6), l(4), l(8) ) )
, ( 'METAL5' , ( Gauge.Vertical , Gauge.Default, 4, 0.0, l(0), l(20), l(6), l(4), l(8) ) )
, ( 'METAL6' , ( Gauge.Horizontal, Gauge.Default, 5, 0.0, l(0), l(20), l(6), l(4), l(8) ) )
)
routingGaugesTable['msxlib4'] = \
( ( 'METAL1' , ( Gauge.Vertical , Gauge.PinOnly, 0, 0.0, l(0), l(10), l(3), l(2), l(7) ) )
, ( 'METAL2' , ( Gauge.Horizontal, Gauge.Default, 1, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
, ( 'METAL3' , ( Gauge.Vertical , Gauge.Default, 2, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
, ( 'METAL4' , ( Gauge.Horizontal, Gauge.Default, 3, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
)
routingGaugesTable['msxlib3'] = \
( ( 'METAL1' , ( Gauge.Vertical , Gauge.PinOnly, 0, 0.0, l(0), l(10), l(3), l(2), l(7) ) )
, ( 'METAL2' , ( Gauge.Horizontal, Gauge.Default, 1, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
, ( 'METAL3' , ( Gauge.Vertical , Gauge.Default, 2, 0.0, l(0), l(10), l(3), l(2), l(8) ) )
)
routingGaugesTable['msxlib-2M'] = \
( ( 'METAL1', ( Gauge.Horizontal, Gauge.Default, 0, 0.0, l(0), l(10), l(3), l(3), l(7) ) )
, ( 'METAL2', ( Gauge.Vertical , Gauge.Default, 1, 0.0, l(0), l(10), l(3), l(3), l(8) ) )
)
# Format of cellGaugesTable (dictionary):
# A list of entry of the form:
# ( METAL_PIN, xy_common_pitch, slice_height, slice_step )
cellGaugesTable = {}
cellGaugesTable['msxlib' ] = ('metal2', l(10), l(100), l(10))
cellGaugesTable['msxlib4'] = ('metal2', l(10), l(100), l(10))
cellGaugesTable['msxlib3'] = ('metal2', l(10), l(100), l(10))
cellGaugesTable['phlib80'] = ('metal2', l( 1), l(312), l(246))