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:
parent
276fabf7ff
commit
eed9cc6f91
|
@ -124,6 +124,7 @@ class GaugeConf ( object ):
|
||||||
self._routingGauge = None
|
self._routingGauge = None
|
||||||
self._topLayerDepth = 0
|
self._topLayerDepth = 0
|
||||||
self._plugToRp = { }
|
self._plugToRp = { }
|
||||||
|
self._rpToAccess = { }
|
||||||
|
|
||||||
self._loadRoutingGauge()
|
self._loadRoutingGauge()
|
||||||
return
|
return
|
||||||
|
@ -206,6 +207,10 @@ class GaugeConf ( object ):
|
||||||
def _rpAccess ( self, rp, flags ):
|
def _rpAccess ( self, rp, flags ):
|
||||||
trace( 550, ',+', '\t_rpAccess() %s\n' % str(rp) )
|
trace( 550, ',+', '\t_rpAccess() %s\n' % str(rp) )
|
||||||
|
|
||||||
|
if self._rpToAccess.has_key(rp):
|
||||||
|
trace( 550, '-' )
|
||||||
|
return self._rpToAccess[rp]
|
||||||
|
|
||||||
if flags & GaugeConf.DeepDepth:
|
if flags & GaugeConf.DeepDepth:
|
||||||
hdepth = self._horizontalDeepDepth
|
hdepth = self._horizontalDeepDepth
|
||||||
vdepth = self._verticalDeepDepth
|
vdepth = self._verticalDeepDepth
|
||||||
|
@ -259,6 +264,8 @@ class GaugeConf ( object ):
|
||||||
)
|
)
|
||||||
trace( 550, segment )
|
trace( 550, segment )
|
||||||
contact1 = contact2
|
contact1 = contact2
|
||||||
|
|
||||||
|
self._rpToAccess[rp] = contact1
|
||||||
|
|
||||||
trace( 550, '-' )
|
trace( 550, '-' )
|
||||||
return contact1
|
return contact1
|
||||||
|
|
Loading…
Reference in New Issue