diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2014-06-19 19:12:10 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2014-06-19 19:12:10 -0700 |
commit | f98f610bab81cefa651c69027550645c59bf4014 (patch) | |
tree | e10b5e48e3524c6438d942a4f9579d19fb0fcc43 /src/base | |
parent | 0c6f196e2aed5138e2b5887a88fc92ad5a545118 (diff) | |
download | abc-f98f610bab81cefa651c69027550645c59bf4014.tar.gz abc-f98f610bab81cefa651c69027550645c59bf4014.tar.bz2 abc-f98f610bab81cefa651c69027550645c59bf4014.zip |
Added delay-oriented balancing to unmapping in &st.
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/abci/abc.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index cd945086..118136bd 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -25709,7 +25709,12 @@ int Abc_CommandAbc9Strash( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -1, "Abc_CommandAbc9Strash(): There is no AIG.\n" ); return 1; } - if ( fAddMuxes ) + if ( Gia_ManHasMapping(pAbc->pGia) ) + { + pTemp = (Gia_Man_t *)Dsm_ManDeriveGia( pAbc->pGia, fAddMuxes ); + printf( "Performed delay-oriented unmapping.\n" ); + } + else if ( fAddMuxes ) { if ( pAbc->pGia->pMuxes ) { @@ -25717,6 +25722,7 @@ int Abc_CommandAbc9Strash( Abc_Frame_t * pAbc, int argc, char ** argv ) return 1; } pTemp = Gia_ManDupMuxes( pAbc->pGia, Limit ); + printf( "Generated AND/XOR/MUX graph.\n" ); } else if ( fCollapse && pAbc->pGia->pAigExtra ) { @@ -25725,11 +25731,18 @@ int Abc_CommandAbc9Strash( Abc_Frame_t * pAbc, int argc, char ** argv ) pTemp = Gia_ManDupCollapse( pNew, pAbc->pGia->pAigExtra, NULL ); pNew->pManTime = NULL; Gia_ManStop( pNew ); + printf( "Collapsed AIG with boxes with logic of the boxes.\n" ); } else if ( pAbc->pGia->pMuxes ) + { pTemp = Gia_ManDupNoMuxes( pAbc->pGia ); + printf( "Generated AIG from AND/XOR/MUX graph.\n" ); + } else + { pTemp = Gia_ManRehash( pAbc->pGia, fAddStrash ); + printf( "Rehashed the current AIG.\n" ); + } Abc_FrameUpdateGia( pAbc, pTemp ); return 0; |