summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2015-09-18 09:50:22 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2015-09-18 09:50:22 -0700
commit815dfdc0c4d82467771cd7a9b0933bf4f87349ef (patch)
treef5a6fc1c99d60705c152ad4d40108dd63d397428 /src/base
parent37a5a36cf9b31b3a00ba90a11f1cb4d14c91d7d8 (diff)
downloadabc-815dfdc0c4d82467771cd7a9b0933bf4f87349ef.tar.gz
abc-815dfdc0c4d82467771cd7a9b0933bf4f87349ef.tar.bz2
abc-815dfdc0c4d82467771cd7a9b0933bf4f87349ef.zip
Adding switch to &b to prevent dumplicated area when used in delay-mode (&b -da).
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abci/abc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index e5b6e49d..ca0e2f33 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -29125,11 +29125,12 @@ int Abc_CommandAbc9Balance( Abc_Frame_t * pAbc, int argc, char ** argv )
int nNewNodesMax = ABC_INFINITY;
int fDelayOnly = 0;
int fSimpleAnd = 0;
+ int fStrict = 0;
int fKeepLevel = 0;
int c, fVerbose = 0;
int fVeryVerbose = 0;
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "Ndalvwh" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "Ndaslvwh" ) ) != EOF )
{
switch ( c )
{
@@ -29150,6 +29151,9 @@ int Abc_CommandAbc9Balance( Abc_Frame_t * pAbc, int argc, char ** argv )
case 'a':
fSimpleAnd ^= 1;
break;
+ case 's':
+ fStrict ^= 1;
+ break;
case 'l':
fKeepLevel ^= 1;
break;
@@ -29171,19 +29175,19 @@ int Abc_CommandAbc9Balance( Abc_Frame_t * pAbc, int argc, char ** argv )
return 1;
}
if ( fDelayOnly )
- pTemp = Gia_ManBalance( pAbc->pGia, fSimpleAnd, fVerbose );
+ pTemp = Gia_ManBalance( pAbc->pGia, fSimpleAnd, fStrict, fVerbose );
else
pTemp = Gia_ManAreaBalance( pAbc->pGia, fSimpleAnd, nNewNodesMax, fVerbose, fVeryVerbose );
Abc_FrameUpdateGia( pAbc, pTemp );
return 0;
usage:
- Abc_Print( -2, "usage: &b [-N num] [-davwh]\n" );
+ Abc_Print( -2, "usage: &b [-N num] [-dasvwh]\n" );
Abc_Print( -2, "\t performs AIG balancing to reduce delay and area\n" );
Abc_Print( -2, "\t-N num : the max fanout count to skip a divisor [default = %d]\n", nNewNodesMax );
Abc_Print( -2, "\t-d : toggle delay only balancing [default = %s]\n", fDelayOnly? "yes": "no" );
Abc_Print( -2, "\t-a : toggle using AND instead of AND/XOR/MUX [default = %s]\n", fSimpleAnd? "yes": "no" );
-// Abc_Print( -2, "\t-l : toggle level update during shrinking [default = %s]\n", fKeepLevel? "yes": "no" );
+ Abc_Print( -2, "\t-s : toggle strict control of area in delay-mode (\"&b -d\") [default = %s]\n", fStrict? "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 information [default = %s]\n", fVeryVerbose? "yes": "no" );
Abc_Print( -2, "\t-h : print the command usage\n");