Go to the source code of this file.
|
ABC_NAMESPACE_IMPL_START void | Hop_ManDfs_rec (Hop_Obj_t *pObj, Vec_Ptr_t *vNodes) |
| DECLARATIONS ///. More...
|
|
Vec_Ptr_t * | Hop_ManDfs (Hop_Man_t *p) |
|
Vec_Ptr_t * | Hop_ManDfsNode (Hop_Man_t *p, Hop_Obj_t *pNode) |
|
int | Hop_ManCountLevels (Hop_Man_t *p) |
|
void | Hop_ManCreateRefs (Hop_Man_t *p) |
|
void | Hop_ConeMark_rec (Hop_Obj_t *pObj) |
|
void | Hop_ConeCleanAndMark_rec (Hop_Obj_t *pObj) |
|
int | Hop_ConeCountAndMark_rec (Hop_Obj_t *pObj) |
|
void | Hop_ConeUnmark_rec (Hop_Obj_t *pObj) |
|
int | Hop_DagSize (Hop_Obj_t *pObj) |
|
int | Hop_ObjFanoutCount_rec (Hop_Obj_t *pObj, Hop_Obj_t *pPivot) |
|
int | Hop_ObjFanoutCount (Hop_Obj_t *pObj, Hop_Obj_t *pPivot) |
|
void | Hop_Transfer_rec (Hop_Man_t *pDest, Hop_Obj_t *pObj) |
|
Hop_Obj_t * | Hop_Transfer (Hop_Man_t *pSour, Hop_Man_t *pDest, Hop_Obj_t *pRoot, int nVars) |
|
void | Hop_Compose_rec (Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pFunc, Hop_Obj_t *pVar) |
|
Hop_Obj_t * | Hop_Compose (Hop_Man_t *p, Hop_Obj_t *pRoot, Hop_Obj_t *pFunc, int iVar) |
|
void | Hop_Complement_rec (Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pVar) |
|
Hop_Obj_t * | Hop_Complement (Hop_Man_t *p, Hop_Obj_t *pRoot, int iVar) |
|
void | Hop_Remap_rec (Hop_Man_t *p, Hop_Obj_t *pObj) |
|
Hop_Obj_t * | Hop_Remap (Hop_Man_t *p, Hop_Obj_t *pRoot, unsigned uSupp, int nVars) |
|
Hop_Obj_t * | Hop_Permute (Hop_Man_t *p, Hop_Obj_t *pRoot, int nRootVars, int *pPermute) |
|
Function*************************************************************
Synopsis [Complements the AIG (pRoot) with the function (pFunc) using PI var (iVar).]
Description []
SideEffects []
SeeAlso []
Definition at line 469 of file hopDfs.c.
474 printf(
"Hop_Complement(): The PI variable %d is not defined.\n", iVar );
void Hop_Complement_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pVar)
static Hop_Obj_t * Hop_ManPi(Hop_Man_t *p, int i)
static int Hop_IsComplement(Hop_Obj_t *p)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
static int Hop_ManPiNum(Hop_Man_t *p)
Function*************************************************************
Synopsis [Complements the AIG (pRoot) with the function (pFunc) using PI var (iVar).]
Description []
SideEffects []
SeeAlso []
Definition at line 441 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
static int Hop_ObjIsPi(Hop_Obj_t *pObj)
void Hop_Complement_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pVar)
static Hop_Obj_t * Hop_Not(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild1Copy(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild0Copy(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Composes the AIG (pRoot) with the function (pFunc) using PI var (iVar).]
Description []
SideEffects []
SeeAlso []
Definition at line 415 of file hopDfs.c.
420 printf(
"Hop_Compose(): The PI variable %d is not defined.\n", iVar );
static Hop_Obj_t * Hop_ManPi(Hop_Man_t *p, int i)
static int Hop_IsComplement(Hop_Obj_t *p)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
void Hop_Compose_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pFunc, Hop_Obj_t *pVar)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
static int Hop_ManPiNum(Hop_Man_t *p)
Function*************************************************************
Synopsis [Composes the AIG (pRoot) with the function (pFunc) using PI var (iVar).]
Description []
SideEffects []
SeeAlso []
Definition at line 387 of file hopDfs.c.
394 pObj->
pData = pObj == pVar ? pFunc : pObj;
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
static int Hop_ObjIsPi(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjChild1Copy(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild0Copy(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
void Hop_Compose_rec(Hop_Man_t *p, Hop_Obj_t *pObj, Hop_Obj_t *pFunc, Hop_Obj_t *pVar)
void Hop_ConeCleanAndMark_rec |
( |
Hop_Obj_t * |
pObj | ) |
|
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 210 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
void Hop_ConeCleanAndMark_rec(Hop_Obj_t *pObj)
int Hop_ConeCountAndMark_rec |
( |
Hop_Obj_t * |
pObj | ) |
|
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 233 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
int Hop_ConeCountAndMark_rec(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 188 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
void Hop_ConeMark_rec(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 257 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static void Hop_ObjClearMarkA(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Counts the number of AIG nodes rooted at this cone.]
Description []
SideEffects []
SeeAlso []
Definition at line 279 of file hopDfs.c.
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
int Hop_ConeCountAndMark_rec(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Computes the max number of levels in the manager.]
Description []
SideEffects []
SeeAlso []
Definition at line 116 of file hopDfs.c.
120 int i, LevelsMax, Level0, Level1;
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static Hop_Obj_t * Hop_ManConst1(Hop_Man_t *p)
Vec_Ptr_t * Hop_ManDfs(Hop_Man_t *p)
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
#define Hop_ManForEachPo(p, pObj, i)
static int Abc_MaxInt(int a, int b)
static int Hop_ObjIsExor(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Vec_PtrFree(Vec_Ptr_t *p)
Function*************************************************************
Synopsis [Creates correct reference counters at each node.]
Description []
SideEffects []
SeeAlso []
Definition at line 152 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ManConst1(Hop_Man_t *p)
#define Hop_ManForEachNode(p, pObj, i)
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
#define Hop_ManForEachPo(p, pObj, i)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
static void Hop_ObjClearRef(Hop_Obj_t *pObj)
static void Hop_ObjRef(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Collects internal nodes in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 68 of file hopDfs.c.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Hop_ManForEachNode(p, pObj, i)
ABC_NAMESPACE_IMPL_START void Hop_ManDfs_rec(Hop_Obj_t *pObj, Vec_Ptr_t *vNodes)
DECLARATIONS ///.
static void Hop_ObjClearMarkA(Hop_Obj_t *pObj)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Hop_ManNodeNum(Hop_Man_t *p)
DECLARATIONS ///.
CFile****************************************************************
FileName [hopDfs.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [Minimalistic And-Inverter Graph package.]
Synopsis [DFS traversal procedures.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - May 11, 2006.]
Revision [
- Id:
- hopDfs.c,v 1.00 2006/05/11 00:00:00 alanmi Exp
]FUNCTION DEFINITIONS /// Function*************************************************************
Synopsis [Collects internal nodes in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 45 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
ABC_NAMESPACE_IMPL_START void Hop_ManDfs_rec(Hop_Obj_t *pObj, Vec_Ptr_t *vNodes)
DECLARATIONS ///.
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Collects internal nodes in the DFS order.]
Description []
SideEffects []
SeeAlso []
Definition at line 92 of file hopDfs.c.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
ABC_NAMESPACE_IMPL_START void Hop_ManDfs_rec(Hop_Obj_t *pObj, Vec_Ptr_t *vNodes)
DECLARATIONS ///.
static int Hop_IsComplement(Hop_Obj_t *p)
static void Hop_ObjClearMarkA(Hop_Obj_t *pObj)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
Definition at line 310 of file hopDfs.c.
int Hop_ObjFanoutCount_rec(Hop_Obj_t *pObj, Hop_Obj_t *pPivot)
static int Hop_IsComplement(Hop_Obj_t *p)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
Function*************************************************************
Synopsis [Counts how many fanout the given node has.]
Description []
SideEffects []
SeeAlso []
Definition at line 298 of file hopDfs.c.
303 return (
int)(pObj == pPivot);
int Hop_ObjFanoutCount_rec(Hop_Obj_t *pObj, Hop_Obj_t *pPivot)
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Permute the AIG according to the given permutation.]
Description []
SideEffects []
SeeAlso []
Definition at line 563 of file hopDfs.c.
573 if ( i == nRootVars )
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
void Hop_Remap_rec(Hop_Man_t *p, Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
Hop_Obj_t * Hop_IthVar(Hop_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
static int Hop_ManPiNum(Hop_Man_t *p)
Function*************************************************************
Synopsis [Remaps the AIG (pRoot) to have the given support (uSupp).]
Description []
SideEffects []
SeeAlso []
Definition at line 518 of file hopDfs.c.
525 printf(
"Hop_Remap(): The number of variables (%d) is more than the manager size (%d).\n", nVars,
Hop_ManPiNum(
p) );
539 if ( uSupp & (1 << i) )
544 assert( k > 0 && k < nVars );
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
void Hop_Remap_rec(Hop_Man_t *p, Hop_Obj_t *pObj)
static int Hop_ObjPhaseCompl(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
static Hop_Obj_t * Hop_ManConst0(Hop_Man_t *p)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
Hop_Obj_t * Hop_IthVar(Hop_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
static int Hop_ManPiNum(Hop_Man_t *p)
Function*************************************************************
Synopsis [Remaps the AIG (pRoot) to have the given support (uSupp).]
Description []
SideEffects []
SeeAlso []
Definition at line 495 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
void Hop_Remap_rec(Hop_Man_t *p, Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjChild1Copy(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild0Copy(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)
Function*************************************************************
Synopsis [Transfers the AIG from one manager into another.]
Description []
SideEffects []
SeeAlso []
Definition at line 353 of file hopDfs.c.
358 if ( pSour == pDest )
static Hop_Obj_t * Hop_ManConst1(Hop_Man_t *p)
#define Hop_ManForEachPi(p, pObj, i)
ITERATORS ///.
void Hop_Transfer_rec(Hop_Man_t *pDest, Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static int Hop_ObjIsConst1(Hop_Obj_t *pObj)
void Hop_ConeUnmark_rec(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_NotCond(Hop_Obj_t *p, int c)
static Hop_Obj_t * Hop_Regular(Hop_Obj_t *p)
Hop_Obj_t * Hop_IthVar(Hop_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
Function*************************************************************
Synopsis [Transfers the AIG from one manager into another.]
Description []
SideEffects []
SeeAlso []
Definition at line 330 of file hopDfs.c.
static Hop_Obj_t * Hop_ObjFanin1(Hop_Obj_t *pObj)
static int Hop_ObjIsMarkA(Hop_Obj_t *pObj)
static void Hop_ObjSetMarkA(Hop_Obj_t *pObj)
Hop_Obj_t * Hop_And(Hop_Man_t *p, Hop_Obj_t *p0, Hop_Obj_t *p1)
static int Hop_ObjIsNode(Hop_Obj_t *pObj)
void Hop_Transfer_rec(Hop_Man_t *pDest, Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjChild1Copy(Hop_Obj_t *pObj)
static int Hop_IsComplement(Hop_Obj_t *p)
static Hop_Obj_t * Hop_ObjChild0Copy(Hop_Obj_t *pObj)
static Hop_Obj_t * Hop_ObjFanin0(Hop_Obj_t *pObj)