summaryrefslogtreecommitdiffstats
path: root/src/aig/saig/saigBmc2.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-04-08 15:35:59 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-04-08 15:35:59 -0700
commit5222f382af8c6d9174359da92f44abee4afa0331 (patch)
treef88b424d57e36b20f03244778043b13e91c1c2d6 /src/aig/saig/saigBmc2.c
parent234fb8c7e323679d5ce9daa161bb1a0bba07a96b (diff)
downloadabc-5222f382af8c6d9174359da92f44abee4afa0331.tar.gz
abc-5222f382af8c6d9174359da92f44abee4afa0331.tar.bz2
abc-5222f382af8c6d9174359da92f44abee4afa0331.zip
Adding SAT-solver-level timeouts to the BMC engines.
Diffstat (limited to 'src/aig/saig/saigBmc2.c')
-rw-r--r--src/aig/saig/saigBmc2.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/aig/saig/saigBmc2.c b/src/aig/saig/saigBmc2.c
index 8e537142..1fc5a11a 100644
--- a/src/aig/saig/saigBmc2.c
+++ b/src/aig/saig/saigBmc2.c
@@ -767,7 +767,9 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
printf( "Params: FramesMax = %d. NodesDelta = %d. ConfMaxOne = %d. ConfMaxAll = %d.\n",
nFramesMax, nNodesMax, nConfMaxOne, nConfMaxAll );
}
-
+ // set runtime limit
+ if ( nTimeOut )
+ sat_solver_set_runtime_limit( p->pSat, clock() + nTimeOut * CLOCKS_PER_SEC );
for ( Iter = 0; ; Iter++ )
{
clk2 = clock();
@@ -841,8 +843,10 @@ int Saig_BmcPerform( Aig_Man_t * pAig, int nStart, int nFramesMax, int nNodesMax
printf( "Reached limit on the number of timeframes (%d).\n", p->nFramesMax );
else if ( p->nConfMaxAll && p->pSat->stats.conflicts > p->nConfMaxAll )
printf( "Reached global conflict limit (%d).\n", p->nConfMaxAll );
- else
+ else if ( nTimeOut == 0 || nTimeOut > clock() )
printf( "Reached local conflict limit (%d).\n", p->nConfMaxOne );
+ else
+ printf( "Reached timeout (%d sec).\n", nTimeOut );
}
Saig_BmcManStop( p );
return Status;