summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2014-03-16 22:12:17 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2014-03-16 22:12:17 -0700
commit12c8a54cfff5ecd6a407651fdab37d2a81d00bb4 (patch)
tree2d0319d1a778018b51516f7618662956794cf3d6
parent89eed1aaf95ae9f2682c7b801d02954e5e3b8c7b (diff)
downloadabc-12c8a54cfff5ecd6a407651fdab37d2a81d00bb4.tar.gz
abc-12c8a54cfff5ecd6a407651fdab37d2a81d00bb4.tar.bz2
abc-12c8a54cfff5ecd6a407651fdab37d2a81d00bb4.zip
Adding barrier buffers.
-rw-r--r--src/base/abc/abcBarBuf.c2
-rw-r--r--src/base/abc/abcNtk.c4
-rw-r--r--src/base/abci/abcDar.c5
3 files changed, 9 insertions, 2 deletions
diff --git a/src/base/abc/abcBarBuf.c b/src/base/abc/abcBarBuf.c
index 856b9f96..52c10ccf 100644
--- a/src/base/abc/abcBarBuf.c
+++ b/src/base/abc/abcBarBuf.c
@@ -271,8 +271,6 @@ Abc_Ntk_t * Abc_NtkFromBarBufsInt( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtk, int f
Abc_ObjFanout0(Abc_ObjFanout0(pLatch))->pCopy = pNet->pCopy;
}
}
- Abc_NtkForEachLatch( pNtk, pObj, i )
- assert( Abc_ObjFanout0(Abc_ObjFanout0(pLatch))->pCopy != NULL );
// build PO cones
if ( fRoot )
{
diff --git a/src/base/abc/abcNtk.c b/src/base/abc/abcNtk.c
index 07ee429b..4567d332 100644
--- a/src/base/abc/abcNtk.c
+++ b/src/base/abc/abcNtk.c
@@ -113,6 +113,7 @@ Abc_Ntk_t * Abc_NtkStartFrom( Abc_Ntk_t * pNtk, Abc_NtkType_t Type, Abc_NtkFunc_
// start the network
pNtkNew = Abc_NtkAlloc( Type, Func, 1 );
pNtkNew->nConstrs = pNtk->nConstrs;
+ pNtkNew->nBarBufs = pNtk->nBarBufs;
// duplicate the name and the spec
pNtkNew->pName = Extra_UtilStrsav(pNtk->pName);
pNtkNew->pSpec = Extra_UtilStrsav(pNtk->pSpec);
@@ -178,6 +179,7 @@ Abc_Ntk_t * Abc_NtkStartFromWithLatches( Abc_Ntk_t * pNtk, Abc_NtkType_t Type, A
// start the network
pNtkNew = Abc_NtkAlloc( Type, Func, 1 );
pNtkNew->nConstrs = pNtk->nConstrs;
+ pNtkNew->nBarBufs = pNtk->nBarBufs;
// duplicate the name and the spec
pNtkNew->pName = Extra_UtilStrsav(pNtk->pName);
pNtkNew->pSpec = Extra_UtilStrsav(pNtk->pSpec);
@@ -252,6 +254,7 @@ Abc_Ntk_t * Abc_NtkStartFromNoLatches( Abc_Ntk_t * pNtk, Abc_NtkType_t Type, Abc
// start the network
pNtkNew = Abc_NtkAlloc( Type, Func, 1 );
pNtkNew->nConstrs = pNtk->nConstrs;
+ pNtkNew->nBarBufs = pNtk->nBarBufs;
// duplicate the name and the spec
pNtkNew->pName = Extra_UtilStrsav(pNtk->pName);
pNtkNew->pSpec = Extra_UtilStrsav(pNtk->pSpec);
@@ -564,6 +567,7 @@ Abc_Ntk_t * Abc_NtkDupTransformMiter( Abc_Ntk_t * pNtk )
// start the network
pNtkNew = Abc_NtkAlloc( pNtk->ntkType, pNtk->ntkFunc, 1 );
pNtkNew->nConstrs = pNtk->nConstrs;
+ pNtkNew->nBarBufs = pNtk->nBarBufs;
// duplicate the name and the spec
pNtkNew->pName = Extra_UtilStrsav(pNtk->pName);
pNtkNew->pSpec = Extra_UtilStrsav(pNtk->pSpec);
diff --git a/src/base/abci/abcDar.c b/src/base/abci/abcDar.c
index 4800557a..22d4fdff 100644
--- a/src/base/abci/abcDar.c
+++ b/src/base/abci/abcDar.c
@@ -417,6 +417,7 @@ Abc_Ntk_t * Abc_NtkFromDar( Abc_Ntk_t * pNtkOld, Aig_Man_t * pMan )
// perform strashing
pNtkNew = Abc_NtkStartFrom( pNtkOld, ABC_NTK_STRASH, ABC_FUNC_AIG );
pNtkNew->nConstrs = pMan->nConstrs;
+ pNtkNew->nBarBufs = pNtkOld->nBarBufs;
// transfer the pointers to the basic nodes
Aig_ManConst1(pMan)->pData = Abc_AigConst1(pNtkNew);
Aig_ManForEachCi( pMan, pObj, i )
@@ -467,6 +468,7 @@ Abc_Ntk_t * Abc_NtkFromDarSeqSweep( Abc_Ntk_t * pNtkOld, Aig_Man_t * pMan )
Aig_Obj_t * pObj, * pObjLo, * pObjLi;
int i, iNodeId, nDigits;
assert( pMan->nAsserts == 0 );
+ assert( pNtkOld->nBarBufs == 0 );
// assert( Aig_ManRegNum(pMan) != Abc_NtkLatchNum(pNtkOld) );
// perform strashing
pNtkNew = Abc_NtkStartFromNoLatches( pNtkOld, ABC_NTK_STRASH, ABC_FUNC_AIG );
@@ -811,6 +813,7 @@ Abc_Ntk_t * Abc_NtkAfterTrim( Aig_Man_t * pMan, Abc_Ntk_t * pNtkOld )
Aig_Obj_t * pObj, * pObjLo, * pObjLi;
int i;
assert( pMan->nAsserts == 0 );
+ assert( pNtkOld->nBarBufs == 0 );
assert( Aig_ManRegNum(pMan) <= Abc_NtkLatchNum(pNtkOld) );
assert( Saig_ManPiNum(pMan) <= Abc_NtkCiNum(pNtkOld) );
assert( Saig_ManPoNum(pMan) == Abc_NtkPoNum(pNtkOld) );
@@ -899,6 +902,7 @@ Abc_Ntk_t * Abc_NtkFromDarChoices( Abc_Ntk_t * pNtkOld, Aig_Man_t * pMan )
// perform strashing
pNtkNew = Abc_NtkStartFrom( pNtkOld, ABC_NTK_STRASH, ABC_FUNC_AIG );
pNtkNew->nConstrs = pMan->nConstrs;
+ pNtkNew->nBarBufs = pNtkOld->nBarBufs;
// transfer the pointers to the basic nodes
Aig_ManCleanData( pMan );
Aig_ManConst1(pMan)->pData = Abc_AigConst1(pNtkNew);
@@ -956,6 +960,7 @@ Abc_Ntk_t * Abc_NtkFromDarSeq( Abc_Ntk_t * pNtkOld, Aig_Man_t * pMan )
Aig_Obj_t * pObj;
int i;
// assert( Aig_ManLatchNum(pMan) > 0 );
+ assert( pNtkOld->nBarBufs == 0 );
// perform strashing
pNtkNew = Abc_NtkStartFromNoLatches( pNtkOld, ABC_NTK_STRASH, ABC_FUNC_AIG );
pNtkNew->nConstrs = pMan->nConstrs;