summaryrefslogtreecommitdiffstats
path: root/src/base/abc/abcUtil.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/base/abc/abcUtil.c')
-rw-r--r--src/base/abc/abcUtil.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/base/abc/abcUtil.c b/src/base/abc/abcUtil.c
index 368bcaa0..540fd78c 100644
--- a/src/base/abc/abcUtil.c
+++ b/src/base/abc/abcUtil.c
@@ -2072,7 +2072,7 @@ Abc_Obj_t * Abc_NtkAddBuffsOne( Vec_Ptr_t * vBuffs, Abc_Obj_t * pFanin, int Leve
}
return pBuffer;
}
-Abc_Ntk_t * Abc_NtkAddBuffs( Abc_Ntk_t * pNtkInit, int fReverse, int nImprove, int fVerbose )
+Abc_Ntk_t * Abc_NtkAddBuffsInt( Abc_Ntk_t * pNtkInit, int fReverse, int nImprove, int fVerbose )
{
Vec_Ptr_t * vBuffs;
Abc_Ntk_t * pNtk = Abc_NtkDup( pNtkInit );
@@ -2120,7 +2120,7 @@ Abc_Ntk_t * Abc_NtkAddBuffs( Abc_Ntk_t * pNtkInit, int fReverse, int nImprove, i
}
}
if ( fVerbose )
- printf( "Shifted %d nodes down with total gain %d.\n", Counter, TotalGain );
+ printf( "Shifted %5d nodes down with total gain %5d.\n", Counter, TotalGain );
if ( Counter == 0 )
break;
}
@@ -2155,7 +2155,7 @@ Abc_Ntk_t * Abc_NtkAddBuffs( Abc_Ntk_t * pNtkInit, int fReverse, int nImprove, i
}
}
if ( fVerbose )
- printf( "Shifted %d nodes up with total gain %d.\n", Counter, TotalGain );
+ printf( "Shifted %5d nodes up with total gain %5d.\n", Counter, TotalGain );
if ( Counter == 0 )
break;
}
@@ -2182,6 +2182,27 @@ Abc_Ntk_t * Abc_NtkAddBuffs( Abc_Ntk_t * pNtkInit, int fReverse, int nImprove, i
pObj->Level = 0;
return pNtk;
}
+Abc_Ntk_t * Abc_NtkAddBuffs( Abc_Ntk_t * pNtkInit, int fDirect, int fReverse, int nImprove, int fVerbose )
+{
+ Abc_Ntk_t * pNtkD, * pNtkR;
+ if ( fDirect )
+ return Abc_NtkAddBuffsInt( pNtkInit, 0, nImprove, fVerbose );
+ if ( fReverse )
+ return Abc_NtkAddBuffsInt( pNtkInit, 1, nImprove, fVerbose );
+ pNtkD = Abc_NtkAddBuffsInt( pNtkInit, 0, nImprove, fVerbose );
+ pNtkR = Abc_NtkAddBuffsInt( pNtkInit, 1, nImprove, fVerbose );
+ if ( Abc_NtkNodeNum(pNtkD) < Abc_NtkNodeNum(pNtkR) )
+ {
+ Abc_NtkDelete( pNtkR );
+ return pNtkD;
+ }
+ else
+ {
+ Abc_NtkDelete( pNtkD );
+ return pNtkR;
+ }
+}
+
/**Function*************************************************************