Do not generate stacked VIAs twice in ClockTree plugin.

* Bug: In Cumulus, in ClockTree plugin in GaugeConf._rpAccess() do not
    create the stack of access VIAs each time the function is called.
    Instead maintain a lookup table of the already generated ones.
      Was blocking the loading of pre-routed nets in Anabatic.
This commit is contained in:
Jean-Paul Chaput 2016-07-22 00:08:04 +02:00
parent 276fabf7ff
commit eed9cc6f91
1 changed files with 7 additions and 0 deletions

View File

@ -124,6 +124,7 @@ class GaugeConf ( object ):
self._routingGauge = None
self._topLayerDepth = 0
self._plugToRp = { }
self._rpToAccess = { }
self._loadRoutingGauge()
return
@ -206,6 +207,10 @@ class GaugeConf ( object ):
def _rpAccess ( self, rp, flags ):
trace( 550, ',+', '\t_rpAccess() %s\n' % str(rp) )
if self._rpToAccess.has_key(rp):
trace( 550, '-' )
return self._rpToAccess[rp]
if flags & GaugeConf.DeepDepth:
hdepth = self._horizontalDeepDepth
vdepth = self._verticalDeepDepth
@ -259,6 +264,8 @@ class GaugeConf ( object ):
)
trace( 550, segment )
contact1 = contact2
self._rpToAccess[rp] = contact1
trace( 550, '-' )
return contact1