48 int i, CountConst0 = 0, CountNonConst0 = 0, CountUndecided = 0;
84 Abc_Print( 1,
"Const0 = %d. ", CountConst0 );
85 Abc_Print( 1,
"NonConst0 = %d. ", CountNonConst0 );
86 Abc_Print( 1,
"Undecided = %d. ", CountUndecided );
121 assert( pObj1m && pObj2m );
122 if ( pObj1m == pObj2m )
124 if ( pObj1m->
Id < pObj2m->
Id )
153 int Entry, idObj, idRepr, idReprObj, idReprRepr, i;
157 for ( i = 0; i < nObjNumMax; i++ )
166 assert( (pReprs[idRepr] == -1) || (pvClasses[pReprs[idRepr]] != NULL) );
167 assert( (pReprs[idObj] == -1) || (pvClasses[pReprs[idObj] ] != NULL) );
169 idReprRepr = pReprs[idRepr];
170 idReprObj = pReprs[idObj];
172 if ( idReprRepr == -1 && idReprObj == -1 )
178 pReprs[ idRepr ] = idRepr;
179 pReprs[ idObj ] = idRepr;
181 else if ( idReprRepr >= 0 && idReprObj == -1 )
185 pReprs[ idObj ] = idReprRepr;
187 else if ( idReprRepr == -1 && idReprObj >= 0 )
189 assert( idReprObj != idRepr );
190 if ( idReprObj < idRepr )
193 pReprs[ idRepr ] = idReprObj;
198 pvClasses[idRepr] = pvClasses[idReprObj];
199 pvClasses[idReprObj] = NULL;
202 pReprs[ Entry ] = idRepr;
207 if ( idReprRepr == idReprObj )
214 if ( idReprRepr < idReprObj )
219 pReprs[ Entry ] = idReprRepr;
222 pvClasses[idReprObj] = NULL;
229 pReprs[ Entry ] = idReprObj;
232 pvClasses[idReprRepr] = NULL;
255 for ( i = 0; i < nObjNumMax; i++ )
295 p->pSml =
Ssw_SmlStart( pMiter, 0, p->nFrames + p->pPars->nFramesAddSim, 1 );
357 Abc_Print( 1,
"Verification successful. " );
358 else if ( RetValue == 0 )
359 Abc_Print( 1,
"Verification failed with the counter-example. " );
361 Abc_Print( 1,
"Verification UNDECIDED. Remaining registers %d (total %d). ",
385 assert( vIds1 != NULL && vIds2 != NULL );
387 Abc_Print( 1,
"Performing specialized verification with node pairs.\n" );
392 Abc_Print( 1,
"Verification successful. " );
393 else if ( RetValue == 0 )
394 Abc_Print( 1,
"Verification failed with a counter-example. " );
396 Abc_Print( 1,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). ",
421 Abc_Print( 1,
"Performing general verification without node pairs.\n" );
429 Abc_Print( 1,
"Verification successful. " );
430 else if ( RetValue == 0 )
431 Abc_Print( 1,
"Verification failed with a counter-example. " );
433 Abc_Print( 1,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). ",
463 Abc_Print( 1,
"Verification successful. " );
464 else if ( RetValue == 0 )
465 Abc_Print( 1,
"Verification failed with a counter-example. " );
467 Abc_Print( 1,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). ",
void Ssw_ManStop(Ssw_Man_t *p)
unsigned Ssw_SmlObjHashWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
static int Saig_ManPoNum(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManStop(Aig_Man_t *p)
Vec_Int_t ** Ssw_TransformPairsIntoTempClasses(Vec_Int_t *vPairs, int nObjNumMax)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
Aig_Man_t * Ssw_SignalCorrespondence(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
static int Aig_IsComplement(Aig_Obj_t *p)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
static Aig_Obj_t * Aig_ManConst0(Aig_Man_t *p)
#define ABC_ALLOC(type, num)
static Aig_Obj_t * Aig_ManObj(Aig_Man_t *p, int i)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
static abctime Abc_Clock()
Ssw_Cla_t * Ssw_ClassesPreparePairs(Aig_Man_t *pAig, Vec_Int_t **pvClasses)
int Ssw_SmlObjIsConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
static void Vec_IntPushFirst(Vec_Int_t *p, int Entry)
int Ssw_SecWithPairs(Aig_Man_t *pAig1, Aig_Man_t *pAig2, Vec_Int_t *vIds1, Vec_Int_t *vIds2, Ssw_Pars_t *pPars)
Ssw_Man_t * Ssw_ManCreate(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
static Vec_Int_t * Vec_IntAlloc(int nCap)
FUNCTION DEFINITIONS ///.
Aig_Man_t * Saig_ManCreateMiter(Aig_Man_t *p1, Aig_Man_t *p2, int Oper)
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
void Ssw_ClassesSetData(Ssw_Cla_t *p, void *pManData, unsigned(*pFuncNodeHash)(void *, Aig_Obj_t *), int(*pFuncNodeIsConst)(void *, Aig_Obj_t *), int(*pFuncNodesAreEqual)(void *, Aig_Obj_t *, Aig_Obj_t *))
void Ssw_ManSetDefaultParams(Ssw_Pars_t *p)
DECLARATIONS ///.
static int Vec_IntEntry(Vec_Int_t *p, int i)
#define ABC_NAMESPACE_IMPL_END
Aig_Man_t * Ssw_SignalCorrespondenceRefine(Ssw_Man_t *p)
int Ssw_SecGeneral(Aig_Man_t *pAig1, Aig_Man_t *pAig2, Ssw_Pars_t *pPars)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
void Ssw_FreeTempClasses(Vec_Int_t **pvClasses, int nObjNumMax)
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 int Aig_ManRegNum(Aig_Man_t *p)
int Ssw_SecGeneralMiter(Aig_Man_t *pMiter, Ssw_Pars_t *pPars)
static int Vec_IntSize(Vec_Int_t *p)
#define Aig_ManForEachObj(p, pObj, i)
Aig_Man_t * Ssw_SignalCorrespondenceWithPairs(Aig_Man_t *pAig1, Aig_Man_t *pAig2, Vec_Int_t *vIds1, Vec_Int_t *vIds2, Ssw_Pars_t *pPars)
ABC_NAMESPACE_IMPL_START int Ssw_MiterStatus(Aig_Man_t *p, int fVerbose)
DECLARATIONS ///.
#define ABC_CALLOC(type, num)
Aig_Man_t * Ssw_SignalCorrespondeceTestPairs(Aig_Man_t *pAig)
static int Vec_IntPushUniqueOrder(Vec_Int_t *p, int Entry)
#define Saig_ManForEachPo(p, pObj, i)
static int Aig_ObjId(Aig_Obj_t *pObj)
static void Vec_IntFree(Vec_Int_t *p)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
#define Vec_IntForEachEntry(vVec, Entry, i)
MACRO DEFINITIONS ///.
int Aig_ManCleanup(Aig_Man_t *p)
Ssw_Sml_t * Ssw_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
Vec_Int_t * Ssw_TransferSignalPairs(Aig_Man_t *pMiter, Aig_Man_t *pAig1, Aig_Man_t *pAig2, Vec_Int_t *vIds1, Vec_Int_t *vIds2)