77 lines
4.0 KiB
Python
77 lines
4.0 KiB
Python
# -*- Mode:Python; explicit-buffer-name: "kite.conf<ispd05>" -*-
|
|
|
|
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 , 'METAL5')
|
|
# Kite parameters.
|
|
, ("kite.hTracksReservedLocal" ,TypeInt ,3 , { 'min':0, 'max':20 } )
|
|
, ("kite.vTracksReservedLocal" ,TypeInt ,3 , { 'min':0, 'max':20 } )
|
|
, ("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 & Katana parameters are temporarily hosted here.
|
|
, ('anabatic.routingGauge' ,TypeString , 'sxlib' )
|
|
, ("anabatic.globalLengthThreshold" ,TypeInt ,1450 )
|
|
, ("anabatic.saturateRatio" ,TypePercentage,80 )
|
|
, ("anabatic.saturateRp" ,TypeInt ,8 )
|
|
, ('anabatic.topRoutingLayer' ,TypeString , 'METAL5')
|
|
, ("anabatic.edgeLength" ,TypeInt ,24 )
|
|
, ("anabatic.edgeWidth" ,TypeInt ,4 )
|
|
, ("anabatic.edgeCostH" ,TypeDouble ,19.0 )
|
|
, ("anabatic.edgeCostK" ,TypeDouble ,-60.0 )
|
|
, ("anabatic.edgeHScaling" ,TypeDouble ,1.0 )
|
|
, ("anabatic.globalIterations" ,TypeInt ,10 , { 'min':1, 'max':100 } )
|
|
, ("anabatic.gcell.displayMode" ,TypeEnumerate ,1
|
|
, { 'values':( ("Boundary" , 1)
|
|
, ("Density" , 2) ) }
|
|
)
|
|
, ("katana.hTracksReservedLocal" ,TypeInt ,3 , { 'min':0, 'max':20 } )
|
|
, ("katana.vTracksReservedLocal" ,TypeInt ,3 , { 'min':0, 'max':20 } )
|
|
, ("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['sxlib'] = \
|
|
( ( 'METAL1', ( Gauge.Vertical , Gauge.PinOnly, 0, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
, ( 'METAL2', ( Gauge.Horizontal, Gauge.Default, 1, 7.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
, ( 'METAL3', ( Gauge.Vertical , Gauge.Default, 2, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
, ( 'METAL4', ( Gauge.Horizontal, Gauge.Default, 3, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
, ( 'METAL5', ( Gauge.Vertical , Gauge.Default, 4, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
#, ( 'METAL6', ( Gauge.Horizontal, Gauge.Default, 5, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
#, ( 'METAL7', ( Gauge.Vertical , Gauge.Default, 6, 0.0, l(0), l(5), l(2), l(1), l(4) ) )
|
|
)
|
|
|
|
|
|
# Format of cellGaugesTable (dictionary):
|
|
# A list of entry of the form:
|
|
# ( METAL_PIN, xy_common_pitch, slice_height, slice_step )
|
|
|
|
cellGaugesTable = {}
|
|
cellGaugesTable['ispd05'] = ('metal2', l(5.0), l(60.0), l(5.0))
|
|
|