diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2012-01-19 14:24:56 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2012-01-19 14:24:56 -0800 |
commit | fffd733f948622f39bacd2545100dd799f5a3140 (patch) | |
tree | e62463b43f5e492e77839ad41d1fe0a6b7da969f /src/base/abci/abcDar.c | |
parent | 0111d43b543cd6c02a91bcd93423d45f3f65e5b9 (diff) | |
download | abc-fffd733f948622f39bacd2545100dd799f5a3140.tar.gz abc-fffd733f948622f39bacd2545100dd799f5a3140.tar.bz2 abc-fffd733f948622f39bacd2545100dd799f5a3140.zip |
Replaced 'bmc' by 'bmc2' in 'dprove'. Added switches to 'dprove' to control BMC frames and conflicts.
Diffstat (limited to 'src/base/abci/abcDar.c')
-rw-r--r-- | src/base/abci/abcDar.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c index 0bfd515e..4a74ad7e 100644 --- a/src/base/abci/abcDar.c +++ b/src/base/abci/abcDar.c @@ -2204,10 +2204,10 @@ int Abc_NtkDarDemiterDual( Abc_Ntk_t * pNtk, int fVerbose ) SeeAlso [] ***********************************************************************/ -int Abc_NtkDarProve( Abc_Ntk_t * pNtk, Fra_Sec_t * pSecPar ) +int Abc_NtkDarProve( Abc_Ntk_t * pNtk, Fra_Sec_t * pSecPar, int nBmcFramesMax, int nBmcConfMax ) { Aig_Man_t * pMan; - int RetValue = -1, clkTotal = clock(); + int iFrame = -1, RetValue = -1, clkTotal = clock(); if ( pSecPar->fTryComb || Abc_NtkLatchNum(pNtk) == 0 ) { Prove_Params_t Params, * pParams = &Params; @@ -2250,28 +2250,30 @@ int Abc_NtkDarProve( Abc_Ntk_t * pNtk, Fra_Sec_t * pSecPar ) return RetValue; } } + // derive the AIG manager + pMan = Abc_NtkToDar( pNtk, 0, 1 ); + if ( pMan == NULL ) + { + printf( "Converting miter into AIG has failed.\n" ); + return -1; + } + assert( pMan->nRegs > 0 ); + if ( pSecPar->fTryBmc ) { - RetValue = Abc_NtkDarBmc( pNtk, 0, 20, 100000, -1, 0, 2000, -1, 0, 1, 0, 0, NULL ); + RetValue = Saig_BmcPerform( pMan, 0, nBmcFramesMax, 2000, 0, nBmcConfMax, 0, pSecPar->fVerbose, 0, &iFrame ); if ( RetValue == 0 ) { printf( "Networks are not equivalent.\n" ); if ( pSecPar->fReportSolution ) { - printf( "SOLUTION: FAIL " ); - ABC_PRT( "Time", clock() - clkTotal ); + printf( "SOLUTION: FAIL " ); + ABC_PRT( "Time", clock() - clkTotal ); } + Aig_ManStop( pMan ); return RetValue; } } - // derive the AIG manager - pMan = Abc_NtkToDar( pNtk, 0, 1 ); - if ( pMan == NULL ) - { - printf( "Converting miter into AIG has failed.\n" ); - return -1; - } - assert( pMan->nRegs > 0 ); // perform verification if ( pSecPar->fUseNewProver ) { |