summaryrefslogtreecommitdiffstats
path: root/src/aig/dar/darBalance.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2008-04-04 08:01:00 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2008-04-04 08:01:00 -0700
commitef20b0c5336e28a3e09db9f0accfc072db1559cc (patch)
treebc987400745412e23fa7d55cbab0d5a23294e9e6 /src/aig/dar/darBalance.c
parent69b5bcad56f9352eea80d3e9b5e1322782522059 (diff)
downloadabc-ef20b0c5336e28a3e09db9f0accfc072db1559cc.tar.gz
abc-ef20b0c5336e28a3e09db9f0accfc072db1559cc.tar.bz2
abc-ef20b0c5336e28a3e09db9f0accfc072db1559cc.zip
Version abc80404
Diffstat (limited to 'src/aig/dar/darBalance.c')
-rw-r--r--src/aig/dar/darBalance.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/aig/dar/darBalance.c b/src/aig/dar/darBalance.c
index 574c72d9..5c9a144f 100644
--- a/src/aig/dar/darBalance.c
+++ b/src/aig/dar/darBalance.c
@@ -199,6 +199,14 @@ void Dar_BalancePermute( Aig_Man_t * p, Vec_Ptr_t * vSuper, int LeftBound, int f
Vec_PtrWriteEntry( vSuper, RightBound, pObj3 );
return;
}
+ if ( Aig_Regular(pObj1) == Aig_Regular(pObj3) )
+ {
+ if ( pObj3 == pObj2 )
+ return;
+ Vec_PtrWriteEntry( vSuper, i, pObj2 );
+ Vec_PtrWriteEntry( vSuper, RightBound, pObj3 );
+ return;
+ }
pGhost = Aig_ObjCreateGhost( p, pObj1, pObj3, fExor? AIG_OBJ_EXOR : AIG_OBJ_AND );
if ( Aig_TableLookup( p, pGhost ) )
{
@@ -394,7 +402,7 @@ Aig_Man_t * Dar_ManBalance( Aig_Man_t * p, int fUpdateLevel )
pObjNew = Aig_ObjCreatePi(pNew);
pObj->pData = pObjNew;
// set the arrival time of the new PI
- arrTime = Tim_ManGetPiArrival( p->pManTime, Aig_ObjPioNum(pObj) );
+ arrTime = Tim_ManGetCiArrival( p->pManTime, Aig_ObjPioNum(pObj) );
pObjNew->Level = (int)arrTime;
}
else if ( Aig_ObjIsPo(pObj) )
@@ -406,7 +414,7 @@ Aig_Man_t * Dar_ManBalance( Aig_Man_t * p, int fUpdateLevel )
Aig_ObjCreatePo( pNew, pObjNew );
// save arrival time of the output
arrTime = (float)Aig_Regular(pObjNew)->Level;
- Tim_ManSetPoArrival( p->pManTime, Aig_ObjPioNum(pObj), arrTime );
+ Tim_ManSetCoArrival( p->pManTime, Aig_ObjPioNum(pObj), arrTime );
}
else
assert( 0 );