summaryrefslogtreecommitdiffstats
path: root/src/base
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-06-19 19:12:10 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-06-19 19:12:10 -0700
commitf98f610bab81cefa651c69027550645c59bf4014 (patch)
treee10b5e48e3524c6438d942a4f9579d19fb0fcc43 /src/base
parent0c6f196e2aed5138e2b5887a88fc92ad5a545118 (diff)
downloadabc-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.c15
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;