diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-31 00:56:10 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-31 00:56:10 -0700 |
commit | ba309121d7f1dbc9071a552d459bcaa6be7da31b (patch) | |
tree | 7f3ea333501cc141d854ecf086890a22c442f271 /src/base | |
parent | 338845a21da672285705b9aae333768f2ba5dd96 (diff) | |
download | abc-ba309121d7f1dbc9071a552d459bcaa6be7da31b.tar.gz abc-ba309121d7f1dbc9071a552d459bcaa6be7da31b.tar.bz2 abc-ba309121d7f1dbc9071a552d459bcaa6be7da31b.zip |
New MFS package.
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/abci/abc.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index 07a7207d..ac4a8efa 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -4491,7 +4491,7 @@ int Abc_CommandMfs2( Abc_Frame_t * pAbc, int argc, char ** argv ) // set defaults Sfm_ParSetDefault( pPars ); Extra_UtilGetoptReset(); - while ( ( c = Extra_UtilGetopt( argc, argv, "WFDMCZdlaevwh" ) ) != EOF ) + while ( ( c = Extra_UtilGetopt( argc, argv, "WFDMLCZdlaevwh" ) ) != EOF ) { switch ( c ) { @@ -4539,6 +4539,17 @@ int Abc_CommandMfs2( Abc_Frame_t * pAbc, int argc, char ** argv ) if ( pPars->nWinSizeMax < 0 ) goto usage; break; + case 'L': + if ( globalUtilOptind >= argc ) + { + Abc_Print( -1, "Command line switch \"-L\" should be followed by an integer.\n" ); + goto usage; + } + pPars->nGrowthLevel = atoi(argv[globalUtilOptind]); + globalUtilOptind++; + if ( pPars->nGrowthLevel < 0 || pPars->nGrowthLevel > ABC_INFINITY ) + goto usage; + break; case 'C': if ( globalUtilOptind >= argc ) { @@ -4604,12 +4615,13 @@ int Abc_CommandMfs2( Abc_Frame_t * pAbc, int argc, char ** argv ) return 0; usage: - Abc_Print( -2, "usage: mfs2 [-WFDMCZ <num>] [-dlaevwh]\n" ); + Abc_Print( -2, "usage: mfs2 [-WFDMLCZ <num>] [-dlaevwh]\n" ); Abc_Print( -2, "\t performs don't-care-based optimization of logic networks\n" ); Abc_Print( -2, "\t-W <num> : the number of levels in the TFO cone (0 <= num) [default = %d]\n", pPars->nTfoLevMax ); Abc_Print( -2, "\t-F <num> : the max number of fanouts to skip (1 <= num) [default = %d]\n", pPars->nFanoutMax ); Abc_Print( -2, "\t-D <num> : the max depth nodes to try (0 = no limit) [default = %d]\n", pPars->nDepthMax ); Abc_Print( -2, "\t-M <num> : the max node count of windows to consider (0 = no limit) [default = %d]\n", pPars->nWinSizeMax ); + Abc_Print( -2, "\t-L <num> : the max increase in node level after resynthesis (0 <= num) [default = %d]\n", pPars->nGrowthLevel ); Abc_Print( -2, "\t-C <num> : the max number of conflicts in one SAT run (0 = no limit) [default = %d]\n", pPars->nBTLimit ); Abc_Print( -2, "\t-Z <num> : treat the first <num> logic nodes as fixed (0 = none) [default = %d]\n", pPars->nFirstFixed ); Abc_Print( -2, "\t-d : toggle performing redundancy removal [default = %s]\n", pPars->fRrOnly? "yes": "no" ); |