diff options
-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 ); |