72 p->nConfMaxStart = nConfMax;
73 p->nConfMax = nConfMax;
75 p->fVerbose = fVerbose;
82 p->nPatternsAlloc = 512;
155 if ( p->nPatterns >= p->nPatternsAlloc )
180 Aig_Obj_t * pObj, * pObjNew, * pObjLi, * pObjLo;
182 int i, f, RetValue, fFirst = 0;
196 RetValue = pBmc->nFramesSweep;
197 for ( f = 0; f < pBmc->nFramesSweep; f++ )
214 pBmc->nConfMax *= 10;
217 if ( f > 0 && p->pMSat->pSat->stats.conflicts >= pBmc->nConfMax )
224 if ( p->pMSat->pSat->stats.conflicts >= pBmc->nConfMax )
242 pBmc->nConfMax /= 10;
264 int RetValue, Frames, Iter;
275 Abc_Print( 1,
"AIG : C = %6d. Cl = %6d. Nodes = %6d. ConfMax = %6d. FramesMax = %6d.\n",
280 for ( Iter = 0; Iter < p->nPatterns; Iter++ )
287 Abc_Print( 1,
"%3d : C = %6d. Cl = %6d. NR = %6d. F = %3d. C = %5d. P = %3d. %s ",
289 Aig_ManNodeNum(p->pMan->pFrames), Frames, (
int)p->pMan->pMSat->pSat->stats.conflicts, p->nPatterns,
290 p->pMan->nSatFailsReal?
"f" :
" " );
299 if ( p->nPatterns >= p->nPatternsAlloc )
304 pMan->nStrangers = 0;
307 pMan->nSatFailsReal = 0;
308 pMan->nSatCallsUnsat = 0;
309 pMan->nSatCallsSat = 0;
310 pMan->timeSimSat = 0;
312 pMan->timeSatSat = 0;
313 pMan->timeSatUnsat = 0;
314 pMan->timeSatUndec = 0;
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
int Ssw_ClassesClassNum(Ssw_Cla_t *p)
void Ssw_ManCleanup(Ssw_Man_t *p)
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
static int Saig_ManPoNum(Aig_Man_t *p)
static Aig_Obj_t * Ssw_ObjChild0Fra(Ssw_Man_t *p, Aig_Obj_t *pObj, int i)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static int Abc_InfoHasBit(unsigned *p, int i)
int Ssw_ClassesCand1Num(Ssw_Cla_t *p)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
void Ssw_ManFilterBmcSavePattern(Ssw_Sem_t *p)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
static void Vec_PtrCleanSimInfo(Vec_Ptr_t *vInfo, int iWord, int nWords)
int Ssw_SemCheckTargets(Ssw_Sem_t *p)
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)
#define ABC_ALLOC(type, num)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
static abctime Abc_Clock()
static int Abc_MaxInt(int a, int b)
static int Aig_ManNodeNum(Aig_Man_t *p)
static Aig_Obj_t * Ssw_ObjChild1Fra(Ssw_Man_t *p, Aig_Obj_t *pObj, int i)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
#define Aig_ManForEachNode(p, pObj, i)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
int Ssw_FilterUsingSemi(Ssw_Man_t *pMan, int fCheckTargets, int nConfMax, int fVerbose)
typedefABC_NAMESPACE_IMPL_START struct Ssw_Sem_t_ Ssw_Sem_t
DECLARATIONS ///.
Ssw_Sem_t * Ssw_SemManStart(Ssw_Man_t *pMan, int nConfMax, int fVerbose)
FUNCTION DEFINITIONS ///.
#define ABC_NAMESPACE_IMPL_END
void Ssw_ClassesCheck(Ssw_Cla_t *p)
int Ssw_ManSweepNode(Ssw_Man_t *p, Aig_Obj_t *pObj, int f, int fBmc, Vec_Int_t *vPairs)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
#define Saig_ManForEachLo(p, pObj, i)
static void Abc_Print(int level, const char *format,...)
static int Aig_ManObjNumMax(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static void Abc_InfoSetBit(unsigned *p, int i)
static int Aig_ManRegNum(Aig_Man_t *p)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static void Ssw_ObjSetFrame(Ssw_Man_t *p, Aig_Obj_t *pObj, int i, Aig_Obj_t *pNode)
static int Saig_ManPiNum(Aig_Man_t *p)
MACRO DEFINITIONS ///.
static int Ssw_ObjIsConst1Cand(Aig_Man_t *pAig, Aig_Obj_t *pObj)
void Ssw_SemManStop(Ssw_Sem_t *p)
static int Abc_BitWordNum(int nBits)
#define Saig_ManForEachPo(p, pObj, i)
int Ssw_ManFilterBmc(Ssw_Sem_t *pBmc, int iPat, int fCheckTargets)
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static Vec_Ptr_t * Vec_PtrAllocSimInfo(int nEntries, int nWords)
static void Vec_PtrFree(Vec_Ptr_t *p)
#define Saig_ManForEachPi(p, pObj, i)