summaryrefslogtreecommitdiffstats
path: root/src/base/abci
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/abci')
-rw-r--r--src/base/abci/abc.c55
-rw-r--r--src/base/abci/abcDar.c7
2 files changed, 33 insertions, 29 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index b8b5f5c4..d4cec6dd 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -32346,16 +32346,15 @@ usage:
***********************************************************************/
int Abc_CommandAbc9MultiProve( Abc_Frame_t * pAbc, int argc, char ** argv )
{
- extern int Gia_ManMultiProve( Gia_Man_t * p, int TimeOutGlo, int TimeOutLoc, int TimeOutInc, int fUseSyn, int fVerbose, int fVeryVerbose );
- Vec_Int_t * vStatuses;
- int TimeOutGlo = 30;
- int TimeOutLoc = 2;
- int TimeOutInc = 2;
- int fUseSyn = 0;
- int c, fVerbose = 0;
- int fVeryVerbose = 0;
+ extern int Gia_ManMultiProve( Gia_Man_t * p, Bmc_MulPar_t * pPars );
+ Vec_Int_t * vStatuses; int c;
+ Bmc_MulPar_t Pars, * pPars = &Pars;
+ memset( pPars, 0, sizeof(Bmc_MulPar_t) );
+ pPars->TimeOutGlo = 30;
+ pPars->TimeOutLoc = 2;
+ pPars->TimeOutInc = 100;
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "TLMsvwh" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "TLMsdvwh" ) ) != EOF )
{
switch ( c )
{
@@ -32365,9 +32364,9 @@ int Abc_CommandAbc9MultiProve( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "Command line switch \"-T\" should be followed by an integer.\n" );
goto usage;
}
- TimeOutGlo = atoi(argv[globalUtilOptind]);
+ pPars->TimeOutGlo = atoi(argv[globalUtilOptind]);
globalUtilOptind++;
- if ( TimeOutGlo < 0 )
+ if ( pPars->TimeOutGlo < 0 )
goto usage;
break;
case 'L':
@@ -32376,9 +32375,9 @@ int Abc_CommandAbc9MultiProve( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "Command line switch \"-L\" should be followed by an integer.\n" );
goto usage;
}
- TimeOutLoc = atoi(argv[globalUtilOptind]);
+ pPars->TimeOutLoc = atoi(argv[globalUtilOptind]);
globalUtilOptind++;
- if ( TimeOutLoc <= 0 )
+ if ( pPars->TimeOutLoc <= 0 )
goto usage;
break;
case 'M':
@@ -32387,19 +32386,22 @@ int Abc_CommandAbc9MultiProve( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "Command line switch \"-M\" should be followed by an integer.\n" );
goto usage;
}
- TimeOutInc = atoi(argv[globalUtilOptind]);
+ pPars->TimeOutInc = atoi(argv[globalUtilOptind]);
globalUtilOptind++;
- if ( TimeOutInc <= 0 )
+ if ( pPars->TimeOutInc <= 0 )
goto usage;
break;
case 's':
- fUseSyn ^= 1;
+ pPars->fUseSyn ^= 1;
+ break;
+ case 'd':
+ pPars->fDumpFinal ^= 1;
break;
case 'v':
- fVerbose ^= 1;
+ pPars->fVerbose ^= 1;
break;
case 'w':
- fVeryVerbose ^= 1;
+ pPars->fVeryVerbose ^= 1;
break;
case 'h':
goto usage;
@@ -32412,21 +32414,22 @@ int Abc_CommandAbc9MultiProve( Abc_Frame_t * pAbc, int argc, char ** argv )
Abc_Print( -1, "Abc_CommandAbc9PoPart(): There is no AIG.\n" );
return 1;
}
- pAbc->Status = Gia_ManMultiProve( pAbc->pGia, TimeOutGlo, TimeOutLoc, TimeOutInc, fUseSyn, fVerbose, fVeryVerbose );
+ pAbc->Status = Gia_ManMultiProve( pAbc->pGia, pPars );
vStatuses = Abc_FrameDeriveStatusArray( pAbc->pGia->vSeqModelVec );
Abc_FrameReplacePoStatuses( pAbc, &vStatuses );
Abc_FrameReplaceCexVec( pAbc, &pAbc->pGia->vSeqModelVec );
return 0;
usage:
- Abc_Print( -2, "usage: &mprove [-TLM num] [-svwh]\n" );
+ Abc_Print( -2, "usage: &mprove [-TLM num] [-sdvwh]\n" );
Abc_Print( -2, "\t proves multi-output testcase by applying several engines\n" );
- Abc_Print( -2, "\t-T num : approximate global runtime limit in seconds [default = %d]\n", TimeOutGlo );
- Abc_Print( -2, "\t-L num : approximate local runtime limit in seconds [default = %d]\n", TimeOutLoc );
- Abc_Print( -2, "\t-M num : approximate multiple of the local runtime limit [default = %d]\n", TimeOutInc );
- Abc_Print( -2, "\t-s : toggle using combinational synthesis [default = %s]\n", fUseSyn? "yes": "no" );
- Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", fVerbose? "yes": "no" );
- Abc_Print( -2, "\t-w : toggle printing additional verbose information [default = %s]\n", fVerbose? "yes": "no" );
+ Abc_Print( -2, "\t-T num : approximate global runtime limit in seconds [default = %d]\n", pPars->TimeOutGlo );
+ Abc_Print( -2, "\t-L num : approximate local runtime limit in seconds [default = %d]\n", pPars->TimeOutLoc );
+ Abc_Print( -2, "\t-M num : percentage of local runtime limit increase [default = %d]\n", pPars->TimeOutInc );
+ Abc_Print( -2, "\t-s : toggle using combinational synthesis [default = %s]\n", pPars->fUseSyn? "yes": "no" );
+ Abc_Print( -2, "\t-d : toggle dumping invariant into a file [default = %s]\n", pPars->fDumpFinal? "yes": "no" );
+ Abc_Print( -2, "\t-v : toggle printing verbose information [default = %s]\n", pPars->fVerbose? "yes": "no" );
+ Abc_Print( -2, "\t-w : toggle printing additional verbose information [default = %s]\n", pPars->fVeryVerbose? "yes": "no" );
Abc_Print( -2, "\t-h : print the command usage\n");
return 1;
}
diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c
index d662f376..4800557a 100644
--- a/src/base/abci/abcDar.c
+++ b/src/base/abci/abcDar.c
@@ -2174,16 +2174,17 @@ int Abc_NtkDarBmc3( Abc_Ntk_t * pNtk, Saig_ParBmc_t * pPars, int fOrDecomp )
{
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 );
+ 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 );
+ 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, ". " );
}
+ Abc_Print( 1, " after %d frames", pPars->iFrame );
+ Abc_Print( 1, ". " );
}
}
ABC_PRT( "Time", Abc_Clock() - clk );