diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-06 18:51:48 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2013-05-06 18:51:48 -0700 |
commit | 51db560206d030e3f0b7628169a92ce58c601db7 (patch) | |
tree | bf5e6353ad4d52140c58f629c93895adcebad412 | |
parent | f02888635fe2231cb7bb9cad2a763ecbaee325f6 (diff) | |
download | abc-51db560206d030e3f0b7628169a92ce58c601db7.tar.gz abc-51db560206d030e3f0b7628169a92ce58c601db7.tar.bz2 abc-51db560206d030e3f0b7628169a92ce58c601db7.zip |
Procedures for sorting fanins of the nodes.
-rw-r--r-- | src/base/abc/abcFunc.c | 4 | ||||
-rw-r--r-- | src/base/abci/abc.c | 6 | ||||
-rw-r--r-- | src/base/abci/abcDsd.c | 11 |
3 files changed, 15 insertions, 6 deletions
diff --git a/src/base/abc/abcFunc.c b/src/base/abc/abcFunc.c index c4437fbb..da096741 100644 --- a/src/base/abc/abcFunc.c +++ b/src/base/abc/abcFunc.c @@ -356,6 +356,7 @@ char * Abc_ConvertBddToSop( Mem_Flex_t * pMan, DdManager * dd, DdNode * bFuncOn, ***********************************************************************/ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk, int fDirect ) { + extern void Abc_NtkSortSops( Abc_Ntk_t * pNtk ); Abc_Obj_t * pNode; Mem_Flex_t * pManNew; DdManager * dd = (DdManager *)pNtk->pManFunc; @@ -406,6 +407,9 @@ int Abc_NtkBddToSop( Abc_Ntk_t * pNtk, int fDirect ) // check for remaining references in the package Extra_StopManager( dd ); + + // reorder fanins and cubes to make SOPs more human-readable + Abc_NtkSortSops( pNtk ); return 1; } diff --git a/src/base/abci/abc.c b/src/base/abci/abc.c index d30010fa..d7e36cfa 100644 --- a/src/base/abci/abc.c +++ b/src/base/abci/abc.c @@ -3856,7 +3856,8 @@ int Abc_CommandDisjoint( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -1, "This command is only applicable to logic BDD networks.\n" ); return 1; } - Abc_Print( 1, "Performing recursive DSD and MUX decomposition of local functions.\n" ); + if ( fVerbose ) + Abc_Print( 1, "Performing recursive DSD and MUX decomposition of local functions.\n" ); if ( !Abc_NtkDsdLocal( pNtk, fVerbose, fRecursive ) ) Abc_Print( -1, "Recursive DSD has failed.\n" ); } @@ -3867,7 +3868,8 @@ int Abc_CommandDisjoint( Abc_Frame_t * pAbc, int argc, char ** argv ) Abc_Print( -1, "This command is only applicable to logic BDD networks (run \"bdd\").\n" ); return 1; } - Abc_Print( 1, "Performing simple non-recursive DSD of local functions.\n" ); + if ( fVerbose ) + Abc_Print( 1, "Performing simple non-recursive DSD of local functions.\n" ); if ( !Abc_NtkDsdLocal( pNtk, fVerbose, fRecursive ) ) Abc_Print( -1, "Simple DSD of local functions has failed.\n" ); } diff --git a/src/base/abci/abcDsd.c b/src/base/abci/abcDsd.c index 24496145..78b160e0 100644 --- a/src/base/abci/abcDsd.c +++ b/src/base/abci/abcDsd.c @@ -332,10 +332,13 @@ int Abc_NtkDsdLocal( Abc_Ntk_t * pNtk, int fVerbose, int fRecursive ) Abc_NodeDecompDsdAndMux( (Abc_Obj_t *)vNodes->pArray[i], vNodes, pManDsd, fRecursive, pCounters ); Vec_PtrFree( vNodes ); - printf( "Number of non-decomposable functions:\n" ); - for ( i = 3; i < 10; i++ ) - printf( "Inputs = %d. Functions = %6d.\n", i, pCounters[i] ); - printf( "Inputs > %d. Functions = %6d.\n", 9, pCounters[10] ); + if ( fVerbose ) + { + printf( "Number of non-decomposable functions:\n" ); + for ( i = 3; i < 10; i++ ) + printf( "Inputs = %d. Functions = %6d.\n", i, pCounters[i] ); + printf( "Inputs > %d. Functions = %6d.\n", 9, pCounters[10] ); + } // stop the DSD manager Dsd_ManagerStop( pManDsd ); |