80 p->nNodesAhead = 1000;
81 p->nCallsRecycle = 100;
107 pParsRwr->fUpdateLevel = fUpdateLevel;
110 pParsRwr->fPower = fPower;
112 pParsRwr->fVerbose = 0;
138 pParsRwr->fUseZeros = 1;
172 pParsRwr->fUpdateLevel = fUpdateLevel;
174 pParsRwr->fFanout = fFanout;
175 pParsRwr->fPower = fPower;
177 pParsRwr->fVerbose = 0;
209 pParsRwr->fUseZeros = 1;
270 pAig =
Hcd_Compress( pAig, fBalance, fUpdateLevel, fPower, fVerbose );
275 pAig =
Hcd_Compress2( pAig, fBalance, fUpdateLevel, 1, fPower, fVerbose );
321 int i, k, iNode, nNodes;
454 Gia_Obj_t * pRepr, * pReprNew, * pObjNew;
514 int i, iObj, iPrev,
Counter = 0;
587 if ( i % nSnapshots == 0 )
616 clock_t clk = clock();
622 ABC_PRT(
"Synthesis time", clock() - clk );
644 ABC_PRT(
"Choicing time", clock() - clk );
654 printf(
"Choices : Reprs = %5d. Equivs = %5d. Choices = %5d.\n",
void Hcd_ManSetDefaultParams(Hcd_Pars_t *p)
FUNCTION DEFINITIONS ///.
static Vec_Ptr_t * Vec_PtrStart(int nSize)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static int Gia_ObjPhaseReal(Gia_Obj_t *pObj)
void Gia_ManStop(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static Gia_Obj_t * Gia_ManCi(Gia_Man_t *p, int v)
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
void Aig_ManStop(Aig_Man_t *p)
static int Gia_ManAppendCi(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
static int Gia_ObjIsConst0(Gia_Obj_t *pObj)
Aig_Man_t * Aig_ManDupDfs(Aig_Man_t *p)
void Aig_ManPrintStats(Aig_Man_t *p)
int Dar_ManRewrite(Aig_Man_t *pAig, Dar_RwrPar_t *pPars)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
void Gia_ComputeEquivalences(Gia_Man_t *pMiter, int nBTLimit, int fUseMiniSat, int fVerbose)
void Gia_ManSetRegNum(Gia_Man_t *p, int nRegs)
static int Vec_PtrSize(Vec_Ptr_t *p)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
static int Abc_LitNotCond(int Lit, int c)
int Hcd_ObjCheckTfi(Gia_Man_t *p, Gia_Obj_t *pOld, Gia_Obj_t *pNode)
int Gia_ManHasDangling(Gia_Man_t *p)
Gia_Man_t * Gia_ManFromAig(Aig_Man_t *p)
INCLUDES ///.
#define Gia_ManForEachCi(p, pObj, i)
static void Gia_ObjSetRepr(Gia_Man_t *p, int Id, int Num)
void Hcd_ComputeChoicesTest(Gia_Man_t *pGia, int nBTLimit, int fSynthesis, int fUseMiniSat, int fVerbose)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
typedefABC_NAMESPACE_IMPL_START struct Hcd_Pars_t_ Hcd_Pars_t
DECLARATIONS ///.
Aig_Man_t * Hcd_ComputeChoices(Aig_Man_t *pAig, int nBTLimit, int fSynthesis, int fUseMiniSat, int fVerbose)
int Dar_ManRefactor(Aig_Man_t *pAig, Dar_RefPar_t *pPars)
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
static int Gia_ObjIsRo(Gia_Man_t *p, Gia_Obj_t *pObj)
Aig_Man_t * Hcd_Compress(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
#define ABC_NAMESPACE_IMPL_END
Vec_Ptr_t * Hcd_ChoiceSynthesis(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fPower, int fVerbose)
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
Aig_Man_t * Gia_ManToAig(Gia_Man_t *p, int fChoices)
void Dar_ManDefaultRefParams(Dar_RefPar_t *pPars)
FUNCTION DEFINITIONS ///.
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManFillValue(Gia_Man_t *p)
void Hcd_ManRemoveBadChoices(Gia_Man_t *p)
Aig_Man_t * Hcd_Compress2(Aig_Man_t *pAig, int fBalance, int fUpdateLevel, int fFanout, int fPower, int fVerbose)
static Gia_Obj_t * Gia_ObjNextObj(Gia_Man_t *p, int Id)
int Dch_DeriveChoiceCountEquivs(Aig_Man_t *pAig)
int Hcd_ManChoiceMiter_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_AigerWrite(Gia_Man_t *p, char *pFileName, int fWriteSymbols, int fCompact)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
int Aig_ManChoiceNum(Aig_Man_t *p)
void Hcd_ManAddNextEntry_rec(Gia_Man_t *p, Gia_Obj_t *pOld, Gia_Obj_t *pNode)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
static int Gia_ObjNext(Gia_Man_t *p, int Id)
#define ABC_NAMESPACE_IMPL_START
static void Gia_ObjSetNext(Gia_Man_t *p, int Id, int Num)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static Gia_Obj_t * Gia_ObjReprObj(Gia_Man_t *p, int Id)
static int Gia_ManCiNum(Gia_Man_t *p)
static int Aig_ManRegNum(Aig_Man_t *p)
static Gia_Obj_t * Gia_ManCo(Gia_Man_t *p, int v)
static int Gia_IsComplement(Gia_Obj_t *p)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Gia_Man_t * Hcd_ManEquivToChoices(Gia_Man_t *p, int nSnapshots)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Dar_RwrPar_t_ Dar_RwrPar_t
INCLUDES ///.
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
#define ABC_CALLOC(type, num)
static int Abc_Lit2Var(int Lit)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
Gia_Man_t * Hcd_ManChoiceMiter(Vec_Ptr_t *vGias)
#define Gia_ManForEachClass(p, i)
#define Gia_ManForEachRo(p, pObj, i)
int Dch_DeriveChoiceCountReprs(Aig_Man_t *pAig)
FUNCTION DECLARATIONS ///.
static int Abc_LitRegular(int Lit)
void Gia_ManSetPhase(Gia_Man_t *p)
void Hcd_ManEquivToChoices_rec(Gia_Man_t *pNew, Gia_Man_t *p, Gia_Obj_t *pObj)
void Gia_ManHashAlloc(Gia_Man_t *p)
Aig_Man_t * Dar_ManBalance(Aig_Man_t *p, int fUpdateLevel)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
int Hcd_ObjCheckTfi_rec(Gia_Man_t *p, Gia_Obj_t *pOld, Gia_Obj_t *pNode, Vec_Ptr_t *vVisited)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
char * Abc_UtilStrsav(char *s)
void Dar_ManDefaultRwrParams(Dar_RwrPar_t *pPars)
FUNCTION DEFINITIONS ///.
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ManObjNum(Gia_Man_t *p)
static void Vec_PtrFree(Vec_Ptr_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ManCoNum(Gia_Man_t *p)
static int Gia_ManRegNum(Gia_Man_t *p)