111 int i, k, iBit = 0, fCompl0, fCompl1, fJusti0, fJusti1, Shift;
117 for ( Shift = i = 0; i <= pCex->iFrame; i++, Shift +=
Gia_ManObjNum(p) )
127 pObj->
fMark0 = fCompl0 & fCompl1;
129 pObj->
fMark1 = fJusti0 & fJusti1;
130 else if ( !fCompl0 && !fCompl1 )
131 pObj->
fMark1 = fJusti0 | fJusti1;
165 assert( iBit == pCex->nBits );
242 int f, i, k, iBitOld, iBit = 0, fCompl0, fCompl1;
249 for ( i = 0; i < iFrEnd; i++ )
285 for ( f = iFrEnd; f <= pCex->iFrame; f++ )
292 for ( i = iFrEnd; i < f; i++ )
307 for ( i = f; i <= pCex->iFrame; i++ )
315 pObj->
fMark0 = fCompl0 & fCompl1;
318 else if ( !fCompl0 && !fCompl1 )
333 if ( i == pCex->iFrame )
341 assert( iBit == pCex->nBits );
369 int i, k, iBit = 0, fCompl0, fCompl1;
376 for ( i = 0; i < iFrEnd; i++ )
405 for ( i = iFrEnd; i <= pCex->iFrame; i++ )
413 pObj->
fMark0 = fCompl0 & fCompl1;
416 else if ( !fCompl0 && !fCompl1 )
431 if ( i == pCex->iFrame )
440 assert( iBit == pCex->nBits );
467 { printf(
"Starting frame is less than 0.\n" );
return NULL; }
469 { printf(
"Stopping frame is less than 0.\n" );
return NULL; }
470 if ( iFrBeg > pCex->iFrame )
471 { printf(
"Starting frame is more than the last frame of CEX (%d).\n", pCex->iFrame );
return NULL; }
472 if ( iFrEnd > pCex->iFrame )
473 { printf(
"Stopping frame is more than the last frame of CEX (%d).\n", pCex->iFrame );
return NULL; }
474 if ( iFrBeg > iFrEnd )
475 { printf(
"Starting frame (%d) should be less than stopping frame (%d).\n", iFrBeg, iFrEnd );
return NULL; }
476 assert( iFrBeg >= 0 && iFrBeg <= pCex->iFrame );
477 assert( iFrEnd >= 0 && iFrEnd <= pCex->iFrame );
478 assert( iFrBeg < iFrEnd );
482 else if ( fAllFrames )
520 Abc_Print( 1,
"Current CEX does not fail AIG \"%s\".\n", p->pName );
524 pRes =
Bmc_GiaTargetStates( pGia, pCex, iFrBeg, iFrEnd, fCombOnly, fUseOne, fAllFrames, fVerbose );
static int Gia_ManAppendAnd(Gia_Man_t *p, int iLit0, int iLit1)
void Gia_ManStop(Gia_Man_t *p)
Aig_Man_t * Gia_ManToAigSimple(Gia_Man_t *p)
#define Gia_ManForEachCo(p, pObj, i)
int Gia_ManVerifyCex(Gia_Man_t *pAig, Abc_Cex_t *p, int fDualOut)
DECLARATIONS ///.
static int Gia_ObjFaninC1(Gia_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static int Gia_ManAppendCo(Gia_Man_t *p, int iLit0)
static int Abc_InfoHasBit(unsigned *p, int i)
static Gia_Obj_t * Gia_ManPo(Gia_Man_t *p, int v)
static int Gia_ManAppendCi(Gia_Man_t *p)
void Gia_ManCleanMark0(Gia_Man_t *p)
static int Gia_ObjIsConst0(Gia_Obj_t *pObj)
Gia_Man_t * Bmc_GiaTargetStates(Gia_Man_t *p, Abc_Cex_t *pCex, int iFrBeg, int iFrEnd, int fCombOnly, int fUseOne, int fAllFrames, int fVerbose)
Gia_Man_t * Gia_ManFromAigSimple(Aig_Man_t *p)
#define Gia_ManForEachObjReverse(p, pObj, i)
static void Vec_BitWriteEntry(Vec_Bit_t *p, int i, int Entry)
static Gia_Obj_t * Gia_ManObj(Gia_Man_t *p, int v)
static int Abc_LitNotCond(int Lit, int c)
void Gia_ManCleanMark1(Gia_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Bit_t_ Vec_Bit_t
INCLUDES ///.
static int * Vec_BitArray(Vec_Bit_t *p)
#define Gia_ManForEachRiRo(p, pObjRi, pObjRo, i)
static Vec_Bit_t * Vec_BitStart(int nSize)
static Gia_Obj_t * Gia_ManPi(Gia_Man_t *p, int v)
static Gia_Obj_t * Gia_ObjFanin0(Gia_Obj_t *pObj)
Aig_Man_t * Bmc_AigTargetStates(Aig_Man_t *p, Abc_Cex_t *pCex, int iFrBeg, int iFrEnd, int fCombOnly, int fUseOne, int fAllFrames, int fVerbose)
ABC_NAMESPACE_IMPL_START int Bmc_GiaGenerateJust_rec(Gia_Man_t *p, int iFrame, int iObj, Vec_Bit_t *vValues, Vec_Bit_t *vJustis)
DECLARATIONS ///.
static Gia_Obj_t * Gia_ObjRoToRi(Gia_Man_t *p, Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManDupWithNewPo(Gia_Man_t *p1, Gia_Man_t *p2)
#define ABC_NAMESPACE_IMPL_END
void Bmc_GiaGenerateJust(Gia_Man_t *p, Abc_Cex_t *pCex, Vec_Bit_t **pvValues, Vec_Bit_t **pvJustis)
void Bmc_GiaGenerateJustNonRec(Gia_Man_t *p, int iFrame, Vec_Bit_t *vValues, Vec_Bit_t *vJustis)
void Gia_ManHashStart(Gia_Man_t *p)
Gia_Man_t * Gia_ManStart(int nObjsMax)
DECLARATIONS ///.
#define Gia_ManForEachAnd(p, pObj, i)
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_ObjIsCo(Gia_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_START
static int Abc_LitNot(int Lit)
Gia_Man_t * Gia_ManDupFlip(Gia_Man_t *p, int *pInitState)
static int Gia_ObjIsAnd(Gia_Obj_t *pObj)
#define Gia_ManForEachObj(p, pObj, i)
MACRO DEFINITIONS ///.
static Gia_Obj_t * Gia_ManConst0(Gia_Man_t *p)
static int Vec_BitEntry(Vec_Bit_t *p, int i)
static Gia_Obj_t * Gia_ObjFanin1(Gia_Obj_t *pObj)
Gia_Man_t * Bmc_GiaGenerateGiaAllOne(Gia_Man_t *p, Abc_Cex_t *pCex, Vec_Bit_t **pvInits, int iFrBeg, int iFrEnd)
static void Vec_BitFree(Vec_Bit_t *p)
#define Gia_ManForEachRo(p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
#define Gia_ManForEachRi(p, pObj, i)
Gia_Man_t * Bmc_GiaGenerateGiaAllFrames(Gia_Man_t *p, Abc_Cex_t *pCex, Vec_Bit_t **pvInits, int iFrBeg, int iFrEnd)
static int Gia_ObjFaninC0(Gia_Obj_t *pObj)
static int Gia_ObjIsCi(Gia_Obj_t *pObj)
Gia_Man_t * Gia_ManCleanup(Gia_Man_t *p)
char * Abc_UtilStrsav(char *s)
static int Gia_ObjFaninId1(Gia_Obj_t *pObj, int ObjId)
int Gia_ManHashOr(Gia_Man_t *p, int iLit0, int iLit1)
Gia_Man_t * Bmc_GiaGenerateGiaOne(Gia_Man_t *p, Abc_Cex_t *pCex, Vec_Bit_t **pvInits, int iFrBeg, int iFrEnd)
int Gia_ManHashAnd(Gia_Man_t *p, int iLit0, int iLit1)
static int Gia_Obj2Lit(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManObjNum(Gia_Man_t *p)
void Gia_ManHashStop(Gia_Man_t *p)
static int Gia_ObjFaninId0(Gia_Obj_t *pObj, int ObjId)
static int Gia_ObjIsPi(Gia_Man_t *p, Gia_Obj_t *pObj)
static int Gia_ManRegNum(Gia_Man_t *p)