Various bug fixes in the cumulus trackAvoid system.
This commit is contained in:
parent
6b1f57d7f1
commit
01b0489f58
|
@ -1397,14 +1397,15 @@ class BlockConf ( GaugeConf ):
|
|||
self.ioPinsCounts = {}
|
||||
self.ioPinsArg = ioPins
|
||||
self.ioPadsArg = ioPads
|
||||
self.cfg.etesian.aspectRatio = None
|
||||
self.cfg.etesian.spaceMargin = None
|
||||
self.cfg.etesian.latchUpDistance = None
|
||||
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.cfg.etesian.aspectRatio = None
|
||||
self.cfg.etesian.spaceMargin = None
|
||||
self.cfg.etesian.latchUpDistance = None
|
||||
self.cfg.block.spareSide = None
|
||||
self.cfg.block.vRailsPeriod = None
|
||||
self.cfg.katana.dumpMeasures = None
|
||||
self.cfg.spares.useFeedTrackAvoid = CfgDefault(False)
|
||||
self.cfg.spares.htreeRootOffset = CfgDefault(3)
|
||||
self.cfg.spares.htreeOffset = CfgDefault(5)
|
||||
self.chipConf = ChipConf( self )
|
||||
self.etesian = None
|
||||
self.katana = None
|
||||
|
|
|
@ -107,10 +107,10 @@ class HTree ( object ):
|
|||
gaugeConf.setStackPosition( contact, x, y )
|
||||
gaugeConf.createVertical ( contact, forkContact, x, 0 )
|
||||
trackAvoidBox = Box( x, forkContact.getY(), x, y )
|
||||
if forkContact.getY() > contact.getY():
|
||||
trackAvoidBox.inflate( 0, 0, 0, self.spares.conf.sliceHeight )
|
||||
trackAvoidBox.inflate( 0, 0, 0, self.spares.conf.sliceHeight )
|
||||
gaugeConf.addTrackAvoid( trackAvoidBox )
|
||||
self.spares.trackAvoid( trackAvoidBox )
|
||||
if gaugeConf.cfg.spares.useFeedTrackAvoid and forkContact.getY() > contact.getY():
|
||||
self.spares.trackAvoid( trackAvoidBox )
|
||||
if len(leaf.buffers) > 1:
|
||||
tl1Contact = gaugeConf.rpAccessByPlugName( leaf.buffers[1], bufferConf.input, ckNet, GaugeConf.DeepDepth|GaugeConf.HAccess )
|
||||
tl2Contact = gaugeConf.rpAccessByPlugName( leaf.buffers[2], bufferConf.input, ckNet )
|
||||
|
|
|
@ -1141,6 +1141,10 @@ class Spares ( object ):
|
|||
nodes.
|
||||
"""
|
||||
trace( 540, ',+', '\tSpares.trackAvoid() {}\n'.format( box ))
|
||||
if self.conf.isCoreBlock:
|
||||
coreCell = self.conf.corona
|
||||
else:
|
||||
coreCell = self.conf.core
|
||||
yoffset = 0
|
||||
if self.conf.isCoreBlock:
|
||||
yoffset = self.conf.icore.getTransformation().getTy()
|
||||
|
@ -1159,7 +1163,7 @@ class Spares ( object ):
|
|||
orientation = Transformation.Orientation.MY
|
||||
y += sliceHeight
|
||||
transf = Transformation( x, y, orientation )
|
||||
instance = self.conf.feedsConf.createFeed( self.conf.corona )
|
||||
instance = self.conf.feedsConf.createFeed( coreCell )
|
||||
instance.setTransformation( transf )
|
||||
instance.setPlacementStatus( Instance.PlacementStatus.FIXED )
|
||||
trace( 540, '\ttrackAvoid, feed: {} @{}\n'.format(instance,transf) )
|
||||
|
|
Loading…
Reference in New Issue