diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-04-04 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-04-04 08:01:00 -0700 |
commit | ef20b0c5336e28a3e09db9f0accfc072db1559cc (patch) | |
tree | bc987400745412e23fa7d55cbab0d5a23294e9e6 /src/aig/dar/darBalance.c | |
parent | 69b5bcad56f9352eea80d3e9b5e1322782522059 (diff) | |
download | abc-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.c | 12 |
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 ); |