summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-01-07 09:51:38 +0700
committerAlan Mishchenko <alanmi@berkeley.edu>2017-01-07 09:51:38 +0700
commit3dd2325aa8572bbe0689a537101f138a0c7b8c87 (patch)
tree56b49c98b36a2cb078004411a029f344f1d16832
parent460167ec747aed778bfc13f2040dd8a205169fa2 (diff)
downloadabc-3dd2325aa8572bbe0689a537101f138a0c7b8c87.tar.gz
abc-3dd2325aa8572bbe0689a537101f138a0c7b8c87.tar.bz2
abc-3dd2325aa8572bbe0689a537101f138a0c7b8c87.zip
Adding an option to not add buffers to decouple COs driven by the same internal node.
-rw-r--r--src/base/abc/abcUtil.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/base/abc/abcUtil.c b/src/base/abc/abcUtil.c
index f01ef07a..dd3a75b7 100644
--- a/src/base/abc/abcUtil.c
+++ b/src/base/abc/abcUtil.c
@@ -1077,6 +1077,7 @@ void Abc_NtkLogicMakeSimpleCosTest( Abc_Ntk_t * pNtk, int fDuplicate )
***********************************************************************/
int Abc_NtkLogicMakeSimpleCos( Abc_Ntk_t * pNtk, int fDuplicate )
{
+ int fAddBuffers = 1;
Vec_Ptr_t * vDrivers, * vCoTerms;
Abc_Obj_t * pNode, * pDriver, * pDriverNew, * pFanin;
int i, k, LevelMax, nTotal = 0;
@@ -1191,6 +1192,12 @@ int Abc_NtkLogicMakeSimpleCos( Abc_Ntk_t * pNtk, int fDuplicate )
// collect COs that needs fixing by adding buffers or duplicating
vCoTerms = Vec_PtrAlloc( 100 );
Abc_NtkIncrementTravId( pNtk );
+
+ // The following cases should be addressed only if the network is written
+ // into a BLIF file. Otherwise, it is possible to skip them:
+ // (1) if a CO points to a CI with a different name
+ // (2) if an internal node drives more than one CO
+ if ( fAddBuffers )
Abc_NtkForEachCo( pNtk, pNode, i )
{
// if the driver is a CI and has different name, this is an error