summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-07-30 20:19:28 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-07-30 20:19:28 +0700
commit43d8b8bece095d86cb927bf1d5ccac9aa1fab4e2 (patch)
treedfad6e5d82a5866529e93a18b171a3a96de6f0e8 /src
parentb8de7a28e08a68860a9b88ee47a27841f83b5083 (diff)
downloadabc-43d8b8bece095d86cb927bf1d5ccac9aa1fab4e2.tar.gz
abc-43d8b8bece095d86cb927bf1d5ccac9aa1fab4e2.tar.bz2
abc-43d8b8bece095d86cb927bf1d5ccac9aa1fab4e2.zip
Changes to enable smarter simulation.
Diffstat (limited to 'src')
-rw-r--r--src/aig/ssw/sswRarity.c8
-rw-r--r--src/base/abci/abc.c8
2 files changed, 15 insertions, 1 deletions
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: