summaryrefslogtreecommitdiffstats
path: root/src/sat/bmc/bmcICheck.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-02-11 11:58:25 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2014-02-11 11:58:25 -0800
commit0ff592524818c895517db80a0795b5faea6cf8b5 (patch)
treed399d23387ee38e0940128b9ee67da0d07598e68 /src/sat/bmc/bmcICheck.c
parent367b02aecd32fe66729e3b8b75bba669ed828900 (diff)
downloadabc-0ff592524818c895517db80a0795b5faea6cf8b5.tar.gz
abc-0ff592524818c895517db80a0795b5faea6cf8b5.tar.bz2
abc-0ff592524818c895517db80a0795b5faea6cf8b5.zip
Experiments with inductive don't-cares.
Diffstat (limited to 'src/sat/bmc/bmcICheck.c')
-rw-r--r--src/sat/bmc/bmcICheck.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/sat/bmc/bmcICheck.c b/src/sat/bmc/bmcICheck.c
index c70ed9b3..f404def5 100644
--- a/src/sat/bmc/bmcICheck.c
+++ b/src/sat/bmc/bmcICheck.c
@@ -397,9 +397,9 @@ void Bmc_PerformISearchOne( Gia_Man_t * p, int nFramesMax, int nTimeOut, int fRe
Gia_ManStop( pMiter );
// Vec_IntFree( vLits );
}
-void Bmc_PerformISearch( Gia_Man_t * p, int nFramesMax, int nTimeOut, int fReverse, int fDump, int fVerbose )
+Vec_Int_t * Bmc_PerformISearch( Gia_Man_t * p, int nFramesMax, int nTimeOut, int fReverse, int fDump, int fVerbose )
{
- Vec_Int_t * vLits;
+ Vec_Int_t * vLits, * vFlops;
int i, f;
printf( "Solving M-inductiveness for design %s with %d AND nodes and %d flip-flops:\n",
Gia_ManName(p), Gia_ManAndNum(p), Gia_ManRegNum(p) );
@@ -426,7 +426,15 @@ void Bmc_PerformISearch( Gia_Man_t * p, int nFramesMax, int nTimeOut, int fRever
printf( "%d ", i );
printf( "\n" );
}
+ // save flop indexes
+ vFlops = Vec_IntAlloc( Gia_ManRegNum(p) );
+ for ( i = 0; i < Gia_ManRegNum(p); i++ )
+ if ( !Abc_LitIsCompl(Vec_IntEntry(vLits, i)) )
+ Vec_IntPush( vFlops, 1 );
+ else
+ Vec_IntPush( vFlops, 0 );
Vec_IntFree( vLits );
+ return vFlops;
}
////////////////////////////////////////////////////////////////////////