Commit ecdcfbba by Alan Mishchenko

Making 'fold' and 'unfold' skip constant POs (fixed).

parent 681483c9
...@@ -283,7 +283,7 @@ Aig_Man_t * Saig_ManDupUnfoldConstrs( Aig_Man_t * pAig ) ...@@ -283,7 +283,7 @@ Aig_Man_t * Saig_ManDupUnfoldConstrs( Aig_Man_t * pAig )
vConsAll = Vec_PtrAlloc( Saig_ManPoNum(pAig) ); vConsAll = Vec_PtrAlloc( Saig_ManPoNum(pAig) );
Saig_ManForEachPo( pAig, pObj, i ) Saig_ManForEachPo( pAig, pObj, i )
{ {
if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) ) if ( Aig_ObjChild0(pObj) == Aig_ManConst0(pAig) )
continue; continue;
RetValue = Saig_ManDetectConstr( pAig, i, &vOuts, &vCons ); RetValue = Saig_ManDetectConstr( pAig, i, &vOuts, &vCons );
if ( RetValue == 0 ) if ( RetValue == 0 )
...@@ -394,9 +394,10 @@ Aig_Man_t * Saig_ManDupFoldConstrs( Aig_Man_t * pAig, Vec_Int_t * vConstrs ) ...@@ -394,9 +394,10 @@ Aig_Man_t * Saig_ManDupFoldConstrs( Aig_Man_t * pAig, Vec_Int_t * vConstrs )
// create primary output // create primary output
Saig_ManForEachPo( pAig, pObj, i ) Saig_ManForEachPo( pAig, pObj, i )
{ {
if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) ) if ( Aig_ObjChild0(pObj) == Aig_ManConst0(pAig) ) // the output is a constant 0
continue; pMiter = Aig_ObjChild0Copy(pObj);
pMiter = Aig_And( pAigNew, Aig_ObjChild0Copy(pObj), Aig_Not(pFlopIn) ); else
pMiter = Aig_And( pAigNew, Aig_ObjChild0Copy(pObj), Aig_Not(pFlopIn) );
Aig_ObjCreateCo( pAigNew, pMiter ); Aig_ObjCreateCo( pAigNew, pMiter );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment