193 int i, k, iFan, nLevels = 0;
198 pLevels[i] =
Abc_MaxInt( pLevels[i], pLevels[iFan] );
203 LevelMax = (int)((1.0 - 0.01 * nTimeWindow) * nLevels);
204 if ( nLevels < LevelMax )
205 printf(
"The maximum mapped level (%d) is less than the target level (%d).\n", nLevels, LevelMax );
215 LevelMax = (int)((1.0 - 0.01 * nTimeWindow) * nLevels);
216 if ( nLevels < LevelMax )
217 printf(
"The maximum AIG level (%d) is less than the target level (%d).\n", nLevels, LevelMax );
240 assert( !LevelMax != !nTimeWindow );
243 printf(
"Collected %d outputs to extract.\n",
Vec_IntSize(vOuts) );
269 assert( !LevelMax != !nTimeWindow );
272 printf(
"Collected %d outputs to extract.\n",
Vec_IntSize(vOuts) );
302 assert( !LevelMax != !nTimeWindow );
305 printf(
"Collected %d outputs to extract.\n",
Vec_IntSize(vOuts) );
static int Gia_ManAppendAnd(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
Gia_Man_t * Gia_ManInsertWin(Gia_Man_t *p, Vec_Int_t *vOuts, Gia_Man_t *pWin)
void Gia_ManStop(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
ABC_NAMESPACE_IMPL_START void Gia_ManHighlight_rec(Gia_Man_t *p, int iObj)
DECLARATIONS ///.
static int Gia_ManAppendCi(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
void Gia_ManPrepareWin(Gia_Man_t *p, Vec_Int_t *vOuts, Vec_Int_t **pvPis, Vec_Int_t **pvPos, Vec_Int_t **pvAnds, int fPoOnly)
Gia_Man_t * Gia_ManExtractWindow(Gia_Man_t *p, int LevelMax, int nTimeWindow, int fVerbose)
static int Abc_MaxInt(int a, int b)
#define Gia_ManForEachCoVec(vVec, p, pObj, i)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
Gia_Man_t * Gia_ManPerformDsdBalance(Gia_Man_t *p, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
#define Gia_ManForEachLut(p, i)
#define Gia_ManForEachCi(p, pObj, i)
Gia_Man_t * Gia_ManPerformSopBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nCutNum, int nRelaxRatio, int fVerbose)
static int Gia_ManAndNum(Gia_Man_t *p)
static int Gia_ObjLevel(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManPerformDsdBalanceWin(Gia_Man_t *p, int LevelMax, int nTimeWindow, int nLutSize, int nCutNum, int nRelaxRatio, int fVerbose)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
#define Gia_ManForEachAnd(p, pObj, i)
Gia_Man_t * Gia_ManExtractWin(Gia_Man_t *p, Vec_Int_t *vOuts, int fPoOnly)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
static int Gia_ObjIsTravIdCurrentId(Gia_Man_t *p, int Id)
#define Gia_ManForEachObjVec(vVec, p, pObj, i)
#define ABC_NAMESPACE_IMPL_START
static int Vec_IntSize(Vec_Int_t *p)
static int Gia_ManHasMapping(Gia_Man_t *p)
Vec_Int_t * Gia_ManFindLatest(Gia_Man_t *p, int LevelMax, int nTimeWindow)
Gia_Man_t * Gia_ManPerformSopBalance(Gia_Man_t *p, int nCutNum, int nRelaxRatio, int fVerbose)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
#define ABC_CALLOC(type, num)
static int Gia_ObjFaninId0p(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
int Gia_ManLevelNum(Gia_Man_t *p)
void Gia_ManHashAlloc(Gia_Man_t *p)
#define Gia_ManForEachObj1(p, pObj, i)
void Gia_ManIncrementTravId(Gia_Man_t *p)
static void Vec_IntFree(Vec_Int_t *p)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
static void Gia_ObjSetTravIdCurrentId(Gia_Man_t *p, int Id)
char * Abc_UtilStrsav(char *s)
static int Gia_ObjFaninId1(Gia_Obj_t *pObj, int ObjId)
#define Gia_LutForEachFanin(p, i, iFan, k)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ManObjNum(Gia_Man_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ObjFaninId0(Gia_Obj_t *pObj, int ObjId)