103 if ( pObj0->
pData == NULL )
107 Abc_Print( 1,
"Mismatch between LO pairs.\n" );
111 if ( pObj1->
pData == NULL )
115 Abc_Print( 1,
"Mismatch between LO pairs.\n" );
140 if ( pObj->
pData != NULL )
201 if ( pObj->
pData != NULL )
231 Abc_Print( 1,
"Extending islands by %d steps:\n", nDist );
232 Abc_Print( 1,
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%\n",
236 for ( d = 0; d < nDist; d++ )
243 if ( pNext1 == NULL )
248 pNext0->
pData = NULL;
249 pNext1->
pData = NULL;
254 if ( pNext1 == NULL )
259 pNext0->
pData = NULL;
260 pNext1->
pData = NULL;
265 Abc_Print( 1,
"%2d : Total = %6d. Unmatched = %6d. Ratio = %6.2f %%\n",
296 if ( pObj0->
pData != NULL )
299 pObj0->
pData = pObj1;
300 pObj1->
pData = pObj0;
306 if ( pObj0->
pData != NULL )
309 pObj0->
pData = pObj1;
310 pObj1->
pData = pObj0;
426 if ( pPars->nIsleDist )
438 if ( p->pPars->fPartSigCorr )
441 p->ppClasses =
Ssw_ClassesPrepare( pMiter, pPars->nFramesK, pPars->fLatchCorr, pPars->fConstCorr, pPars->fOutputCorr, pPars->nMaxLevs, pPars->fVerbose );
442 if ( p->pPars->fDumpSRInit )
444 if ( p->pPars->fPartSigCorr )
449 Abc_Print( 1,
"Speculatively reduced miter is saved in file \"%s\".\n",
"srm_part.blif" );
452 Abc_Print( 1,
"Dumping speculative miter is possible only for partial signal correspondence (switch \"-c\").\n" );
454 p->pSml =
Ssw_SmlStart( pMiter, 0, 1 + p->pPars->nFramesAddSim, 1 );
492 Abc_Print( 1,
"Verification successful. " );
493 else if ( RetValue == 0 )
494 Abc_Print( 1,
"Verification failed with a counter-example. " );
496 Abc_Print( 1,
"Verification UNDECIDED. The number of remaining regs = %d (total = %d). ",
547 if ( pPars->fVerbose )
548 Abc_Print( 1,
"Performing sequential verification using structural similarity.\n" );
552 if ( pPars->fVerbose )
559 Abc_Print( 1,
"Demitering has failed.\n" );
568 if ( pPars->fVerbose )
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
#define Aig_ObjForEachFanout(p, pObj, pFanout, iFan, i)
void Ssw_ManStop(Ssw_Man_t *p)
ABC_NAMESPACE_IMPL_START void Ssw_CreatePair(Vec_Int_t *vPairs, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
DECLARATIONS ///.
unsigned Ssw_SmlObjHashWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
int Ssw_SecWithSimilarity(Aig_Man_t *p0, Aig_Man_t *p1, Ssw_Pars_t *pPars)
static Aig_Type_t Aig_ObjType(Aig_Obj_t *pObj)
void Ssw_MatchingExtendOne(Aig_Man_t *p, Vec_Ptr_t *vNodes)
static int Saig_ManPoNum(Aig_Man_t *p)
static int Saig_ObjIsLo(Aig_Man_t *p, Aig_Obj_t *pObj)
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 Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ManObjNum(Aig_Man_t *p)
#define Saig_ManForEachLiLo(p, pObjLi, pObjLo, i)
static Aig_Obj_t * Saig_ObjLoToLi(Aig_Man_t *p, Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
Vec_Int_t * Saig_StrSimPerformMatching_hack(Aig_Man_t *p0, Aig_Man_t *p1)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
void Aig_ManPrintStats(Aig_Man_t *p)
static int Aig_IsComplement(Aig_Obj_t *p)
void Ssw_MatchingComplete(Aig_Man_t *p0, Aig_Man_t *p1)
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define Aig_ManForEachCo(p, pObj, i)
static Aig_Obj_t * Aig_ManObj(Aig_Man_t *p, int i)
Vec_Int_t * Saig_StrSimPerformMatching(Aig_Man_t *p0, Aig_Man_t *p1, int nDist, int fVerbose, Aig_Man_t **ppMiter)
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
Ssw_Cla_t * Ssw_ClassesPreparePairsSimple(Aig_Man_t *pMiter, Vec_Int_t *vPairs)
static abctime Abc_Clock()
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
int Ssw_SmlObjIsConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ManNodeNum(Aig_Man_t *p)
static int Saig_ObjIsLi(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
void Aig_ManFanoutStart(Aig_Man_t *p)
FUNCTION DEFINITIONS ///.
void Aig_ManFanoutStop(Aig_Man_t *p)
int Saig_ManDemiterSimpleDiff(Aig_Man_t *p, Aig_Man_t **ppAig0, Aig_Man_t **ppAig1)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static int Aig_ManCoNum(Aig_Man_t *p)
Ssw_Man_t * Ssw_ManCreate(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
#define Aig_ManForEachNode(p, pObj, i)
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)
Ssw_Cla_t * Ssw_ClassesPrepare(Aig_Man_t *pAig, int nFramesK, int fLatchCorr, int fConstCorr, int fOutputCorr, int nMaxLevs, int fVerbose)
int Ssw_MatchingCountUnmached(Aig_Man_t *p)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
void Ssw_MatchingStart(Aig_Man_t *p0, Aig_Man_t *p1, Vec_Int_t *vPairs)
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
void Ssw_MatchingExtend(Aig_Man_t *p0, Aig_Man_t *p1, int nDist, int fVerbose)
static Aig_Obj_t * Aig_ManCi(Aig_Man_t *p, int i)
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 *))
static int Aig_ObjIsNone(Aig_Obj_t *pObj)
void Ssw_ManSetDefaultParams(Ssw_Pars_t *p)
DECLARATIONS ///.
static int Vec_IntEntry(Vec_Int_t *p, int i)
static int Aig_ManCiNum(Aig_Man_t *p)
static int Saig_ObjIsPo(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Saig_ObjLiToLo(Aig_Man_t *p, Aig_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
Vec_Int_t * Ssw_MatchingPairs(Aig_Man_t *p0, Aig_Man_t *p1)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
Aig_Man_t * Ssw_SignalCorrespondenceRefine(Ssw_Man_t *p)
static void Vec_IntPush(Vec_Int_t *p, int Entry)
Vec_Int_t * Ssw_MatchingMiter(Aig_Man_t *pMiter, Aig_Man_t *p0, Aig_Man_t *p1, Vec_Int_t *vPairsAll)
#define Saig_ManForEachLo(p, pObj, i)
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
void Aig_ManDumpBlif(Aig_Man_t *p, char *pFileName, Vec_Ptr_t *vPiNames, Vec_Ptr_t *vPoNames)
static void Abc_Print(int level, const char *format,...)
int Ssw_SecWithSimilarityPairs(Aig_Man_t *p0, Aig_Man_t *p1, Vec_Int_t *vPairs, Ssw_Pars_t *pPars)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
#define ABC_NAMESPACE_IMPL_START
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
Aig_Man_t * Ssw_SecWithSimilaritySweep(Aig_Man_t *p0, Aig_Man_t *p1, Vec_Int_t *vPairs, Ssw_Pars_t *pPars)
static int Aig_ManRegNum(Aig_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 ///.
static int Saig_ManPiNum(Aig_Man_t *p)
MACRO DEFINITIONS ///.
int Ssw_MiterStatus(Aig_Man_t *p, int fVerbose)
DECLARATIONS ///.
static void Vec_PtrClear(Vec_Ptr_t *p)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
Aig_Man_t * Ssw_SpeculativeReduction(Ssw_Man_t *p)
void Aig_ManCleanData(Aig_Man_t *p)
static int Saig_ObjIsPi(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupSimple(Aig_Man_t *p)
DECLARATIONS ///.
Ssw_Sml_t * Ssw_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
static void Vec_PtrFree(Vec_Ptr_t *p)
#define Saig_ManForEachPi(p, pObj, i)