diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2017-04-12 01:24:22 +0000 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2017-04-12 01:24:22 +0000 |
commit | 0d53eece0a8243995215f7fefc39371d07c8d959 (patch) | |
tree | 221a84c6a596be139ddecc5bbf7ddba95243580b /src | |
parent | 000e51f323b0490e9e0d2e740f90b069d4028105 (diff) | |
parent | 2c443d20de7dc68dbbbee2d5d29fa48b4fbd2619 (diff) | |
download | abc-0d53eece0a8243995215f7fefc39371d07c8d959.tar.gz abc-0d53eece0a8243995215f7fefc39371d07c8d959.tar.bz2 abc-0d53eece0a8243995215f7fefc39371d07c8d959.zip |
Merged in ysho/abc (pull request #73)
Improvements to %pdra
Diffstat (limited to 'src')
-rw-r--r-- | src/base/wlc/wlc.h | 2 | ||||
-rw-r--r-- | src/base/wlc/wlcAbs.c | 6 |
2 files changed, 7 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..c56d1262 100644 --- a/src/base/wlc/wlcAbs.c +++ b/src/base/wlc/wlcAbs.c @@ -587,6 +587,8 @@ static Abc_Cex_t * Wlc_NtkCexIsReal( Wlc_Ntk_t * pOrig, Abc_Cex_t * pCex ) if (pObj->Value==1) { Abc_Print( 1, "CEX is real on the original model.\n" ); Gia_ManStop(pGiaOrig); + pCexReal->iFrame = f; + pCexReal->iPo = i; return pCexReal; } } @@ -1659,6 +1661,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 +1717,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->pFuncStop( pPars->RunId)) ) break; Wla_ManRefine( pWla ); |