summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/base/abc/abcFunc.c4
-rw-r--r--src/base/abci/abc.c6
-rw-r--r--src/base/abci/abcDsd.c11
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 );