summaryrefslogtreecommitdiffstats
path: root/src/base/abci/abcDar.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2013-10-23 16:26:13 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2013-10-23 16:26:13 -0700
commit47afd0f4f4f258ddc9231b791e6149430240ba52 (patch)
treee421d9e2913bdccd368e588122f5c9664a672338 /src/base/abci/abcDar.c
parent8ad1729aa9f3f9da65c36f89a57a8272ece196d9 (diff)
downloadabc-47afd0f4f4f258ddc9231b791e6149430240ba52.tar.gz
abc-47afd0f4f4f258ddc9231b791e6149430240ba52.tar.bz2
abc-47afd0f4f4f258ddc9231b791e6149430240ba52.zip
Multi-output property solver.
Diffstat (limited to 'src/base/abci/abcDar.c')
-rw-r--r--src/base/abci/abcDar.c82
1 files changed, 44 insertions, 38 deletions
diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c
index 4fbf7c70..d662f376 100644
--- a/src/base/abci/abcDar.c
+++ b/src/base/abci/abcDar.c
@@ -2138,56 +2138,62 @@ int Abc_NtkDarBmc3( Abc_Ntk_t * pNtk, Saig_ParBmc_t * pPars, int fOrDecomp )
ABC_FREE( pNtk->pModel );
ABC_FREE( pNtk->pSeqModel );
pNtk->pSeqModel = pMan->pSeqModel; pMan->pSeqModel = NULL;
- if ( RetValue == 1 )
- {
- Abc_Print( 1, "Explored all reachable states after completing %d frames. ", 1<<Aig_ManRegNum(pMan) );
- }
- else if ( RetValue == -1 )
+ if ( !pPars->fSilent )
{
- if ( pPars->nFailOuts == 0 )
+ if ( RetValue == 1 )
{
- Abc_Print( 1, "No output asserted in %d frames. Resource limit reached ", Abc_MaxInt(pPars->iFrame,0) );
- if ( nTimeOut && Abc_Clock() > nTimeOut )
- Abc_Print( 1, "(timeout %d sec). ", pPars->nTimeOut );
- else
- Abc_Print( 1, "(conf limit %d). ", pPars->nConfLimit );
+ Abc_Print( 1, "Explored all reachable states after completing %d frames. ", 1<<Aig_ManRegNum(pMan) );
}
- else
+ else if ( RetValue == -1 )
{
- Abc_Print( 1, "The total of %d outputs asserted in %d frames. Resource limit reached ", pPars->nFailOuts, pPars->iFrame );
- if ( Abc_Clock() > nTimeOut )
- Abc_Print( 1, "(timeout %d sec). ", pPars->nTimeOut );
+ if ( pPars->nFailOuts == 0 )
+ {
+ Abc_Print( 1, "No output asserted in %d frames. Resource limit reached ", Abc_MaxInt(pPars->iFrame,0) );
+ if ( nTimeOut && Abc_Clock() > nTimeOut )
+ Abc_Print( 1, "(timeout %d sec). ", pPars->nTimeOut );
+ else
+ Abc_Print( 1, "(conf limit %d). ", pPars->nConfLimit );
+ }
else
- Abc_Print( 1, "(conf limit %d). ", pPars->nConfLimit );
- }
- }
- else // if ( RetValue == 0 )
- {
- if ( !pPars->fSolveAll )
- {
- Abc_Cex_t * pCex = pNtk->pSeqModel;
- Abc_Print( 1, "Output %d of miter \"%s\" was asserted in frame %d. ", pCex->iPo, pNtk->pName, pCex->iFrame );
+ {
+ Abc_Print( 1, "The total of %d outputs asserted in %d frames. Resource limit reached ", pPars->nFailOuts, pPars->iFrame );
+ if ( Abc_Clock() > nTimeOut )
+ Abc_Print( 1, "(timeout %d sec). ", pPars->nTimeOut );
+ else
+ Abc_Print( 1, "(conf limit %d). ", pPars->nConfLimit );
+ }
}
- else
+ else // if ( RetValue == 0 )
{
- int nOutputs = Saig_ManPoNum(pMan) - Saig_ManConstrNum(pMan);
- if ( pMan->vSeqModelVec == NULL || Vec_PtrCountZero(pMan->vSeqModelVec) == nOutputs )
- Abc_Print( 1, "None of the %d outputs is found to be SAT. ", nOutputs );
- else if ( Vec_PtrCountZero(pMan->vSeqModelVec) == 0 )
- Abc_Print( 1, "All %d outputs are found to be SAT. ", nOutputs );
+ if ( !pPars->fSolveAll )
+ {
+ Abc_Cex_t * pCex = pNtk->pSeqModel;
+ Abc_Print( 1, "Output %d of miter \"%s\" was asserted in frame %d. ", pCex->iPo, pNtk->pName, pCex->iFrame );
+ }
else
{
- Abc_Print( 1, "Some outputs are SAT (%d out of %d)", nOutputs - Vec_PtrCountZero(pMan->vSeqModelVec), nOutputs );
- if ( pPars->nDropOuts )
- Abc_Print( 1, " while others timed out (%d out of %d)", pPars->nDropOuts, nOutputs );
- Abc_Print( 1, ". " );
+ int nOutputs = Saig_ManPoNum(pMan) - Saig_ManConstrNum(pMan);
+ if ( pMan->vSeqModelVec == NULL || Vec_PtrCountZero(pMan->vSeqModelVec) == nOutputs )
+ Abc_Print( 1, "None of the %d outputs is found to be SAT. ", nOutputs );
+ else if ( Vec_PtrCountZero(pMan->vSeqModelVec) == 0 )
+ Abc_Print( 1, "All %d outputs are found to be SAT. ", nOutputs );
+ else
+ {
+ Abc_Print( 1, "Some outputs are SAT (%d out of %d)", nOutputs - Vec_PtrCountZero(pMan->vSeqModelVec), nOutputs );
+ if ( pPars->nDropOuts )
+ Abc_Print( 1, " while others timed out (%d out of %d)", pPars->nDropOuts, nOutputs );
+ Abc_Print( 1, ". " );
+ }
}
- if ( pNtk->vSeqModelVec )
- Vec_PtrFreeFree( pNtk->vSeqModelVec );
- pNtk->vSeqModelVec = pMan->vSeqModelVec; pMan->vSeqModelVec = NULL;
}
+ ABC_PRT( "Time", Abc_Clock() - clk );
+ }
+ if ( RetValue == 0 && pPars->fSolveAll )
+ {
+ if ( pNtk->vSeqModelVec )
+ Vec_PtrFreeFree( pNtk->vSeqModelVec );
+ pNtk->vSeqModelVec = pMan->vSeqModelVec; pMan->vSeqModelVec = NULL;
}
- ABC_PRT( "Time", Abc_Clock() - clk );
if ( pNtk->pSeqModel )
{
status = Saig_ManVerifyCex( pMan, pNtk->pSeqModel );