summaryrefslogtreecommitdiffstats
path: root/src/aig/cec/cecAig.c
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2009-02-15 08:01:00 -0800
committerAlan Mishchenko <alanmi@berkeley.edu>2009-02-15 08:01:00 -0800
commit0871bffae307e0553e0c5186336189e8b55cf6a6 (patch)
tree4571d1563fe33a53a57fea1c35fb668b9d33265f /src/aig/cec/cecAig.c
parentf936cc0680c98ffe51b3a1716c996072d5dbf76c (diff)
downloadabc-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.c151
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 ///
-////////////////////////////////////////////////////////////////////////
-
-