summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2011-06-20 22:23:32 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2011-06-20 22:23:32 -0700
commit4669839b245231c3e7c0a530831ed604b9802ee3 (patch)
tree7ceed32ee736f6236fd0ea0e31422bf4fe628cbd /src/base
parent6fd29922d347b05085814f4524b3fd6322578282 (diff)
downloadabc-4669839b245231c3e7c0a530831ed604b9802ee3.tar.gz
abc-4669839b245231c3e7c0a530831ed604b9802ee3.tar.bz2
abc-4669839b245231c3e7c0a530831ed604b9802ee3.zip
Added new mapping feature.
Diffstat (limited to 'src/base')
-rw-r--r--src/base/abci/abc.c24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index ae849424..035f0d4c 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -12878,7 +12878,7 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
fLutMux = 0;
Extra_UtilGetoptReset();
- while ( ( c = Extra_UtilGetopt( argc, argv, "KCFADEqaflepmrsdbugojvh" ) ) != EOF )
+ while ( ( c = Extra_UtilGetopt( argc, argv, "KCFADEqaflepmrsdbugojkvh" ) ) != EOF )
{
switch ( c )
{
@@ -12995,6 +12995,9 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
case 'j':
pPars->fEnableCheck ^= 1;
break;
+ case 'k':
+ pPars->fEnableCheck2 ^= 1;
+ break;
case 'v':
pPars->fVerbose ^= 1;
break;
@@ -13074,6 +13077,11 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->fCutMin = 1;
}
+ if ( pPars->fEnableCheck && pPars->fEnableCheck2 )
+ {
+ Abc_Print( -1, "These two checks cannot be enabled at the same time.\n" );
+ return 1;
+ }
if ( pPars->fEnableCheck )
{
if ( pPars->nLutSize < 6 || pPars->nLutSize > 7 )
@@ -13085,6 +13093,17 @@ int Abc_CommandIf( Abc_Frame_t * pAbc, int argc, char ** argv )
pPars->fCutMin = 1;
}
+ if ( pPars->fEnableCheck2 )
+ {
+ if ( pPars->nLutSize < 6 || pPars->nLutSize > 10 )
+ {
+ Abc_Print( -1, "This feature only works for {6,7,8,9,10}-LUTs.\n" );
+ return 1;
+ }
+ pPars->pFuncCell = If_CutPerformCheck10;
+ pPars->fCutMin = 1;
+ }
+
// enable truth table computation if cut minimization is selected
if ( pPars->fCutMin )
{
@@ -13162,7 +13181,7 @@ usage:
sprintf( LutSize, "library" );
else
sprintf( LutSize, "%d", pPars->nLutSize );
- Abc_Print( -2, "usage: if [-KCFA num] [-DE float] [-qarlepmsdbugojvh]\n" );
+ Abc_Print( -2, "usage: if [-KCFA num] [-DE float] [-qarlepmsdbugojkvh]\n" );
Abc_Print( -2, "\t performs FPGA technology mapping of the network\n" );
Abc_Print( -2, "\t-K num : the number of LUT inputs (2 < num < %d) [default = %s]\n", IF_MAX_LUTSIZE+1, LutSize );
Abc_Print( -2, "\t-C num : the max number of priority cuts (0 < num < 2^12) [default = %d]\n", pPars->nCutsMax );
@@ -13185,6 +13204,7 @@ usage:
Abc_Print( -2, "\t-g : toggles global delay optimization [default = %s]\n", pPars->fDelayOpt? "yes": "no" );
Abc_Print( -2, "\t-o : toggles using buffers to decouple combinational outputs [default = %s]\n", pPars->fUseBuffs? "yes": "no" );
Abc_Print( -2, "\t-j : toggles enabling additional check [default = %s]\n", pPars->fEnableCheck? "yes": "no" );
+ Abc_Print( -2, "\t-k : toggles enabling additional check [default = %s]\n", pPars->fEnableCheck2? "yes": "no" );
Abc_Print( -2, "\t-v : toggles verbose output [default = %s]\n", pPars->fVerbose? "yes": "no" );
Abc_Print( -2, "\t-h : prints the command usage\n");
return 1;