The previous fix for low metal tech, must apply only for them in htree.
This commit is contained in:
parent
38cc00005d
commit
f7b2a4f5bb
|
@ -492,6 +492,7 @@ extern "C" {
|
|||
accessorVectorFromVoid(getLayerGauges,PyRoutingGauge,RoutingGauge,RoutingLayerGauge)
|
||||
DirectGetBoolAttribute(PyRoutingGauge_isSymbolic ,isSymbolic ,PyRoutingGauge,RoutingGauge)
|
||||
DirectGetBoolAttribute(PyRoutingGauge_isSuperPitched,isSuperPitched,PyRoutingGauge,RoutingGauge)
|
||||
DirectGetBoolAttribute(PyRoutingGauge_isTwoMetals ,isTwoMetals ,PyRoutingGauge,RoutingGauge)
|
||||
DirectSetBoolAttribute(PyRoutingGauge_setSymbolic ,setSymbolic ,PyRoutingGauge,RoutingGauge)
|
||||
DirectGetBoolAttribute(PyRoutingGauge_isHV ,isHV ,PyRoutingGauge,RoutingGauge)
|
||||
DirectGetBoolAttribute(PyRoutingGauge_isVH ,isVH ,PyRoutingGauge,RoutingGauge)
|
||||
|
@ -508,6 +509,8 @@ extern "C" {
|
|||
, "The RoutingGauge is for symbolic technology." }
|
||||
, { "isSuperPitched" , (PyCFunction)PyRoutingGauge_isSuperPitched , METH_NOARGS
|
||||
, "The RoutingGauge is super-pitched." }
|
||||
, { "isTwoMetals" , (PyCFunction)PyRoutingGauge_isTwoMetals , METH_NOARGS
|
||||
, "The RoutingGauge has only two routing metal layers." }
|
||||
, { "isHV" , (PyCFunction)PyRoutingGauge_isHV , METH_NOARGS
|
||||
, "The first routing layer (metal2) is horizontal." }
|
||||
, { "isVH" , (PyCFunction)PyRoutingGauge_isVH , METH_NOARGS
|
||||
|
|
|
@ -119,6 +119,8 @@ class GaugeConf ( object ):
|
|||
@property
|
||||
def routingBb ( self ): return self._routingBb
|
||||
|
||||
def isTwoMetals ( self ): return self._routingGauge.isTwoMetals()
|
||||
|
||||
def getRoutingLayer ( self, depth ):
|
||||
return self._routingGauge.getRoutingLayer( depth )
|
||||
|
||||
|
|
|
@ -151,11 +151,12 @@ class HTree ( object ):
|
|||
leftContact = None
|
||||
rigthContact = None
|
||||
driverY = None
|
||||
if (qt.bl and len(qt.bl.buffers) > 1) \
|
||||
or (qt.tl and len(qt.tl.buffers) > 1) \
|
||||
or (qt.br and len(qt.br.buffers) > 1) \
|
||||
or (qt.tr and len(qt.tr.buffers) > 1):
|
||||
leafFlags |= GaugeConf.HAccess
|
||||
if gaugeConf.isTwoMetals():
|
||||
if (qt.bl and len(qt.bl.buffers) > 1) \
|
||||
or (qt.tl and len(qt.tl.buffers) > 1) \
|
||||
or (qt.br and len(qt.br.buffers) > 1) \
|
||||
or (qt.tr and len(qt.tr.buffers) > 1):
|
||||
leafFlags |= GaugeConf.HAccess
|
||||
if not qt.isRoot():
|
||||
ckParentNet = qt.bInputPlug(0).getNet()
|
||||
driverContact = gaugeConf.rpAccessByPlugName( qt.buffers[0], bufferConf.input, ckParentNet )
|
||||
|
|
Loading…
Reference in New Issue