8 pObj =
Aig_ManCo( pFrame, Counter*3+type_ );
10 status =
sat_solver_solve( pSat, &Lit, &Lit + 1, (ABC_INT64_T)nConfs, 0, 0, 0 );
15 printf(
"Solver returned undecided.\n" );
27 Aig_Obj_t * pObj, * pObjLi, * pObjLo, * pObjNew;
39 for ( f = 0; f < nFrames; f++ )
42 for ( f = 0; f < nFrames; f++ )
50 for ( f = 0; f < nFrames; f++ )
62 if ( f < nFrames - 1 )
143 printf(
"Filtered cands: \n" );
218 for ( f = 0; f < nFrames; f++ )
230 pRepr = p->pObjCopies[nFrames*i + nFrames-1-f];
258 printf(
"Level %d. Cands =%d ", k,
Vec_PtrSize(vNodes) );
269 printf(
"Found %3d constraints after filtering.\n",
Vec_VecSizeSize(vCands) );
274 printf(
"Level %d. Constr =%d ", k,
Vec_PtrSize(vNodes) );
301 const int fCompl = 0 ;
314 pNew->nConstrs = pAig->nConstrs +
Vec_PtrSize(pAig->unfold2_type_II)
357 printf(
"#reg after unfold2: %d\n",
Aig_ManRegNum(pAig) + nNewFlops );
379 Aig_Obj_t * pMiter, * pFlopOut, * pFlopIn, * pObj;
380 int i, typeII_cc, type_II;
416 pMiter =
Aig_Or(pAigNew, pMiter,
430 pFlopIn =
Aig_Or( pAigNew, pMiter, pFlopOut );
456 printf (
"skipping: reg%d\n", i);
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
#define Vec_VecForEachLevel(vGlob, vVec, i)
MACRO DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static void Vec_VecPush(Vec_Vec_t *p, int Level, void *Entry)
static Vec_Vec_t * Vec_VecAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Aig_ManConstrNum(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
static int Saig_ManPoNum(Aig_Man_t *p)
static int Saig_ObjIsLo(Aig_Man_t *p, Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Aig_ManStop(Aig_Man_t *p)
int Aig_ManSeqCleanup(Aig_Man_t *p)
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
void Saig_ManFilterUsingInd2(Aig_Man_t *p, Vec_Vec_t *vCands, int nConfs, int nProps, int fVerbose)
int Saig_ManFilterUsingIndOne2(Aig_Man_t *p, Aig_Man_t *pFrame, sat_solver *pSat, Cnf_Dat_t *pCnf, int nConfs, int nProps, int Counter, int type_)
static Aig_Obj_t * Saig_ObjLoToLi(Aig_Man_t *p, Aig_Obj_t *pObj)
int sat_solver_solve(sat_solver *s, lit *begin, lit *end, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, ABC_INT64_T nConfLimitGlobal, ABC_INT64_T nInsLimitGlobal)
void sat_solver_delete(sat_solver *s)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
Aig_Man_t * Aig_ManDupDfs(Aig_Man_t *p)
void Aig_ManPrintStats(Aig_Man_t *p)
static int Aig_IsComplement(Aig_Obj_t *p)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
static Aig_Obj_t * Aig_ObjChild1Frames(Aig_Obj_t **pObjMap, int nFs, Aig_Obj_t *pObj, int i)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static Aig_Obj_t * Aig_ManConst0(Aig_Man_t *p)
Aig_Man_t * Saig_ManUnrollCOI(Aig_Man_t *pAig, int nFrames)
static Aig_Obj_t * Aig_Not(Aig_Obj_t *p)
static int Vec_PtrSize(Vec_Ptr_t *p)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static void Aig_ObjSetFrames(Aig_Obj_t **pObjMap, int nFs, Aig_Obj_t *pObj, int i, Aig_Obj_t *pNode)
static int Aig_ManNodeNum(Aig_Man_t *p)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
static Aig_Obj_t * Aig_ObjRealCopy(Aig_Obj_t *pObj)
static int Aig_ManCoNum(Aig_Man_t *p)
Vec_Vec_t * Ssw_ManFindDirectImplications2(Aig_Man_t *p, int nFrames, int nConfs, int nProps, int fVerbose)
Aig_Man_t * Saig_ManDupFoldConstrsFunc2(Aig_Man_t *pAig, int fCompl, int fVerbose, int typeII_cnt)
#define Aig_ManForEachNode(p, pObj, i)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
#define Saig_ManForEachLi(p, pObj, i)
#define Aig_ManForEachLiLoSeq(p, pObjLi, pObjLo, k)
static lit toLitCond(int v, int c)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
Aig_Obj_t * Aig_Or(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
static int Saig_ManRegNum(Aig_Man_t *p)
static void Vec_PtrWriteEntry(Vec_Ptr_t *p, int i, void *Entry)
static int Aig_ManObjNumMax(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
static int Aig_ManRegNum(Aig_Man_t *p)
Aig_Obj_t * Aig_Mux(Aig_Man_t *p, Aig_Obj_t *pC, Aig_Obj_t *p1, Aig_Obj_t *p0)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
#define Aig_ManForEachObj(p, pObj, i)
Cnf_Dat_t * Cnf_DeriveSimple(Aig_Man_t *p, int nOutputs)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Vec_VecSizeSize(Vec_Vec_t *p)
static int Aig_ObjIsCand(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild0Frames(Aig_Obj_t **pObjMap, int nFs, Aig_Obj_t *pObj, int i)
#define Aig_ManForEachLoSeq(p, pObj, i)
#define ABC_CALLOC(type, num)
void Cnf_DataFree(Cnf_Dat_t *p)
Vec_Vec_t * Saig_ManDetectConstrFunc(Aig_Man_t *p, int nFrames, int nConfs, int nProps, int fVerbose)
static void Vec_VecFreeP(Vec_Vec_t **p)
#define Saig_ManForEachPo(p, pObj, i)
static int Aig_ObjId(Aig_Obj_t *pObj)
Aig_Man_t * Saig_ManDupUnfoldConstrsFunc2(Aig_Man_t *pAig, int nFrames, int nConfs, int nProps, int fOldAlgo, int fVerbose, int *typeII_cnt)
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Vec_PtrShrink(Vec_Ptr_t *p, int nSizeNew)
Aig_Man_t * Aig_ManDupWithoutPos(Aig_Man_t *p)
char * Abc_UtilStrsav(char *s)
int sat_solver_get_var_value(sat_solver *s, int v)
int Aig_ManCleanup(Aig_Man_t *p)
#define Aig_ManForEachPiSeq(p, pObj, i)
SEQUENTIAL ITERATORS ///.
Aig_Man_t * Saig_ManCreateIndMiter2(Aig_Man_t *pAig, Vec_Vec_t *vCands)
static void Vec_PtrFree(Vec_Ptr_t *p)