MACRO DEFINITIONS ///.
512 int i, Iter, nNodes, nNodesPrev;
524 if ( pPars->nLutSize > 6 )
526 if ( pPars->nLutSize < 3 )
529 if ( pPars->nVarsShared > pPars->nLutSize - 2 )
530 pPars->nVarsShared = pPars->nLutSize - 2;
532 pPars->nVarsMax = pPars->nLutsMax * (pPars->nLutSize - 1) + 1;
533 while ( pPars->nVarsMax > 16 )
536 pPars->nVarsMax = pPars->nLutsMax * (pPars->nLutSize - 1) + 1;
539 if ( pPars->fVerbose )
541 printf(
"Resynthesis for %d %d-LUTs with %d non-MFFC LUTs, %d crossbars, and %d-input cuts.\n",
542 pPars->nLutsMax, pPars->nLutSize, pPars->nLutsOver, pPars->nVarsShared, pPars->nVarsMax );
549 fprintf( stdout,
"Converting to BDD has failed.\n" );
563 if ( p->
pPars->fSatur )
565 if ( pPars->fVerbose )
581 for ( Iter = 1; ; Iter++ )
584 if ( p->
pPars->fSatur )
589 if ( !pPars->fVeryVerbose )
601 if ( !pPars->fVeryVerbose )
608 if ( p->
pPars->fOldAlgo )
613 if ( !pPars->fVeryVerbose )
621 if ( !p->
pPars->fSatur )
641 if ( pPars->fVerbose )
646 printf(
"Node gain = %5d. (%.2f %%) ",
648 printf(
"Edge gain = %5d. (%.2f %%) ",
650 printf(
"Muxes = %4d. Dsds = %4d.", p->
nMuxes, p->
nDsds );
652 printf(
"Nodes = %5d (%3d) Cuts = %5d (%4d) Changes = %5d Iter = %2d Benefit = %d.\n",
655 printf(
"Non-DSD:" );
656 for ( i = 3; i <= pPars->nVarsMax; i++ )
658 printf(
" %d=%d", i, p->
nBlocks[i] );
682 printf(
"Lpk_Resynthesize: The network check has failed.\n" );
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
int Lpk_NodeHasChanged(Lpk_Man_t *p, int iNode)
int Lpk_ResynthesizeNode(Lpk_Man_t *p)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Lpk_Man_t * Lpk_ManStart(Lpk_Par_t *pPars)
DECLARATIONS ///.
static abctime Abc_Clock()
ABC_DLL int Abc_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
static int Abc_ObjIsCo(Abc_Obj_t *pObj)
#define ABC_PRTP(a, t, T)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
int Lpk_ResynthesizeNodeNew(Lpk_Man_t *p)
static Vec_Vec_t * Vec_VecStart(int nSize)
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
#define Abc_NtkForEachNode(pNtk, pNode, i)
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
static void Vec_VecExpand(Vec_Vec_t *p, int Level)
void Lpk_ManStop(Lpk_Man_t *p)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
static int Abc_NtkHasAig(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_FrameReadLibLut()
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)