diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2008-09-12 08:01:00 -0700 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2008-09-12 08:01:00 -0700 |
commit | 75d6d6abd1ccbfeb2ac6e156a015d9888a5727e7 (patch) | |
tree | 5647b0e935c334c2b26b946bafb235f73892e245 /src/aig/saig/saigMiter.c | |
parent | 4db86550728b9c5ffeed4a158faf19afd6518b42 (diff) | |
download | abc-75d6d6abd1ccbfeb2ac6e156a015d9888a5727e7.tar.gz abc-75d6d6abd1ccbfeb2ac6e156a015d9888a5727e7.tar.bz2 abc-75d6d6abd1ccbfeb2ac6e156a015d9888a5727e7.zip |
Version abc80912
Diffstat (limited to 'src/aig/saig/saigMiter.c')
-rw-r--r-- | src/aig/saig/saigMiter.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/aig/saig/saigMiter.c b/src/aig/saig/saigMiter.c index 0c547257..5b18db6e 100644 --- a/src/aig/saig/saigMiter.c +++ b/src/aig/saig/saigMiter.c @@ -48,6 +48,7 @@ Aig_Man_t * Saig_ManCreateMiter( Aig_Man_t * p1, Aig_Man_t * p2, int Oper ) assert( Saig_ManPiNum(p1) == Saig_ManPiNum(p2) ); assert( Saig_ManPoNum(p1) == Saig_ManPoNum(p2) ); pNew = Aig_ManStart( Aig_ManObjNumMax(p1) + Aig_ManObjNumMax(p2) ); + pNew->pName = Aig_UtilStrsav( "miter" ); // map constant nodes Aig_ManConst1(p1)->pData = Aig_ManConst1(pNew); Aig_ManConst1(p2)->pData = Aig_ManConst1(pNew); @@ -88,6 +89,40 @@ Aig_Man_t * Saig_ManCreateMiter( Aig_Man_t * p1, Aig_Man_t * p2, int Oper ) return pNew; } +/**Function************************************************************* + + Synopsis [Duplicates the AIG to have constant-0 initial state.] + + Description [] + + SideEffects [] + + SeeAlso [] + +***********************************************************************/ +Aig_Man_t * Saig_ManDupInitZero( Aig_Man_t * p ) +{ + Aig_Man_t * pNew; + Aig_Obj_t * pObj; + int i; + pNew = Aig_ManStart( Aig_ManObjNumMax(p) ); + pNew->pName = Aig_UtilStrsav( p->pName ); + Aig_ManConst1(p)->pData = Aig_ManConst1(pNew); + Saig_ManForEachPi( p, pObj, i ) + pObj->pData = Aig_ObjCreatePi( pNew ); + Saig_ManForEachLo( p, pObj, i ) + pObj->pData = Aig_NotCond( Aig_ObjCreatePi( pNew ), pObj->fMarkA ); + Aig_ManForEachNode( p, pObj, i ) + pObj->pData = Aig_And( pNew, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) ); + Saig_ManForEachPo( p, pObj, i ) + pObj->pData = Aig_ObjCreatePo( pNew, Aig_ObjChild0Copy(pObj) ); + Saig_ManForEachLi( p, pObj, i ) + pObj->pData = Aig_ObjCreatePo( pNew, Aig_NotCond( Aig_ObjChild0Copy(pObj), pObj->fMarkA ) ); + Aig_ManSetRegNum( pNew, Saig_ManRegNum(p) ); + assert( Aig_ManNodeNum(pNew) == Aig_ManNodeNum(p) ); + return pNew; +} + //////////////////////////////////////////////////////////////////////// /// END OF FILE /// |