From 43d8b8bece095d86cb927bf1d5ccac9aa1fab4e2 Mon Sep 17 00:00:00 2001 From: Alan Mishchenko Date: Sat, 30 Jul 2011 20:19:28 +0700 Subject: Changes to enable smarter simulation. --- src/aig/ssw/sswRarity.c | 8 ++++++++ src/base/abci/abc.c | 8 +++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/aig/ssw/sswRarity.c b/src/aig/ssw/sswRarity.c index f3c0b967..365e4b6a 100644 --- a/src/aig/ssw/sswRarity.c +++ b/src/aig/ssw/sswRarity.c @@ -833,7 +833,12 @@ static Vec_Int_t * Ssw_RarFindStartingState( Aig_Man_t * pAig, Abc_Cex_t * pCex // record the new pattern vInit = Vec_IntAlloc( Saig_ManRegNum(pAig) ); Saig_ManForEachLo( pAig, pObj, i ) + { +//printf( "%d", pObj->fMarkB ); Vec_IntPush( vInit, pObj->fMarkB ); + } +//printf( "\n" ); + Aig_ManCleanMarkB( pAig ); return vInit; } @@ -975,7 +980,10 @@ int Ssw_RarSignalFilter( Aig_Man_t * pAig, int nFrames, int nWords, int nBinSize // compute starting state if needed assert( p->vInits == NULL ); if ( pCex ) + { p->vInits = Ssw_RarFindStartingState( pAig, pCex ); + printf( "Beginning simulation from the state derived using the counter-example.\n" ); + } else p->vInits = Vec_IntStart( Aig_ManRegNum(pAig) ); // duplicate the array diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 980ba7ed..3e2f720e 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -25438,6 +25438,11 @@ int Abc_CommandAbc9Equiv3( Abc_Frame_t * pAbc, int argc, char ** argv ) } if ( fUseCex ) { + if ( pAbc->pCex == NULL ) + { + Abc_Print( 0, "Abc_CommandAbc9Equiv3(): Counter-example is not available.\n" ); + return 0; + } if ( pAbc->pCex->nPis != Gia_ManPiNum(pAbc->pGia) ) { Abc_Print( -1, "Abc_CommandAbc9Equiv3(): The number of PIs differs in cex (%d) and in AIG (%d).\n", @@ -25450,7 +25455,8 @@ int Abc_CommandAbc9Equiv3( Abc_Frame_t * pAbc, int argc, char ** argv ) // else // pAbc->Status = Ssw_RarSignalFilterGia2( pAbc->pGia, nFrames, nWords, nBinSize, nRounds, TimeOut, fUseCex? pAbc->pCex: NULL, fLatchOnly, fVerbose ); // pAbc->nFrames = pAbc->pGia->pCexSeq->iFrame; - Abc_FrameReplaceCex( pAbc, &pAbc->pGia->pCexSeq ); + if ( pAbc->pGia->pCexSeq ) + Abc_FrameReplaceCex( pAbc, &pAbc->pGia->pCexSeq ); return 0; usage: -- cgit v1.2.3