Making 'fold' and 'unfold' skip constant POs.

This commit is contained in:
Alan Mishchenko 2013-12-03 00:03:09 -08:00
parent 08bb54f382
commit a3bc77cd7b
1 changed files with 4 additions and 0 deletions

View File

@ -283,6 +283,8 @@ Aig_Man_t * Saig_ManDupUnfoldConstrs( Aig_Man_t * pAig )
vConsAll = Vec_PtrAlloc( Saig_ManPoNum(pAig) );
Saig_ManForEachPo( pAig, pObj, i )
{
if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) )
continue;
RetValue = Saig_ManDetectConstr( pAig, i, &vOuts, &vCons );
if ( RetValue == 0 )
{
@ -392,6 +394,8 @@ Aig_Man_t * Saig_ManDupFoldConstrs( Aig_Man_t * pAig, Vec_Int_t * vConstrs )
// create primary output
Saig_ManForEachPo( pAig, pObj, i )
{
if ( Aig_ObjFanin0(pObj) == Aig_ManConst1(pAig) )
continue;
pMiter = Aig_And( pAigNew, Aig_ObjChild0Copy(pObj), Aig_Not(pFlopIn) );
Aig_ObjCreateCo( pAigNew, pMiter );
}