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