summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-08-27 23:17:33 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-08-27 23:17:33 -0700
commit70a236379bb647ed6ada8b9381d182fab1d74d84 (patch)
tree5c839775b6668747719f5dcfd5b43197f2dbe69c
parent17343bf144fc1f4e0f291883fe3cef7e89947747 (diff)
downloadabc-70a236379bb647ed6ada8b9381d182fab1d74d84.tar.gz
abc-70a236379bb647ed6ada8b9381d182fab1d74d84.tar.bz2
abc-70a236379bb647ed6ada8b9381d182fab1d74d84.zip
Tuning LUT mapping flow.
-rw-r--r--src/aig/gia/giaSopb.c8
-rw-r--r--src/base/abci/abc.c2
2 files changed, 6 insertions, 4 deletions
diff --git a/src/aig/gia/giaSopb.c b/src/aig/gia/giaSopb.c
index 96a28e56..36c9d725 100644
--- a/src/aig/gia/giaSopb.c
+++ b/src/aig/gia/giaSopb.c
@@ -348,7 +348,7 @@ void Gia_ManPerformMap( int nAnds, int nLutSize, int nCutNum, int fVerbose )
printf( "Mapping with &lf:\n" );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "&ps" );
}
- if ( nAnds < 100000 )
+ if ( (nLutSize == 4 && nAnds < 100000) || (nLutSize == 6 && nAnds < 2000) )
{
sprintf( Command, "&unmap; &if -sz -S %d%d -K %d -C %d", nLutSize, nLutSize, 2*nLutSize-1, 2*nCutNum );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), Command );
@@ -375,26 +375,28 @@ void Gia_ManPerformRound( int fIsMapped, int nAnds, int nLevels, int nLutSize, i
if ( nAnds < 50000 )
{
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "" );
- sprintf( Command, "&dsdb; &dch -f; &if -K %d -C %d; &save; &st", nLutSize, nCutNum );
+ sprintf( Command, "&dsdb; &dch -f; &if -K %d -C %d; &save", nLutSize, nCutNum );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), Command );
if ( fVerbose )
{
printf( "Mapping with &dch -f; &if -K %d -C %d:\n", nLutSize, nCutNum );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "&ps" );
}
+ Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "&st" );
}
// perform AIG-based synthesis
if ( nAnds < 20000 )
{
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "" );
- sprintf( Command, "&dsdb; &dch -f; &if -K %d -C %d; &save; &st", nLutSize, nCutNum );
+ sprintf( Command, "&dsdb; &dch -f; &if -K %d -C %d; &save", nLutSize, nCutNum );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), Command );
if ( fVerbose )
{
printf( "Mapping with &dch -f; &if -K %d -C %d:\n", nLutSize, nCutNum );
Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "&ps" );
}
+ Cmd_CommandExecute( Abc_FrameGetGlobalFrame(), "&st" );
}
// perform first round of mapping
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c
index 713e3104..44246a2f 100644
--- a/src/base/abci/abc.c
+++ b/src/base/abci/abc.c
@@ -25552,7 +25552,7 @@ int Abc_CommandAbc9Save( Abc_Frame_t * pAbc, int argc, char ** argv )
}
if ( !Gia_ManHasMapping(pAbc->pGia) )
{
- Abc_Print( -1, "GIA has not mapping.\n" );
+ Abc_Print( -1, "GIA has no mapping.\n" );
return 1;
}
if ( !Gia_ManCompareWithBest( pAbc->pGiaBest, pAbc->pGia, &pAbc->nBestLuts, &pAbc->nBestEdges, &pAbc->nBestLevels ) )