summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorYen-Sheng Ho <ysho@berkeley.edu>2017-03-02 22:16:16 -0800
committerYen-Sheng Ho <ysho@berkeley.edu>2017-03-02 22:16:16 -0800
commitcb603c5ea16c9a4756cf26144c2ae7af9800f5b3 (patch)
tree47ab8fae2ca40e2f6e0c55cad72c0788337d8a81 /src/base
parent7eac1f576673d8f6c394e41dd90c568ff92046d9 (diff)
downloadabc-cb603c5ea16c9a4756cf26144c2ae7af9800f5b3.tar.gz
abc-cb603c5ea16c9a4756cf26144c2ae7af9800f5b3.tar.bz2
abc-cb603c5ea16c9a4756cf26144c2ae7af9800f5b3.zip
added scorr to %pdra -u
Diffstat (limited to 'src/base')
-rw-r--r--src/base/wlc/wlcAbs.c33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/base/wlc/wlcAbs.c b/src/base/wlc/wlcAbs.c
index 6de8a4fe..5a582663 100644
--- a/src/base/wlc/wlcAbs.c
+++ b/src/base/wlc/wlcAbs.c
@@ -21,6 +21,7 @@
#include "wlc.h"
#include "proof/pdr/pdr.h"
#include "proof/pdr/pdrInt.h"
+#include "proof/ssw/ssw.h"
#include "aig/gia/giaAig.h"
#include "sat/bmc/bmc.h"
@@ -1122,9 +1123,39 @@ int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars )
if ( vClauses && pPars->fCheckCombUnsat )
{
+ Pdr_Man_t * pPdr2;
+ Aig_Man_t * pAigScorr;
+ Ssw_Pars_t ScorrPars, * pScorrPars = &ScorrPars;
+ int nAnds;
+
+ clk2 = Abc_Clock();
+
+ Ssw_ManSetDefaultParams( pScorrPars );
+ pScorrPars->fStopWhenGone = 1;
+ pScorrPars->nFramesK = 1;
+ pAigScorr = Ssw_SignalCorrespondence( pAig, pScorrPars );
+ assert ( pAigScorr );
+ nAnds = Aig_ManAndNum( pAigScorr);
+ Aig_ManStop( pAigScorr );
+
+ if ( nAnds == 0 )
+ {
+ if ( pPars->fVerbose )
+ Abc_PrintTime( 1, "SCORR proved UNSAT. Time", Abc_Clock() - clk2 );
+ RetValue = 1;
+ Gia_ManStop( pGia );
+ Vec_IntFree( vPisNew );
+ Aig_ManStop( pAig );
+ break;
+ }
+ else if ( pPars->fVerbose )
+ {
+ Abc_Print( 1, "SCORR failed with %d ANDs. ", nAnds);
+ Abc_PrintTime( 1, "Time", Abc_Clock() - clk2 );
+ }
+
clk2 = Abc_Clock();
- Pdr_Man_t * pPdr2;
pPdrPars->fVerbose = 0;
pPdr2 = Pdr_ManStart( pAig, pPdrPars, NULL );
RetValue = IPdr_ManCheckCombUnsat( pPdr2 );