61 pCex = pAig->pSeqModel, pAig->pSeqModel = NULL;
63 Abc_Print( 1,
"Output %d of miter \"%s\" was asserted in frame %d.\n", pCex->iPo, p->
pName, pCex->iFrame );
65 else if ( fVeryVerbose )
66 Abc_Print( 1,
"No output asserted in %d frames. Resource limit reached.\n", pPars->
iFrame+2 );
114 int RetValue, i, k, iBit = 0;
118 for ( i = 0; i <= p->iFrame; i++ )
127 if ( i == p->iFrame )
132 assert( iBit == p->nBits );
205 int i, Lit, status = 0;
276 int Iter, IterMax = 10000;
287 for ( Iter = 0; Iter < IterMax; Iter++ )
292 printf(
"Finished all POs.\n" );
302 printf(
"BMC could not detect a failed output in %d frames with %d conflicts.\n", nFrameMax, nConfMax );
305 assert( !Iter || pCex->iFrame > 0 );
310 DepthTotal += pCex->iFrame;
332 printf(
"Iter %4d : ", Iter+1 );
333 printf(
"Depth =%5d ", DepthTotal );
335 printf(
"UndecPo =%5d ", nNonConst );
336 printf(
"(%6.2f %%) ", 100.0 * nNonConst /
Gia_ManPoNum(pNew) );
342 printf(
"Completed a CEX chain with %d segments, %d frames, and %d failed POs (out of %d). ",
static int Gia_ManAppendAnd(Gia_Man_t *p, int iLit0, int iLit1)
void Saig_ParBmcSetDefaultParams(Saig_ParBmc_t *p)
Gia_Man_t * Gia_ManDup(Gia_Man_t *p)
int Saig_ManBmcScalable(Aig_Man_t *pAig, Saig_ParBmc_t *pPars)
Gia_Man_t * Gia_ManVerifyCexAndMove(Gia_Man_t *pGia, Abc_Cex_t *p)
int Bmc_ChainTest(Gia_Man_t *p, int nFrameMax, int nConfMax, int fVerbose, int fVeryVerbose)
void Gia_ManStop(Gia_Man_t *p)
Aig_Man_t * Gia_ManToAigSimple(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
static int Gia_ManPoNum(Gia_Man_t *p)
static int Gia_ObjFaninC1(Gia_Obj_t *pObj)
Cnf_Dat_t * Cnf_Derive(Aig_Man_t *pAig, int nOutputs)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
static int Abc_InfoHasBit(unsigned *p, int i)
static Gia_Obj_t * Gia_ManPo(Gia_Man_t *p, int v)
static int Gia_ObjFaninLit0p(Gia_Man_t *p, Gia_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)
static int Gia_ManAppendCi(Gia_Man_t *p)
void sat_solver_delete(sat_solver *s)
void Gia_ManCleanMark0(Gia_Man_t *p)
static int Abc_Var2Lit(int Var, int fCompl)
static int Vec_IntFind(Vec_Int_t *p, int Entry)
sat_solver * Gia_ManDeriveSatSolver(Gia_Man_t *p)
void Gia_ManSetRegNum(Gia_Man_t *p, int nRegs)
static abctime Abc_Clock()
static void Abc_PrintTimeP(int level, const char *pStr, abctime time, abctime Time)
static int Abc_LitNotCond(int Lit, int c)
Vec_Int_t * Bmc_ChainFindFailedOutputs(Gia_Man_t *p)
#define Gia_ManForEachRiRo(p, pObjRi, pObjRo, i)
static void Abc_PrintTime(int level, const char *pStr, abctime time)
static int Gia_ManAndNum(Gia_Man_t *p)
static int Aig_ManCoNum(Aig_Man_t *p)
static void Gia_ObjMakePoConst0(Gia_Man_t *p, Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static int Gia_ObjFanin1Copy(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupPosAndPropagateInit(Gia_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
ABC_NAMESPACE_IMPL_START Abc_Cex_t * Bmc_ChainFailOneOutput(Gia_Man_t *p, int nFrameMax, int nConfMax, int fVerbose, int fVeryVerbose)
DECLARATIONS ///.
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
#define Gia_ManForEachAnd(p, pObj, i)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
static int Gia_ObjId(Gia_Man_t *p, Gia_Obj_t *pObj)
#define Gia_ManForEachPi(p, pObj, i)
static void Abc_Print(int level, const char *format,...)
static int Gia_ObjFanin0Copy(Gia_Obj_t *pObj)
static int Gia_ObjIsCo(Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_START
Gia_Man_t * Bmc_ChainCleanup(Gia_Man_t *p, Vec_Int_t *vOutputs)
static int Vec_IntSize(Vec_Int_t *p)
void * Cnf_DataWriteIntoSolver(Cnf_Dat_t *p, int nFrames, int fInit)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
static int Gia_ObjIsPo(Gia_Man_t *p, Gia_Obj_t *pObj)
int Gia_ManCountNonConst0(Gia_Man_t *p)
void Cnf_DataFree(Cnf_Dat_t *p)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
#define Gia_ManForEachRo(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
void Gia_ManHashAlloc(Gia_Man_t *p)
#define Gia_ManForEachObj1(p, pObj, i)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
static void Vec_IntFree(Vec_Int_t *p)
void Abc_CexFree(Abc_Cex_t *p)
static int Gia_ManPiNum(Gia_Man_t *p)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
char * Abc_UtilStrsav(char *s)
#define Gia_ManForEachPo(p, pObj, i)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
Gia_Man_t * Gia_ManDupWithInit(Gia_Man_t *p)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_ManObjNum(Gia_Man_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ObjIsPi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManRegNum(Gia_Man_t *p)