51 if ( vLeaves == NULL )
109 for ( f = pCex->iFrame; f >= 0; f-- )
112 vLeaves = (f == pCex->iFrame) ? NULL :
Vec_VecEntryInt(vFrameCis, f+1);
149 int fPhase0, fPhase1, iPrio0, iPrio1;
158 if ( fPhase0 && fPhase1 )
160 else if ( !fPhase0 && fPhase1 )
162 else if ( fPhase0 && !fPhase1 )
217 Vec_Int_t * vFramePPsOne, * vFrameCisOne, * vLeaves;
232 vLeaves = (f == pCex->iFrame) ? NULL :
Vec_VecEntryInt(vFrameCis, f+1);
258 Vec_Int_t * vRoots, * vFramePPsOne, * vFrameCisOne;
260 int i, f, nPrioOffset;
268 nPrioOffset = (pCex->iFrame + 1) * pCex->nPis;
271 for ( f = 0; f <= pCex->iFrame; f++ )
312 Vec_Int_t * vRoots, * vFramePPsOne, * vFrameCisOne;
314 int i, f, nPrioOffset;
322 nPrioOffset = pCex->nRegs;
325 for ( f = 0; f <= pCex->iFrame; f++ )
389 assert( fPhase0 && fPhase1 );
397 assert( !fPhase0 || !fPhase1 );
398 if ( !fPhase0 && fPhase1 )
400 else if ( fPhase0 && !fPhase1 )
406 if ( iPrio0 >= iPrio1 )
435 for ( f = pCex->iFrame; f >= 0; f-- )
440 vLeaves = (f == pCex->iFrame) ? NULL :
Vec_VecEntryInt(vFrameCis, f+1);
466 Vec_Vec_t * vFrameCis, * vFramePPs, * vFrameReas;
500 assert( pAig->nConstrs == 0 );
560 char * pFileName =
"aigcube.aig";
564 printf(
"Intermediate AIG is written into file \"%s\".\n", pFileName );
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
Abc_Cex_t * Saig_ManCexMinPerform(Aig_Man_t *pAig, Abc_Cex_t *pCex)
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)
#define Aig_ManForEachObjVec(vIds, p, pObj, i)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
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 int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Saig_ObjLoToLi(Aig_Man_t *p, Aig_Obj_t *pObj)
Vec_Vec_t * Saig_ManCexMinCollectFrameTerms(Aig_Man_t *pAig, Abc_Cex_t *pCex)
#define Vec_VecForEachLevelInt(vGlob, vVec, i)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Abc_Var2Lit(int Var, int fCompl)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
static int Saig_ObjRegId(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
void Saig_ManCexMinCollectFrameTerms_rec(Aig_Man_t *pAig, Aig_Obj_t *pObj, Vec_Int_t *vFrameCisOne)
#define Aig_ManForEachCo(p, pObj, i)
void Saig_ManCexMinVerifyPhase(Aig_Man_t *pAig, Abc_Cex_t *pCex, int f)
static int Abc_MaxInt(int a, int b)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static void Vec_VecFree(Vec_Vec_t *p)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ManNodeNum(Aig_Man_t *p)
Vec_Vec_t * Saig_ManCexMinCollectPhasePriority_(Aig_Man_t *pAig, Abc_Cex_t *pCex, Vec_Vec_t *vFrameCis)
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 int Aig_ObjIsNode(Aig_Obj_t *pObj)
static int Abc_MinInt(int a, int b)
void Saig_ManCexMinDerivePhasePriority_rec(Aig_Man_t *pAig, Aig_Obj_t *pObj)
static int Abc_LitIsCompl(int Lit)
#define Aig_ManForEachNode(p, pObj, i)
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
#define Saig_ManForEachLi(p, pObj, i)
Vec_Vec_t * Saig_ManCexMinCollectReason(Aig_Man_t *pAig, Abc_Cex_t *pCex, Vec_Vec_t *vFrameCis, Vec_Vec_t *vFramePPs, int fPiReason)
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
static Aig_Obj_t * Saig_ManLi(Aig_Man_t *p, int i)
Vec_Vec_t * Saig_ManCexMinCollectPhasePriority(Aig_Man_t *pAig, Abc_Cex_t *pCex, Vec_Vec_t *vFrameCis)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
#define Saig_ManForEachLo(p, pObj, i)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
static Vec_Vec_t * Vec_VecStart(int nSize)
void Saig_ManCexMinCollectReason_rec(Aig_Man_t *p, Aig_Obj_t *pObj, Vec_Int_t *vReason, int fPiReason)
Aig_Man_t * Saig_ManCexMinDupWithCubes(Aig_Man_t *pAig, Vec_Vec_t *vReg2Value)
void Ioa_WriteAiger(Aig_Man_t *pMan, char *pFileName, int fWriteSymbols, int fCompact)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
static int Saig_ManRegNum(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
static Vec_Int_t * Vec_VecEntryInt(Vec_Vec_t *p, int i)
#define ABC_NAMESPACE_IMPL_START
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
static int Aig_ManRegNum(Aig_Man_t *p)
void Saig_ManCexMinDerivePhasePriority(Aig_Man_t *pAig, Abc_Cex_t *pCex, Vec_Vec_t *vFrameCis, Vec_Vec_t *vFramePPs, int f, Vec_Int_t *vRoots)
static int Vec_IntSize(Vec_Int_t *p)
#define Aig_ManForEachObj(p, pObj, i)
static int Saig_ManPiNum(Aig_Man_t *p)
MACRO DEFINITIONS ///.
static int Vec_VecSizeSize(Vec_Vec_t *p)
static int Abc_Lit2Var(int Lit)
static int Vec_VecSize(Vec_Vec_t *p)
Vec_Vec_t * Saig_ManCexMinComputeReason(Aig_Man_t *pAig, Abc_Cex_t *pCex, int fPiReason)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Aig_ObjId(Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
static void Vec_IntFree(Vec_Int_t *p)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
static void Vec_IntClear(Vec_Int_t *p)
char * Abc_UtilStrsav(char *s)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
static int Saig_ObjIsPi(Aig_Man_t *p, Aig_Obj_t *pObj)
int Aig_ManCleanup(Aig_Man_t *p)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START void Saig_ManCexMinGetCos(Aig_Man_t *pAig, Abc_Cex_t *pCex, Vec_Int_t *vLeaves, Vec_Int_t *vRoots)
DECLARATIONS ///.
static int Aig_ObjCioId(Aig_Obj_t *pObj)
#define Saig_ManForEachPi(p, pObj, i)