only try scorr on small circuits

This commit is contained in:
Yen-Sheng Ho 2017-03-03 12:29:15 -08:00
parent cb603c5ea1
commit 40d29e7813
1 changed files with 29 additions and 25 deletions

View File

@ -1124,34 +1124,38 @@ int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars )
if ( vClauses && pPars->fCheckCombUnsat ) if ( vClauses && pPars->fCheckCombUnsat )
{ {
Pdr_Man_t * pPdr2; Pdr_Man_t * pPdr2;
Aig_Man_t * pAigScorr;
Ssw_Pars_t ScorrPars, * pScorrPars = &ScorrPars;
int nAnds;
clk2 = Abc_Clock(); if ( Aig_ManAndNum( pAig ) <= 20000 )
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 ) Aig_Man_t * pAigScorr;
Abc_PrintTime( 1, "SCORR proved UNSAT. Time", Abc_Clock() - clk2 ); Ssw_Pars_t ScorrPars, * pScorrPars = &ScorrPars;
RetValue = 1; int nAnds;
Gia_ManStop( pGia );
Vec_IntFree( vPisNew ); clk2 = Abc_Clock();
Aig_ManStop( pAig );
break; Ssw_ManSetDefaultParams( pScorrPars );
} pScorrPars->fStopWhenGone = 1;
else if ( pPars->fVerbose ) pScorrPars->nFramesK = 1;
{ pAigScorr = Ssw_SignalCorrespondence( pAig, pScorrPars );
Abc_Print( 1, "SCORR failed with %d ANDs. ", nAnds); assert ( pAigScorr );
Abc_PrintTime( 1, "Time", Abc_Clock() - clk2 ); 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(); clk2 = Abc_Clock();