216 p->nObjs[pObj->
Type]--;
266 p->nObjs[pObj->
Type]--;
318 int fShowFanouts = 0;
322 printf(
"Object is NULL." );
331 printf(
"Node %4d : ",
Aig_ObjId(pObj) );
333 printf(
"constant 1" );
341 printf(
"AND( %4d%s, %4d%s )",
345 if ( fShowFanouts && p->pFanData )
350 printf(
"\nFanouts:\n" );
354 printf(
"Node %4d : ",
Aig_ObjId(pFanout) );
360 printf(
"AND( %4d%s, %4d%s )",
368 if ( p->pEquivs && p->pEquivs[pObj->
Id] )
371 printf(
" { %4d ", pObj->
Id );
372 for ( pTemp = p->pEquivs[pObj->
Id]; pTemp; pTemp = p->pEquivs[pTemp->
Id] )
373 printf(
" %4d%s", pTemp->
Id, (pTemp->
fPhase != pObj->
fPhase)?
"\'" :
" " );
378 if ( p->pReprs && p->pReprs[pObj->
Id] )
379 printf(
" class of %d", pObj->
Id );
395 Aig_Obj_t * pFanReal0, * pFanReal1, * pResult;
437 for ( nSteps = 0;
Vec_PtrSize(p->vBufs) > 0; nSteps++ )
444 if ( nSteps > 1000000 )
446 printf(
"Error: A cycle is encountered while propagating buffers.\n" );
477 assert( pObjOld != pObjNewR );
483 printf(
"Aig_ObjReplace(): Internal error!\n" );
491 p->nObjs[pObjOld->
Type]--;
502 int LevelOld = pObjOld->
Level;
511 pObjOld->
Level = LevelOld;
520 p->nObjs[pObjOld->
Type]++;
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
static int Aig_ObjLevelNew(Aig_Obj_t *pObj)
void Aig_ObjDelete_rec(Aig_Man_t *p, Aig_Obj_t *pObj, int fFreeTop)
static Aig_Type_t Aig_ObjType(Aig_Obj_t *pObj)
static int Aig_ObjFaninId0(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ManFetchMemory(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
static void Aig_ObjDeref(Aig_Obj_t *pObj)
void Aig_ObjPatchFanin0(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFaninNew)
Aig_Obj_t * Aig_ObjReal_rec(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Aig_IsComplement(Aig_Obj_t *p)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
static void Aig_ObjRef(Aig_Obj_t *pObj)
int Aig_ManPropagateBuffers(Aig_Man_t *p, int fUpdateLevel)
static Aig_Obj_t * Aig_Not(Aig_Obj_t *p)
static int Aig_ObjFaninId1(Aig_Obj_t *pObj)
static int Abc_MaxInt(int a, int b)
void Aig_ManUpdateReverseLevel(Aig_Man_t *p, Aig_Obj_t *pObjNew)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
Aig_Obj_t * Aig_Oper(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1, Aig_Type_t Type)
void Aig_TableDelete(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjPrint(Aig_Man_t *p, Aig_Obj_t *pObj)
static void Vec_PtrRemove(Vec_Ptr_t *p, void *Entry)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static int Aig_ObjIsBuf(Aig_Obj_t *pObj)
void Aig_NodeFixBufferFanins(Aig_Man_t *p, Aig_Obj_t *pObj, int fUpdateLevel)
static int Aig_ObjIsTerm(Aig_Obj_t *pObj)
static int Abc_Float2Int(float Val)
static void Aig_ManRecycleMemory(Aig_Man_t *p, Aig_Obj_t *pEntry)
static void * Vec_PtrEntryLast(Vec_Ptr_t *p)
static int Aig_ObjIsNone(Aig_Obj_t *pObj)
static int Vec_IntEntry(Vec_Int_t *p, int i)
void Aig_ObjClearReverseLevel(Aig_Man_t *p, Aig_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
static Aig_Obj_t * Aig_ObjChild1(Aig_Obj_t *pObj)
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
static int Aig_ObjPhaseReal(Aig_Obj_t *pObj)
void Aig_ObjDelete(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjReplace(Aig_Man_t *p, Aig_Obj_t *pObjOld, Aig_Obj_t *pObjNew, int fUpdateLevel)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
void Aig_ObjRemoveFanout(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFanout)
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
#define ABC_NAMESPACE_IMPL_START
void Aig_ObjDeletePo(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
static Aig_Obj_t * Aig_ObjFanout0(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjDisconnect(Aig_Man_t *p, Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static float Abc_Int2Float(int Num)
void Aig_TableInsert(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Aig_ObjId(Aig_Obj_t *pObj)
static int Aig_ObjRefs(Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjCreate(Aig_Man_t *p, Aig_Obj_t *pGhost)
void Aig_ObjConnect(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFan0, Aig_Obj_t *pFan1)
void Aig_ObjAddFanout(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFanout)
void Aig_ManUpdateLevel(Aig_Man_t *p, Aig_Obj_t *pObjNew)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
static int Aig_ObjIsHash(Aig_Obj_t *pObj)