210 Bdc_Par_t Pars = {0}, * pDecPars = &Pars;
216 int i, k, nNodes, nFaninMax;
217 clock_t clk = clock(), clk2;
227 printf(
"Nodes with more than %d fanins will not be processed.\n", 8 );
235 printf(
"Nodes with more than %d fanins will not be processed.\n",
MFS_FANIN_MAX );
244 fprintf( stdout,
"Converting to AIGs has failed.\n" );
269 printf(
"The PI count of careset (%d) and logic network (%d) differ. Careset is not used.\n",
279 if ( p->
pCare != NULL )
280 printf(
"Performing optimization with %d external care clauses.\n", Aig_ManPoNum(p->
pCare) );
282 if ( !pPars->fResub )
284 pDecPars->nVarsMax = (nFaninMax < 3) ? 3 : nFaninMax;
285 pDecPars->fVerbose = pPars->fVerbose;
294 pObj->pData = (
void *)(PORT_PTRUINT_T)i;
303 p->nTotalNodesBeg = nTotalNodesBeg;
304 p->nTotalEdgesBeg = nTotalEdgesBeg;
314 if ( !p->
pPars->fVeryVerbose )
329 if ( !p->
pPars->fVeryVerbose )
347 if ( pPars->fVerbose )
349 printf(
"Lev = %2d. Node = %5d. Ave gain = %5.2f. Ave conf = %5.2f. T/o = %6.2f %% ",
354 PRT(
"Time", clock() - clk2 );
363 if ( !pPars->fResub )
383 p->timeTotal = clock() - clk;
ABC_DLL Vec_Vec_t * Abc_NtkLevelize(Abc_Ntk_t *pNtk)
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
int Abc_NtkMfsResub(Mfs_Man_t *p, Abc_Obj_t *pNode)
#define Vec_VecForEachLevelStart(vGlob, vVec, i, LevelStart)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
Bdc_Man_t * Bdc_ManAlloc(Bdc_Par_t *pPars)
MACRO DEFINITIONS ///.
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Vec_VecFree(Vec_Vec_t *p)
ABC_DLL int Abc_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
ABC_DLL float Abc_NtkMfsTotalSwitching(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
void Mfs_ManStop(Mfs_Man_t *p)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Vec_Int_t * Abc_NtkPowerEstimate(Abc_Ntk_t *pNtk, int fProbOne)
Aig_Man_t * Abc_NtkToDar(Abc_Ntk_t *pNtk, int fExors, int fRegisters)
int Abc_NtkMfsNode(Mfs_Man_t *p, Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
#define Abc_NtkForEachNode(pNtk, pNode, i)
Vec_Ptr_t * Aig_ManSupportsInverse(Aig_Man_t *p)
Mfs_Man_t * Mfs_ManAlloc(Mfs_Par_t *pPars)
DECLARATIONS ///.
#define Abc_NtkForEachCi(pNtk, pCi, i)
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
void Abc_NtkBidecResyn(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
static int Abc_NtkHasAig(Abc_Ntk_t *pNtk)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
#define MFS_FANIN_MAX
INCLUDES ///.