Allow the Y position of the H-Tree horizontal branch to be set.
* Change: In cumulus.block.configuration and cumulus.block.htree, two new configuration parameters allow to specify the offset of the horizontal branch of the H-Tree manually: cfg.spares.htreeRootOffset (first level of the tree) cfg.spares.htreeOffset (subsequent levels) The offset is given in number of tracks.
This commit is contained in:
parent
d819d46031
commit
a14a96f9ed
|
@ -25,7 +25,7 @@ from ...CRL import AllianceFramework, RoutingLayerGauge, Catalog,
|
|||
Gds, Spice
|
||||
from ...helpers import trace, l, u, n
|
||||
from ...helpers.io import ErrorMessage, WarningMessage, catch
|
||||
from ...helpers.overlay import CfgCache, UpdateSession
|
||||
from ...helpers.overlay import CfgCache, CfgDefault, UpdateSession
|
||||
from .. import getParameter
|
||||
from ..rsave import rsave
|
||||
from ..utils import getPlugByName
|
||||
|
@ -80,7 +80,7 @@ class GaugeConf ( object ):
|
|||
self._plugToRp = { }
|
||||
self._rpToAccess = { }
|
||||
self._loadRoutingGauge()
|
||||
self._routingBb = Box()
|
||||
self._routingBb = Box()
|
||||
return
|
||||
|
||||
@property
|
||||
|
@ -1403,6 +1403,8 @@ class BlockConf ( GaugeConf ):
|
|||
self.cfg.block.spareSide = None
|
||||
self.cfg.block.vRailsPeriod = None
|
||||
self.cfg.katana.dumpMeasures = None
|
||||
self.cfg.spares.htreeRootOffset = CfgDefault(3)
|
||||
self.cfg.spares.htreeOffset = CfgDefault(5)
|
||||
self.chipConf = ChipConf( self )
|
||||
self.etesian = None
|
||||
self.katana = None
|
||||
|
|
|
@ -45,7 +45,7 @@ def unbitify ( rawName ):
|
|||
|
||||
class HTree ( object ):
|
||||
"""
|
||||
Build a H-Tree on a net occurrene.
|
||||
Build a H-Tree on a net occurrence.
|
||||
"""
|
||||
|
||||
def __init__ ( self, spares, treeNetOcc, index, flags ):
|
||||
|
@ -159,12 +159,12 @@ class HTree ( object ):
|
|||
or (qt.br and len(qt.br.buffers) > 1) \
|
||||
or (qt.tr and len(qt.tr.buffers) > 1):
|
||||
leafFlags |= GaugeConf.HAccess
|
||||
yoffset = 3
|
||||
yoffset = gaugeConf.cfg.spares.htreeRootOffset
|
||||
if not qt.isRoot():
|
||||
ckParentNet = qt.bInputPlug(0).getNet()
|
||||
driverContact = gaugeConf.rpAccessByPlugName( qt.buffers[0], bufferConf.input, ckParentNet )
|
||||
driverY = driverContact.getY()
|
||||
yoffset = 5
|
||||
yoffset = gaugeConf.cfg.spares.htreeOffset
|
||||
trace( 550, '\tdriverContact={}\n'.format( driverContact ))
|
||||
if qt.bl:
|
||||
trace( 550, '+,', '\tblContact\n' )
|
||||
|
|
Loading…
Reference in New Issue