2014-05-21 17:13:17 -05:00
|
|
|
# -*- Mode:Python; explicit-buffer-name: "alliance.conf<cmos>" -*-
|
2012-11-16 06:49:47 -06:00
|
|
|
|
2014-08-03 09:25:26 -05:00
|
|
|
from helpers.Alliance import AddMode
|
|
|
|
from helpers.Alliance import Gauge
|
|
|
|
|
2012-11-16 06:49:47 -06:00
|
|
|
|
2014-07-27 09:23:27 -05:00
|
|
|
allianceTop = '/soc/alliance'
|
|
|
|
cellsTop = allianceTop+'/cells/'
|
2012-11-16 06:49:47 -06:00
|
|
|
|
|
|
|
|
|
|
|
allianceConfig = \
|
Added support for multiple symbolic+real technology in configuration.
In CRL Core, the layout of the files under "/coriolis2/etc" changes.
Instead of having them directly under "etc", they are now replicated,
in subdirectories. Each subdirectory having the name of the associated
symbolic or real technology (they are kept separated). We have, for
now:
* etc/cmos/ : symbolic, the Alliance original one.
* etc/vsc200/ : symbolic, for G. Petley vsclib.
* etc/hcmos9/ : real, generic fake (130nm).
To tell which pair (symbolic,real) technologies must be used we create
a *second* (sigh) configuration file "coriolis2_techno.conf", and it's
hidden counterpart in the user's account, to set it up. It needs to be
separate because it is read as early as possible and select which set
of configuration files would be read.
Also add support up to METAL8 and POLY2 in CRL core and it's Alliance
parser/drivers.
2014-05-21 07:50:22 -05:00
|
|
|
( ( 'SYMB_TECHNO_NAME' , helpers.symbolicTechno )
|
|
|
|
, ( 'REAL_TECHNO_NAME' , helpers.realTechno )
|
|
|
|
, ( 'SYMBOLIC_TECHNOLOGY', helpers.symbolicDir+'/technology.conf' )
|
|
|
|
, ( 'REAL_TECHNOLOGY' , helpers.realDir +'/technology.conf' )
|
|
|
|
, ( 'DISPLAY' , helpers.sysConfDir +'/display.xml' )
|
2012-11-16 06:49:47 -06:00
|
|
|
, ( 'CATALOG' , 'CATAL')
|
|
|
|
, ( 'WORKING_LIBRARY' , '.')
|
2014-08-03 09:25:26 -05:00
|
|
|
, ( 'SYSTEM_LIBRARY' , ( (cellsTop+'sxlib' , AddMode.Append)
|
|
|
|
, (cellsTop+'dp_sxlib', AddMode.Append)
|
|
|
|
, (cellsTop+'ramlib' , AddMode.Append)
|
|
|
|
, (cellsTop+'romlib' , AddMode.Append)
|
|
|
|
, (cellsTop+'rflib' , AddMode.Append)
|
|
|
|
, (cellsTop+'rf2lib' , AddMode.Append)
|
|
|
|
, (cellsTop+'pxlib' , AddMode.Append)
|
|
|
|
, (cellsTop+'padlib' , AddMode.Append) ) )
|
2012-11-16 06:49:47 -06:00
|
|
|
, ( 'SCALE_X' , 100)
|
|
|
|
, ( 'IN_LO' , 'vst')
|
|
|
|
, ( 'IN_PH' , 'ap')
|
|
|
|
, ( 'OUT_LO' , 'vst')
|
|
|
|
, ( 'OUT_PH' , 'ap')
|
|
|
|
, ( 'POWER' , 'vdd')
|
|
|
|
, ( 'GROUND' , 'vss')
|
|
|
|
, ( 'CLOCK' , '^ck.*')
|
2013-12-03 19:47:34 -06:00
|
|
|
, ( 'BLOCKAGE' , '^blockage[Nn]et*')
|
2014-07-27 09:23:27 -05:00
|
|
|
# The following are only read by the Alliance tool wrappers.
|
2014-08-03 09:25:26 -05:00
|
|
|
, ( 'ALLIANCE_TOP' , allianceTop)
|
2014-07-27 09:23:27 -05:00
|
|
|
, ( 'MBK_TARGET_LIB' , cellsTop+'sxlib')
|
2014-08-03 09:25:26 -05:00
|
|
|
, ( 'RDS_TECHNO_NAME' , allianceTop+'/etc/cmos.rds')
|
|
|
|
, ( 'GRAAL_TECHNO_NAME' , allianceTop+'/etc/graal.rds')
|
2012-11-16 06:49:47 -06:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Format of routingGaugesTable (dictionary):
|
|
|
|
# A list of entry of the form:
|
|
|
|
# ( METAL_NAME, (Direction, Type, depth, density, offset, pitch, wire_width, via_width) )
|
|
|
|
|
|
|
|
routingGaugesTable = {}
|
|
|
|
|
|
|
|
routingGaugesTable['sxlib'] = \
|
2014-08-03 09:25:26 -05:00
|
|
|
( ( 'METAL1', ( Gauge.Vertical , Gauge.PinOnly, 0, 0.0, 0, 5, 2, 2 ) )
|
|
|
|
, ( 'METAL2', ( Gauge.Horizontal, Gauge.Default, 1, 7.0, 0, 5, 2, 2 ) )
|
|
|
|
, ( 'METAL3', ( Gauge.Vertical , Gauge.Default, 2, 0.0, 0, 5, 2, 2 ) )
|
|
|
|
, ( 'METAL4', ( Gauge.Horizontal, Gauge.Default, 3, 0.0, 0, 5, 2, 2 ) )
|
|
|
|
, ( 'METAL5', ( Gauge.Vertical , Gauge.Default, 4, 0.0, 0, 5, 2, 2 ) )
|
|
|
|
#, ( 'METAL6', ( Gauge.Horizontal, Gauge.Default, 5, 0.0, 0, 5, 2, 2 ) )
|
|
|
|
#, ( 'METAL7', ( Gauge.Vertical , Gauge.Default, 6, 0.0, 0, 5, 2, 2 ) )
|
2012-11-16 06:49:47 -06:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
# Format of cellGaugesTable (dictionary):
|
|
|
|
# A list of entry of the form:
|
|
|
|
# ( METAL_PIN, xy_common_pitch, slice_height, slice_step )
|
|
|
|
|
|
|
|
cellGaugesTable = {}
|
|
|
|
cellGaugesTable['sxlib'] = ('metal2', 5.0, 50.0, 5.0)
|
|
|
|
|