78 int i, k, iFanin, fCompl;
79 float TotalArea = 0.0;
82 vNodes = Vec_PtrAlloc( 10 );
85 if ( Amap_ObjIsPi(pObj) )
92 pObj->
iData = Vec_PtrSize( vNodes );
93 Vec_PtrPush( vNodes, pRes );
100 Vec_PtrPush( vNodes, pRes );
101 TotalArea +=
p->pLib->pGateInv->dArea;
105 if ( Amap_ObjIsNode(pObj) )
108 if ( Amap_ObjRefsTotal(pObj) == 0 )
117 assert( Amap_ObjRefsTotal(pFanin) );
118 if ( (
int)pFanin->
fPolar == fCompl )
124 pObj->
iData = Vec_PtrSize( vNodes );
125 Vec_PtrPush( vNodes, pRes );
126 TotalArea += pGate->
dArea;
133 Vec_PtrPush( vNodes, pRes );
134 TotalArea +=
p->pLib->pGateInv->dArea;
138 if ( Amap_ObjIsPo(pObj) )
141 pFanin = Amap_ObjFanin0(
p, pObj);
142 assert( Amap_ObjRefsTotal(pFanin) );
143 if ( Amap_ObjIsConst1(pFanin) )
145 if ( Amap_ObjFaninC0(pObj) )
148 TotalArea +=
p->pLib->pGate0->dArea;
153 TotalArea +=
p->pLib->pGate1->dArea;
156 iFanin = Vec_PtrSize( vNodes );
157 Vec_PtrPush( vNodes, pRes );
161 if ( (
int)pFanin->
fPolar == Amap_ObjFaninC0(pObj) )
162 iFanin = pFanin->
iData;
164 iFanin = pFanin->
iData + 1;
169 pRes->
pFans[0] = iFanin;
171 Vec_PtrPush( vNodes, pRes );
175 Vec_PtrPush( vNodes, pMem );