65 int i, CountConst0 = 0, CountNonConst0 = 0, CountUndecided = 0;
107 if ( CountNonConst0 )
109 if ( CountUndecided )
166 sprintf( FileName,
"aig\\%03d.blif", ++Counter );
168 printf(
"Speculation cone with %d nodes was written into file \"%s\".\n",
Aig_ManNodeNum(pTemp), FileName );
207 printf(
"The node %d is not constant under cex!\n", pObj->
Id );
211 for ( c = 1; ppClass[c]; c++ )
212 if ( (ppClass[0]->fPhase ^ ppClass[c]->fPhase) != (ppClass[0]->fMarkB ^ ppClass[c]->fMarkB) )
213 printf(
"The nodes %d and %d are not equal under cex!\n", ppClass[0]->Id, ppClass[c]->Id );
236 Aig_Obj_t * pObjRepr, * pObjFraig, * pObjFraig2, * pObjReprFraig;
241 if ( pObjRepr == NULL ||
266 if ( RetValue == -1 )
271 if ( !p->
pPars->fSpeculate )
295 printf(
"Fra_FraigNode(): Error in class refinement!\n" );
320 if ( p->
pPars->fUseImps )
323 if ( p->
pPars->fLatchCorr )
328 nBTracksOld = p->
pPars->nBTLimitNode;
344 p->
pPars->nBTLimitNode = 5;
347 p->
pPars->nBTLimitNode = nBTracksOld;
349 if ( p->
pPars->fUseImps )
360 if ( p->
pPars->fUseImps )
394 if ( p->
pPars->fVerbose )
398 if ( pManAig->pImpFunc )
399 pManAig->pImpFunc( p, pManAig->pImpData );
403 if ( p->
pPars->fChoicing )
446 pPars->nBTLimitNode = nConfMax;
447 pPars->fChoicing = 1;
448 pPars->fDoSparse = 1;
449 pPars->fSpeculate = 0;
452 pPars->fDontShowBar = 1;
453 pPars->nLevelMax = nLevelMax;
473 pPars->nBTLimitNode = nConfMax;
474 pPars->fChoicing = 0;
475 pPars->fDoSparse = 1;
476 pPars->fSpeculate = 0;
477 pPars->fProve = fProve;
479 pPars->fDontShowBar = 1;
Aig_Man_t * Fra_FraigPerform(Aig_Man_t *pManAig, Fra_Par_t *pPars)
static void Fra_FraigNodeSpeculate(Fra_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pObjFraig, Aig_Obj_t *pObjReprFraig)
void Fra_ManFinalizeComb(Fra_Man_t *p)
void Fra_ImpCompactArray(Vec_Int_t *vImps)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
Fra_Man_t * Fra_ManStart(Aig_Man_t *pManAig, Fra_Par_t *pParams)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
int Fra_ClassesCountLits(Fra_Cla_t *p)
Aig_Man_t * Aig_ManDupOrdered(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
static int Aig_IsComplement(Aig_Obj_t *p)
#define Aig_ManForEachCi(p, pObj, i)
ITERATORS ///.
static Aig_Obj_t * Fra_ObjChild0Fra(Aig_Obj_t *pObj, int i)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static Aig_Obj_t * Aig_ManConst0(Aig_Man_t *p)
#define Aig_ManForEachCo(p, pObj, i)
void Fra_FraigSweep(Fra_Man_t *p)
static abctime Abc_Clock()
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Aig_ManNodeNum(Aig_Man_t *p)
static void Fra_ObjSetFraig(Aig_Obj_t *pObj, int i, Aig_Obj_t *pNode)
Fra_Sml_t * Fra_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
void Fra_ParamsDefault(Fra_Par_t *pParams)
DECLARATIONS ///.
#define Aig_ManForEachNode(p, pObj, i)
void Aig_ManReprStart(Aig_Man_t *p, int nIdMax)
DECLARATIONS ///.
Aig_Man_t * Fra_ManPrepareComb(Fra_Man_t *p)
static Aig_Obj_t * Fra_ObjFraig(Aig_Obj_t *pObj, int i)
void Fra_ClassesPrint(Fra_Cla_t *p, int fVeryVerbose)
static int Vec_IntEntry(Vec_Int_t *p, int i)
static int Aig_ManCiNum(Aig_Man_t *p)
void Aig_ManMarkValidChoices(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_END
int Fra_ImpCheckForNode(Fra_Man_t *p, Vec_Int_t *vImps, Aig_Obj_t *pNode, int Pos)
void Aig_ManDumpBlif(Aig_Man_t *p, char *pFileName, Vec_Ptr_t *vPiNames, Vec_Ptr_t *vPoNames)
void Fra_FraigVerifyCounterEx(Fra_Man_t *p, Vec_Int_t *vCex)
Aig_Man_t * Aig_ManDupRepr(Aig_Man_t *p, int fOrdered)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
static int Aig_ManObjNumMax(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
Aig_Man_t * Fra_FraigChoice(Aig_Man_t *pManAig, int nConfMax, int nLevelMax)
#define ABC_NAMESPACE_IMPL_START
static int Aig_ManRegNum(Aig_Man_t *p)
void Fra_SmlSimulate(Fra_Man_t *p, int fInit)
void Fra_SmlResimulate(Fra_Man_t *p)
static int Vec_IntSize(Vec_Int_t *p)
#define Aig_ManForEachObj(p, pObj, i)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Fra_Par_t_ Fra_Par_t
INCLUDES ///.
static Aig_Obj_t * Fra_ClassObjRepr(Aig_Obj_t *pObj)
void Fra_ManStop(Fra_Man_t *p)
void Fra_ClassesCopyReprs(Fra_Cla_t *p, Vec_Ptr_t *vFailed)
void Aig_ManTransferRepr(Aig_Man_t *pNew, Aig_Man_t *p)
#define Aig_ManForEachLoSeq(p, pObj, i)
int Fra_NodesAreEquiv(Fra_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
FUNCTION DEFINITIONS ///.
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManExtractMiter(Aig_Man_t *p, Aig_Obj_t *pNode1, Aig_Obj_t *pNode2)
static Aig_Obj_t * Fra_ObjChild1Fra(Aig_Obj_t *pObj, int i)
Aig_Man_t * Fra_FraigEquivence(Aig_Man_t *pManAig, int nConfMax, int fProve)
ABC_NAMESPACE_IMPL_START int Fra_FraigMiterStatus(Aig_Man_t *p)
DECLARATIONS ///.
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Fra_FraigNode(Fra_Man_t *p, Aig_Obj_t *pObj)
#define Aig_ManForEachPoSeq(p, pObj, i)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
int Aig_ManCleanup(Aig_Man_t *p)
static int Aig_ObjCioId(Aig_Obj_t *pObj)
int Fra_FraigMiterAssertedOutput(Aig_Man_t *p)