mirror of https://github.com/YosysHQ/abc.git
Procedures for sorting fanins of the nodes.
This commit is contained in:
parent
f02888635f
commit
51db560206
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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" );
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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 );
|
||||
|
|
|
|||
Loading…
Reference in New Issue