83 pParsRwr->fUpdateLevel = 0;
86 pParsRwr->fVerbose = fVerbose;
96 pAig->Time2Quit = Time;
100 if ( Time && Abc_Clock() > Time )
107 pAig->Time2Quit = Time;
112 if ( Time && Abc_Clock() > Time )
117 pAig->Time2Quit = Time;
122 if ( Time && Abc_Clock() > Time )
129 pAig->Time2Quit = Time;
133 if ( Time && Abc_Clock() > Time )
139 pAig->Time2Quit = Time;
144 if ( Time && Abc_Clock() > Time )
173 pParsRwr->fUpdateLevel = fUpdateLevel;
176 pParsRwr->fPower = fPower;
178 pParsRwr->fVerbose = 0;
212 pParsRwr->fUseZeros = 1;
246 pParsRwr->fUpdateLevel = fUpdateLevel;
248 pParsRwr->fFanout = fFanout;
249 pParsRwr->fPower = fPower;
251 pParsRwr->fVerbose = 0;
267 pParsRwr->fUpdateLevel = 0;
269 pParsRwr->fUpdateLevel = fUpdateLevel;
295 pParsRwr->fUseZeros = 1;
351 vAigs = Vec_PtrAlloc( 3 );
353 Vec_PtrPush( vAigs, pAig );
355 pAig =
Dar_ManCompress(pAig, fBalance, fUpdateLevel, fPower, fVerbose);
356 Vec_PtrPush( vAigs, pAig );
360 Vec_PtrPush( vAigs, pAig );
363 pAig = (
Aig_Man_t *)Vec_PtrEntry( vAigs, 1 );
395 Vec_PtrPush( vAigs, Vec_PtrEntry(vAigs,0) );
396 Vec_PtrWriteEntry( vAigs, 0, pMan );
401ABC_PRT(
"Synthesis time", Abc_Clock() - clk );
410 Vec_PtrFree( vAigs );
413ABC_PRT(
"Choicing time ", Abc_Clock() - clk );
442 pParsRwr->fUpdateLevel = fUpdateLevel;
445 pParsRwr->fPower = fPower;
447 pParsRwr->fVerbose = 0;
473 pParsRwr->fUseZeros = 1;
507 pParsRwr->fUpdateLevel = fUpdateLevel;
509 pParsRwr->fFanout = fFanout;
510 pParsRwr->fPower = fPower;
512 pParsRwr->fVerbose = 0;
553 pParsRwr->fUseZeros = 1;
616 if ( Aig_ObjRefs(pObj) > 1000 )
617 Count += Aig_ObjRefs(pObj) / 1000;
618 return (
int)(Count > 10);
643 printf(
"Warning: Due to high fanout count of some nodes, level updating is disabled.\n" );
647 vGias = Vec_PtrAlloc( 3 );
649 Vec_PtrPush( vGias, pGia );
651 pAig =
Dar_NewCompress( pAig, fBalance, fUpdateLevel, fPower, fVerbose );
653 Vec_PtrPush( vGias, pGia );
656 pAig =
Dar_NewCompress2( pAig, fBalance, fUpdateLevel, 1, fPower, fLightSynth, fVerbose );
658 Vec_PtrPush( vGias, pGia );
664 pTemp = (
Gia_Man_t *)Vec_PtrPop( vGias );
665 Vec_PtrPush( vGias, Vec_PtrEntry(vGias,0) );
666 Vec_PtrWriteEntry( vGias, 0, pTemp );
680 Vec_PtrFree( vGias );
782 int fVerbose = pPars->fVerbose;
787 char * pName, * pSpec;
793pPars->timeSynth = Abc_Clock() - clk;
798 Vec_PtrPush( vAigs, Vec_PtrEntry(vAigs,0) );
799 Vec_PtrWriteEntry( vAigs, 0, pMan );
806 Vec_PtrFree( vAigs );
813 pManTime = pAig->pManTime; pAig->pManTime = NULL;
814 pName = Abc_UtilStrsav( pAig->pName );
815 pSpec = Abc_UtilStrsav( pAig->pSpec );
824 Vec_PtrFree( vPios );
827 pMan->pManTime = pManTime;
861 char * pName, * pSpec;
865 pManTime = pAig->pManTime; pAig->pManTime = NULL;
866 pName = Abc_UtilStrsav( pAig->pName );
867 pSpec = Abc_UtilStrsav( pAig->pSpec );
872pPars->timeSynth = Abc_Clock() - clk;
875 if ( pPars->fUseNew )
877 else if ( pPars->fUseNew2 )
879 else if ( pPars->fUseGia )
896 Vec_PtrFree( vPios );
899 pMan->pManTime = pManTime;
#define ABC_NAMESPACE_IMPL_START
#define ABC_NAMESPACE_IMPL_END
Vec_Ptr_t * Aig_ManOrderPios(Aig_Man_t *p, Aig_Man_t *pOrder)
Aig_Man_t * Aig_ManDupDfs(Aig_Man_t *p)
void Aig_ManStop(Aig_Man_t *p)
Aig_Man_t * Aig_ManChoiceConstructive(Vec_Ptr_t *vAigs, int fVerbose)
struct Aig_Obj_t_ Aig_Obj_t
Aig_Man_t * Aig_ManDupDfsGuided(Aig_Man_t *p, Vec_Ptr_t *vPios)
Aig_Man_t * Aig_ManChoicePartitioned(Vec_Ptr_t *vAigs, int nPartSize, int nConfMax, int nLevelMax, int fVerbose)
void Aig_ManPrintStats(Aig_Man_t *p)
#define Aig_ManForEachNode(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
int Aig_ManChoiceLevel(Aig_Man_t *p)
Aig_Man_t * Cec_ComputeChoicesNew(Gia_Man_t *pGia, int nConfs, int fVerbose)
Aig_Man_t * Cec_ComputeChoices(Gia_Man_t *pGia, Dch_Pars_t *pPars)
Aig_Man_t * Cec_ComputeChoicesNew2(Gia_Man_t *pGia, int nConfs, int fVerbose)
Gia_Man_t * Dar_NewChoiceSynthesis(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fLightSynth, int fVerbose)
Aig_Man_t * Dar_ManCompress2(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fVerbose)
Aig_Man_t * Dar_ManChoiceNew(Aig_Man_t *pAig, Dch_Pars_t *pPars)
Aig_Man_t * Dar_ManChoiceNewAig(Aig_Man_t *pAig, Dch_Pars_t *pPars)
Aig_Man_t * Dar_NewCompress2(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fLightSynth, int fVerbose)
Aig_Man_t * Dar_ManRwsat(Aig_Man_t *pAig, int fBalance, int fVerbose)
DECLARATIONS ///.
Aig_Man_t * Dar_NewCompress(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
int Dar_NewChoiceSynthesisGuard(Aig_Man_t *pAig)
ABC_NAMESPACE_IMPL_START Aig_Man_t * Dar_ManRewriteDefault(Aig_Man_t *pAig)
DECLARATIONS ///.
Vec_Ptr_t * Dar_ManChoiceSynthesis(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
Aig_Man_t * Dar_ManChoice(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fConstruct, int nConfMax, int nLevelMax, int fVerbose)
Aig_Man_t * Dar_ManCompress(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
int Dar_ManRefactor(Aig_Man_t *pAig, Dar_RefPar_t *pPars)
typedefABC_NAMESPACE_HEADER_START struct Dar_RwrPar_t_ Dar_RwrPar_t
INCLUDES ///.
void Dar_ManDefaultRwrParams(Dar_RwrPar_t *pPars)
FUNCTION DEFINITIONS ///.
Aig_Man_t * Dar_ManBalance(Aig_Man_t *p, int fUpdateLevel)
struct Dar_RefPar_t_ Dar_RefPar_t
int Dar_ManRewrite(Aig_Man_t *pAig, Dar_RwrPar_t *pPars)
void Dar_ManDefaultRefParams(Dar_RefPar_t *pPars)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Dch_Pars_t_ Dch_Pars_t
INCLUDES ///.
Aig_Man_t * Dch_ComputeChoices(Aig_Man_t *pAig, Dch_Pars_t *pPars)
Aig_Man_t * Dch_DeriveTotalAig(Vec_Ptr_t *vAigs)
MACRO DEFINITIONS ///.
Gia_Man_t * Gia_ManFromAig(Aig_Man_t *p)
INCLUDES ///.
Aig_Man_t * Gia_ManToAigSkip(Gia_Man_t *p, int nOutDelta)
void Gia_ManStop(Gia_Man_t *p)
Gia_Man_t * Gia_ManChoiceMiter(Vec_Ptr_t *vGias)
struct Gia_Man_t_ Gia_Man_t
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.