summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYen-Sheng Ho <ysho@berkeley.edu>2017-04-09 14:38:37 -0700
committerYen-Sheng Ho <ysho@berkeley.edu>2017-04-09 14:38:37 -0700
commit3401ed364bd031aca55d076afa50752293be497e (patch)
tree2cb2da7e6a0ebace3eee92a6ea08d28009e1bd8e
parent72c23923da38d9e06b4a57816704fe1c0d37a2c4 (diff)
downloadabc-3401ed364bd031aca55d076afa50752293be497e.tar.gz
abc-3401ed364bd031aca55d076afa50752293be497e.tar.bz2
abc-3401ed364bd031aca55d076afa50752293be497e.zip
%pdra: added top level callbacks
-rw-r--r--src/base/wlc/wlc.h2
-rw-r--r--src/base/wlc/wlcAbs.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/src/base/wlc/wlc.h b/src/base/wlc/wlc.h
index eb8f4aa4..229a6bfb 100644
--- a/src/base/wlc/wlc.h
+++ b/src/base/wlc/wlc.h
@@ -185,6 +185,8 @@ struct Wlc_Par_t_
int fShrinkScratch; // Restart pdr from scratch after shrinking
int fVerbose; // verbose output
int fPdrVerbose; // verbose output
+ int RunId; // id in this run
+ int (*pFuncStop)(int); // callback to terminate
};
typedef struct Wla_Man_t_ Wla_Man_t;
diff --git a/src/base/wlc/wlcAbs.c b/src/base/wlc/wlcAbs.c
index e355c313..3a8ff704 100644
--- a/src/base/wlc/wlcAbs.c
+++ b/src/base/wlc/wlcAbs.c
@@ -1659,6 +1659,8 @@ Wla_Man_t * Wla_ManStart( Wlc_Ntk_t * pNtk, Wlc_Par_t * pPars )
Pdr_ManSetDefaultParams( pPdrPars );
pPdrPars->fVerbose = pPars->fPdrVerbose;
pPdrPars->fVeryVerbose = 0;
+ pPdrPars->pFuncStop = pPars->pFuncStop;
+ pPdrPars->RunId = pPars->RunId;
if ( pPars->fPdra )
{
pPdrPars->fUseAbs = 1; // use 'pdr -t' (on-the-fly abstraction)
@@ -1713,7 +1715,7 @@ int Wla_ManSolve( Wla_Man_t * pWla, Wlc_Par_t * pPars )
RetValue = Wla_ManSolveInt( pWla, pAig );
Aig_ManStop( pAig );
- if ( RetValue != -1 )
+ if ( RetValue != -1 || pPars->pFuncStop( pPars->RunId) )
break;
Wla_ManRefine( pWla );