diff options
author | Alan Mishchenko <alanmi@berkeley.edu> | 2009-02-15 08:01:00 -0800 |
---|---|---|
committer | Alan Mishchenko <alanmi@berkeley.edu> | 2009-02-15 08:01:00 -0800 |
commit | 0871bffae307e0553e0c5186336189e8b55cf6a6 (patch) | |
tree | 4571d1563fe33a53a57fea1c35fb668b9d33265f /src/aig/cec/cecAig.c | |
parent | f936cc0680c98ffe51b3a1716c996072d5dbf76c (diff) | |
download | abc-0871bffae307e0553e0c5186336189e8b55cf6a6.tar.gz abc-0871bffae307e0553e0c5186336189e8b55cf6a6.tar.bz2 abc-0871bffae307e0553e0c5186336189e8b55cf6a6.zip |
Version abc90215
Diffstat (limited to 'src/aig/cec/cecAig.c')
-rw-r--r-- | src/aig/cec/cecAig.c | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/src/aig/cec/cecAig.c b/src/aig/cec/cecAig.c deleted file mode 100644 index 2a6f5683..00000000 --- a/src/aig/cec/cecAig.c +++ /dev/null @@ -1,151 +0,0 @@ -/**CFile**************************************************************** - - FileName [cecAig.c] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [Combinatinoal equivalence checking.] - - Synopsis [AIG manipulation.] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: cecAig.c,v 1.00 2005/06/20 00:00:00 alanmi Exp $] - -***********************************************************************/ - -#include "cecInt.h" - -//////////////////////////////////////////////////////////////////////// -/// DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DEFINITIONS /// -//////////////////////////////////////////////////////////////////////// - -/**Function************************************************************* - - Synopsis [Derives combinational miter of the two AIGs.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Aig_Obj_t * Cec_DeriveMiter_rec( Aig_Man_t * pNew, Aig_Obj_t * pObj ) -{ - if ( pObj->pData ) - return pObj->pData; - Cec_DeriveMiter_rec( pNew, Aig_ObjFanin0(pObj) ); - if ( Aig_ObjIsBuf(pObj) ) - return pObj->pData = Aig_ObjChild0Copy(pObj); - Cec_DeriveMiter_rec( pNew, Aig_ObjFanin1(pObj) ); - pObj->pData = Aig_And( pNew, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) ); - Aig_Regular(pObj->pData)->pHaig = pObj->pHaig; - return pObj->pData; -} - -/**Function************************************************************* - - Synopsis [Derives combinational miter of the two AIGs.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Aig_Man_t * Cec_DeriveMiter( Aig_Man_t * p0, Aig_Man_t * p1 ) -{ - Bar_Progress_t * pProgress = NULL; - Aig_Man_t * pNew; - Aig_Obj_t * pObj0, * pObj1, * pObjNew; - int i; - assert( Aig_ManPiNum(p0) == Aig_ManPiNum(p1) ); - assert( Aig_ManPoNum(p0) == Aig_ManPoNum(p1) ); - // create the new manager - pNew = Aig_ManStart( Aig_ManNodeNum(p0) + Aig_ManNodeNum(p1) ); - pNew->pName = Aig_UtilStrsav( p0->pName ); - // create the PIs - Aig_ManCleanData( p0 ); - Aig_ManCleanData( p1 ); - Aig_ManConst1(p0)->pData = Aig_ManConst1(pNew); - Aig_ManConst1(p1)->pData = Aig_ManConst1(pNew); - Aig_ManForEachPi( p0, pObj0, i ) - { - pObjNew = Aig_ObjCreatePi( pNew ); - pObj0->pData = pObjNew; - Aig_ManPi(p1, i)->pData = pObjNew; - } - // add logic for the POs - pProgress = Bar_ProgressStart( stdout, Aig_ManPoNum(p0) ); - Aig_ManForEachPo( p0, pObj0, i ) - { - Bar_ProgressUpdate( pProgress, i, "Miter..." ); - pObj1 = Aig_ManPo( p1, i ); - Cec_DeriveMiter_rec( pNew, Aig_ObjFanin0(pObj0) ); - Cec_DeriveMiter_rec( pNew, Aig_ObjFanin0(pObj1) ); - pObjNew = Aig_Exor( pNew, Aig_ObjChild0Copy(pObj0), Aig_ObjChild0Copy(pObj1) ); - Aig_ObjCreatePo( pNew, pObjNew ); - } - Bar_ProgressStop( pProgress ); - Aig_ManCleanup( pNew ); - Aig_ManSetRegNum( pNew, 0 ); - // check the resulting network -// if ( !Aig_ManCheck(pNew) ) -// printf( "Cec_DeriveMiter(): The check has failed.\n" ); - return pNew; -} - -/**Function************************************************************* - - Synopsis [Duplicates AIG in the DFS order.] - - Description [] - - SideEffects [] - - SeeAlso [] - -***********************************************************************/ -Aig_Man_t * Cec_Duplicate( Aig_Man_t * p ) -{ - Aig_Man_t * pNew; - Aig_Obj_t * pObj; - int i; - // create the new manager - pNew = Aig_ManStart( Aig_ManNodeNum(p) ); - pNew->pName = Aig_UtilStrsav( p->pName ); - // create the PIs - Aig_ManCleanData( p ); - Aig_ManConst1(p)->pData = Aig_ManConst1(pNew); - Aig_ManForEachPi( p, pObj, i ) - pObj->pData = Aig_ObjCreatePi( pNew ); - // add logic for the POs - Aig_ManForEachPo( p, pObj, i ) - { - Cec_DeriveMiter_rec( pNew, Aig_ObjFanin0(pObj) ); - Aig_ObjCreatePo( pNew, Aig_ObjChild0Copy(pObj) ); - } - Aig_ManCleanup( pNew ); - Aig_ManSetRegNum( pNew, 0 ); - assert( Aig_ManBufNum(p) != 0 || Aig_ManNodeNum(p) == Aig_ManNodeNum(pNew) ); - // check the resulting network -// if ( !Aig_ManCheck(pNew) ) -// printf( "Cec_DeriveMiter(): The check has failed.\n" ); - return pNew; -} - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - - |