34 extern int Abc_NtkRefactor(
Abc_Ntk_t * pNtk,
int nNodeSizeMax,
int nConeSizeMax,
int fUpdateLevel,
int fUseZeros,
int fUseDcs,
int fVerbose );
37 static Abc_Ntk_t *
Abc_NtkMiterFraig(
Abc_Ntk_t * pNtk,
int nBTLimit, ABC_INT64_T nInspLimit,
int * pRetValue,
int * pNumFails, ABC_INT64_T * pNumConfs, ABC_INT64_T * pNumInspects );
63 int RetValue = -1, nIter, nSatFails,
Counter;
65 ABC_INT64_T nSatConfs, nSatInspects, nInspectLimit;
74 printf(
"RESOURCE LIMITS: Iterations = %d. Rewriting = %s. Fraiging = %s.\n",
76 printf(
"Miter = %d (%3.1f). Rwr = %d (%3.1f). Fraig = %d (%3.1f). Last = %d.\n",
93 for ( nIter = 0; nIter < pParams->
nItersMax; nIter++ )
97 printf(
"ITERATION %2d : Confs = %6d. FraigBTL = %3d. \n", nIter+1,
118 printf(
"Reached global limit on conflicts/inspects. Quitting.\n" );
149 if ( --Counter == 0 )
154 if ( --Counter == 0 )
159 if ( --Counter == 0 )
183 printf(
"Reached global limit on conflicts/inspects. Quitting.\n" );
192 if ( RetValue < 0 && pParams->fUseBdds )
196 printf(
"Attempting BDDs with node limit %d ...\n", pParams->
nBddSizeLimit );
225 if ( RetValue == 0 && pNtk->
pModel == NULL )
250 int nWords1, nWords2, nWordsMin, RetValue;
290 *pRetValue = RetValue;
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Fraig_ManStruct_t_ Fraig_Man_t
INCLUDES ///.
static Abc_Ntk_t * Abc_NtkMiterFraig(Abc_Ntk_t *pNtk, int nBTLimit, ABC_INT64_T nInspLimit, int *pRetValue, int *pNumFails, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
ABC_NAMESPACE_IMPL_START int Abc_NtkRefactor(Abc_Ntk_t *pNtk, int nNodeSizeMax, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose)
DECLARATIONS ///.
float nMiteringLimitMulti
void Fraig_ManFree(Fraig_Man_t *pMan)
DdNode * Cudd_ReadLogicZero(DdManager *dd)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
#define ABC_ALLOC(type, num)
int Fraig_ManReadInspects(Fraig_Man_t *p)
static abctime Abc_Clock()
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkCollapse(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_INT64_T nTotalInspectsMade
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static int Abc_MinInt(int a, int b)
ABC_INT64_T nTotalBacktracksMade
Abc_Ntk_t * Abc_NtkMiterRwsat(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_AigLevel(Abc_Ntk_t *pNtk)
static void Abc_NtkMiterPrint(Abc_Ntk_t *pNtk, char *pString, abctime clk, int fVerbose)
#define ABC_NAMESPACE_IMPL_END
void Fraig_ParamsSetDefault(Fraig_Params_t *pParams)
ABC_DLL int Abc_NtkMiterSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
FUNCTION DEFINITIONS ///.
ABC_INT64_T nTotalInspectLimit
float nRewritingLimitMulti
Abc_Ntk_t * Abc_NtkFromFraig(Fraig_Man_t *pMan, Abc_Ntk_t *pNtk)
DECLARATIONS ///.
#define ABC_NAMESPACE_IMPL_START
ABC_INT64_T nTotalBacktrackLimit
ABC_DLL int Abc_NtkMiterIsConstant(Abc_Ntk_t *pMiter)
int Fraig_ManReadSatFails(Fraig_Man_t *p)
static Abc_Obj_t * Abc_NtkPo(Abc_Ntk_t *pNtk, int i)
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkBalance(Abc_Ntk_t *pNtk, int fDuplicate, int fSelective, int fUpdateLevel)
FUNCTION DEFINITIONS ///.
float nFraigingLimitMulti
int Abc_NtkMiterProve(Abc_Ntk_t **ppNtk, void *pPars)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
int * Fraig_ManReadModel(Fraig_Man_t *p)
int Fraig_ManCheckMiter(Fraig_Man_t *p)
int Fraig_ManReadConflicts(Fraig_Man_t *p)
ABC_DLL void * Abc_NtkToFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
void Fraig_ManProveMiter(Fraig_Man_t *p)