summaryrefslogtreecommitdiffstats
path: root/src/aig/dch/dchAig.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/aig/dch/dchAig.c')
-rw-r--r--src/aig/dch/dchAig.c119
1 files changed, 0 insertions, 119 deletions
diff --git a/src/aig/dch/dchAig.c b/src/aig/dch/dchAig.c
deleted file mode 100644
index 91a00c63..00000000
--- a/src/aig/dch/dchAig.c
+++ /dev/null
@@ -1,119 +0,0 @@
-/**CFile****************************************************************
-
- FileName [dchAig.c]
-
- SystemName [ABC: Logic synthesis and verification system.]
-
- PackageName [Choice computation for tech-mapping.]
-
- Synopsis [AIG manipulation.]
-
- Author [Alan Mishchenko]
-
- Affiliation [UC Berkeley]
-
- Date [Ver. 1.0. Started - June 29, 2008.]
-
- Revision [$Id: dchAig.c,v 1.00 2008/07/29 00:00:00 alanmi Exp $]
-
-***********************************************************************/
-
-#include "dchInt.h"
-
-ABC_NAMESPACE_IMPL_START
-
-
-////////////////////////////////////////////////////////////////////////
-/// DECLARATIONS ///
-////////////////////////////////////////////////////////////////////////
-
-////////////////////////////////////////////////////////////////////////
-/// FUNCTION DEFINITIONS ///
-////////////////////////////////////////////////////////////////////////
-
-/**Function*************************************************************
-
- Synopsis [Derives the cumulative AIG.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-void Dch_DeriveTotalAig_rec( Aig_Man_t * p, Aig_Obj_t * pObj )
-{
- if ( pObj->pData )
- return;
- Dch_DeriveTotalAig_rec( p, Aig_ObjFanin0(pObj) );
- Dch_DeriveTotalAig_rec( p, Aig_ObjFanin1(pObj) );
- pObj->pData = Aig_And( p, Aig_ObjChild0Copy(pObj), Aig_ObjChild1Copy(pObj) );
-}
-
-/**Function*************************************************************
-
- Synopsis [Derives the cumulative AIG.]
-
- Description []
-
- SideEffects []
-
- SeeAlso []
-
-***********************************************************************/
-Aig_Man_t * Dch_DeriveTotalAig( Vec_Ptr_t * vAigs )
-{
- Aig_Man_t * pAig, * pAig2, * pAigTotal;
- Aig_Obj_t * pObj, * pObjPi, * pObjPo;
- int i, k, nNodes;
- assert( Vec_PtrSize(vAigs) > 0 );
- // make sure they have the same number of PIs/POs
- nNodes = 0;
- pAig = (Aig_Man_t *)Vec_PtrEntry( vAigs, 0 );
- Vec_PtrForEachEntry( Aig_Man_t *, vAigs, pAig2, i )
- {
- assert( Aig_ManPiNum(pAig) == Aig_ManPiNum(pAig2) );
- assert( Aig_ManPoNum(pAig) == Aig_ManPoNum(pAig2) );
- nNodes += Aig_ManNodeNum(pAig2);
- Aig_ManCleanData( pAig2 );
- }
- // map constant nodes
- pAigTotal = Aig_ManStart( nNodes );
- Vec_PtrForEachEntry( Aig_Man_t *, vAigs, pAig2, k )
- Aig_ManConst1(pAig2)->pData = Aig_ManConst1(pAigTotal);
- // map primary inputs
- Aig_ManForEachPi( pAig, pObj, i )
- {
- pObjPi = Aig_ObjCreatePi( pAigTotal );
- Vec_PtrForEachEntry( Aig_Man_t *, vAigs, pAig2, k )
- Aig_ManPi( pAig2, i )->pData = pObjPi;
- }
- // construct the AIG in the order of POs
- Aig_ManForEachPo( pAig, pObj, i )
- {
- Vec_PtrForEachEntry( Aig_Man_t *, vAigs, pAig2, k )
- {
- pObjPo = Aig_ManPo( pAig2, i );
- Dch_DeriveTotalAig_rec( pAigTotal, Aig_ObjFanin0(pObjPo) );
- }
- Aig_ObjCreatePo( pAigTotal, Aig_ObjChild0Copy(pObj) );
- }
-/*
- // mark the cone of the first AIG
- Aig_ManIncrementTravId( pAigTotal );
- Aig_ManForEachObj( pAig, pObj, i )
- if ( pObj->pData )
- Aig_ObjSetTravIdCurrent( pAigTotal, pObj->pData );
-*/
- // cleanup should not be done
- return pAigTotal;
-}
-
-////////////////////////////////////////////////////////////////////////
-/// END OF FILE ///
-////////////////////////////////////////////////////////////////////////
-
-
-ABC_NAMESPACE_IMPL_END
-