summaryrefslogtreecommitdiffstats
path: root/src/base/abci/abcFxu.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-01-30 08:01:00 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2008-01-30 08:01:00 -0800
commit4d30a1e4f1edecff86d5066ce4653a370e59e5e1 (patch)
tree366355938a4af0a92f848841ac65374f338d691b /src/base/abci/abcFxu.c
parent6537f941887b06e588d3acfc97b5fdf48875cc4e (diff)
downloadabc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.gz
abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.tar.bz2
abc-4d30a1e4f1edecff86d5066ce4653a370e59e5e1.zip
Version abc80130
Diffstat (limited to 'src/base/abci/abcFxu.c')
-rw-r--r--src/base/abci/abcFxu.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/src/base/abci/abcFxu.c b/src/base/abci/abcFxu.c
index 45515dd1..3a70862f 100644
--- a/src/base/abci/abcFxu.c
+++ b/src/base/abci/abcFxu.c
@@ -30,7 +30,7 @@ static void Abc_NtkFxuCollectInfo( Abc_Ntk_t * pNtk, Fxu_Data_t * p );
static void Abc_NtkFxuReconstruct( Abc_Ntk_t * pNtk, Fxu_Data_t * p );
////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
+/// FUNCTION DEFITIONS ///
////////////////////////////////////////////////////////////////////////
@@ -53,19 +53,16 @@ static void Abc_NtkFxuReconstruct( Abc_Ntk_t * pNtk, Fxu_Data_t * p );
bool Abc_NtkFastExtract( Abc_Ntk_t * pNtk, Fxu_Data_t * p )
{
assert( Abc_NtkIsLogic(pNtk) );
- // if the network is already in the SOP form, it may come from BLIF file
- // and it may not be SCC-free, in which case FXU will not work correctly
- if ( Abc_NtkIsSopLogic(pNtk) )
+ // convert nodes to SOPs
+ if ( Abc_NtkIsMappedLogic(pNtk) )
+ Abc_NtkUnmap(pNtk);
+ else if ( Abc_NtkIsBddLogic(pNtk) )
+ Abc_NtkBddToSop(pNtk);
+ else
{ // to make sure the SOPs are SCC-free
// Abc_NtkSopToBdd(pNtk);
// Abc_NtkBddToSop(pNtk);
}
- // get the network in the SOP form
- if ( !Abc_NtkToSop(pNtk, 0) )
- {
- printf( "Abc_NtkFastExtract(): Converting to SOPs has failed.\n" );
- return 0;
- }
// check if the network meets the requirements
if ( !Abc_NtkFxuCheck(pNtk) )
{
@@ -111,7 +108,7 @@ bool Abc_NtkFxuCheck( Abc_Ntk_t * pNtk )
{
Abc_ObjForEachFanin( pNode, pFanin1, i )
{
- if ( i < 2 && Abc_ObjFaninC(pNode, i) )
+ if ( Abc_ObjFaninC(pNode, i) )
return 0;
Abc_ObjForEachFanin( pNode, pFanin2, k )
{