summaryrefslogtreecommitdiffstats
path: root/src/aig/saig/saigAbs.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-03-04 16:59:28 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2011-03-04 16:59:28 -0800
commitef893337741de07a94d2cf6056b1ca6822a5e28e (patch)
tree492478c47f3eb725a0c18becc02378468be0af2a /src/aig/saig/saigAbs.c
parent148a786b694b5cad9035e53f35a349d6274f0291 (diff)
downloadabc-ef893337741de07a94d2cf6056b1ca6822a5e28e.tar.gz
abc-ef893337741de07a94d2cf6056b1ca6822a5e28e.tar.bz2
abc-ef893337741de07a94d2cf6056b1ca6822a5e28e.zip
Improved the speed of refinement algorithm in &abs_refine.
Diffstat (limited to 'src/aig/saig/saigAbs.c')
-rw-r--r--src/aig/saig/saigAbs.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/aig/saig/saigAbs.c b/src/aig/saig/saigAbs.c
index 471d5d2d..bed5edaf 100644
--- a/src/aig/saig/saigAbs.c
+++ b/src/aig/saig/saigAbs.c
@@ -225,7 +225,7 @@ Aig_Man_t * Saig_ManCexRefine( Aig_Man_t * p, Aig_Man_t * pAbs, Vec_Int_t * vFlo
return NULL;
if ( pnUseStart )
*pnUseStart = pAbs->pSeqModel->iFrame;
- vFlopsNew = Saig_ManExtendCounterExampleTest( pAbs, Saig_ManCexFirstFlopPi(p, pAbs), pAbs->pSeqModel, fVerbose );
+ vFlopsNew = Saig_ManExtendCounterExampleTest( pAbs, Saig_ManCexFirstFlopPi(p, pAbs), pAbs->pSeqModel, 1, fVerbose );
if ( vFlopsNew == NULL )
return NULL;
if ( Vec_IntSize(vFlopsNew) == 0 )
@@ -267,13 +267,16 @@ Aig_Man_t * Saig_ManCexRefine( Aig_Man_t * p, Aig_Man_t * pAbs, Vec_Int_t * vFlo
SeeAlso []
***********************************************************************/
-int Saig_ManCexRefineStep( Aig_Man_t * p, Vec_Int_t * vFlops, Abc_Cex_t * pCex, int fVerbose )
+int Saig_ManCexRefineStep( Aig_Man_t * p, Vec_Int_t * vFlops, Abc_Cex_t * pCex, int fTryFour, int fSensePath, int fVerbose )
{
Aig_Man_t * pAbs;
Vec_Int_t * vFlopsNew;
- int i, Entry;
+ int i, Entry, clk = clock();
pAbs = Saig_ManDeriveAbstraction( p, vFlops );
- vFlopsNew = Saig_ManExtendCounterExampleTest( pAbs, Saig_ManCexFirstFlopPi(p, pAbs), pCex, fVerbose );
+ if ( fSensePath )
+ vFlopsNew = Saig_ManExtendCounterExampleTest2( pAbs, Saig_ManCexFirstFlopPi(p, pAbs), pCex, fVerbose );
+ else
+ vFlopsNew = Saig_ManExtendCounterExampleTest( pAbs, Saig_ManCexFirstFlopPi(p, pAbs), pCex, fTryFour, fVerbose );
if ( vFlopsNew == NULL )
{
Aig_ManStop( pAbs );
@@ -289,7 +292,10 @@ int Saig_ManCexRefineStep( Aig_Man_t * p, Vec_Int_t * vFlops, Abc_Cex_t * pCex,
return 0;
}
if ( fVerbose )
- printf( "Adding %d registers to the abstraction.\n", Vec_IntSize(vFlopsNew) );
+ {
+ printf( "Adding %d registers to the abstraction. ", Vec_IntSize(vFlopsNew) );
+ Abc_PrintTime( 0, "Time", clock() - clk );
+ }
// vFlopsNew contains PI number that should be kept in pAbs
// add to the abstraction
Vec_IntForEachEntry( vFlopsNew, Entry, i )