diff options
Diffstat (limited to 'src/aig/nwk/nwkMerge.h')
-rw-r--r-- | src/aig/nwk/nwkMerge.h | 153 |
1 files changed, 0 insertions, 153 deletions
diff --git a/src/aig/nwk/nwkMerge.h b/src/aig/nwk/nwkMerge.h deleted file mode 100644 index f6be760f..00000000 --- a/src/aig/nwk/nwkMerge.h +++ /dev/null @@ -1,153 +0,0 @@ -/**CFile**************************************************************** - - FileName [nwkMerge.h] - - SystemName [ABC: Logic synthesis and verification system.] - - PackageName [Logic network representation.] - - Synopsis [External declarations.] - - Author [Alan Mishchenko] - - Affiliation [UC Berkeley] - - Date [Ver. 1.0. Started - June 20, 2005.] - - Revision [$Id: nwkMerge.h,v 1.1 2008/05/14 22:13:09 wudenni Exp $] - -***********************************************************************/ - -#ifndef __NWK_MERGE_H__ -#define __NWK_MERGE_H__ - - -//////////////////////////////////////////////////////////////////////// -/// INCLUDES /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// PARAMETERS /// -//////////////////////////////////////////////////////////////////////// - - - -ABC_NAMESPACE_HEADER_START - - -#define NWK_MAX_LIST 16 - -//////////////////////////////////////////////////////////////////////// -/// BASIC TYPES /// -//////////////////////////////////////////////////////////////////////// - -// the LUT merging parameters -typedef struct Nwk_LMPars_t_ Nwk_LMPars_t; -struct Nwk_LMPars_t_ -{ - int nMaxLutSize; // the max LUT size for merging (N=5) - int nMaxSuppSize; // the max total support size after merging (S=5) - int nMaxDistance; // the max number of nodes separating LUTs - int nMaxLevelDiff; // the max difference in levels - int nMaxFanout; // the max number of fanouts to traverse - int fUseDiffSupp; // enables the use of nodes with different support - int fUseTfiTfo; // enables the use of TFO/TFO nodes as candidates - int fVeryVerbose; // enables additional verbose output - int fVerbose; // enables verbose output -}; - -// edge of the graph -typedef struct Nwk_Edg_t_ Nwk_Edg_t; -struct Nwk_Edg_t_ -{ - int iNode1; // the first node - int iNode2; // the second node - Nwk_Edg_t * pNext; // the next edge -}; - -// vertex of the graph -typedef struct Nwk_Vrt_t_ Nwk_Vrt_t; -struct Nwk_Vrt_t_ -{ - int Id; // the vertex number - int iPrev; // the previous vertex in the list - int iNext; // the next vertex in the list - int nEdges; // the number of edges - int pEdges[0]; // the array of edges -}; - -// the connectivity graph -typedef struct Nwk_Grf_t_ Nwk_Grf_t; -struct Nwk_Grf_t_ -{ - // preliminary graph representation - int nObjs; // the number of objects - int nVertsMax; // the upper bound on the number of vertices - int nEdgeHash; // an approximate number of edges - Nwk_Edg_t ** pEdgeHash; // hash table for edges - Aig_MmFixed_t * pMemEdges; // memory for edges - // graph representation - int nEdges; // the number of edges - int nVerts; // the number of vertices - Nwk_Vrt_t ** pVerts; // the array of vertices - Aig_MmFlex_t * pMemVerts; // memory for vertices - // intermediate data - int pLists1[NWK_MAX_LIST+1]; // lists of nodes with one edge - int pLists2[NWK_MAX_LIST+1]; // lists of nodes with more than one edge - // the results of matching - Vec_Int_t * vPairs; // pairs matched in the graph - // object mappings - int * pMapLut2Id; // LUT numbers into vertex IDs - int * pMapId2Lut; // vertex IDs into LUT numbers - // other things - int nMemBytes1; // memory usage in bytes - int nMemBytes2; // memory usage in bytes -}; - -//////////////////////////////////////////////////////////////////////// -/// MACRO DEFINITIONS /// -//////////////////////////////////////////////////////////////////////// - -#define Nwk_GraphForEachEdge( p, pEdge, k ) \ - for ( k = 0; k < p->nEdgeHash; k++ ) \ - for ( pEdge = p->pEdgeHash[k]; pEdge; pEdge = pEdge->pNext ) - -#define Nwk_ListForEachVertex( p, List, pVrt ) \ - for ( pVrt = List? p->pVerts[List] : NULL; pVrt; \ - pVrt = pVrt->iNext? p->pVerts[pVrt->iNext] : NULL ) - -#define Nwk_VertexForEachAdjacent( p, pVrt, pNext, k ) \ - for ( k = 0; (k < pVrt->nEdges) && (((pNext) = p->pVerts[pVrt->pEdges[k]]), 1); k++ ) - -//////////////////////////////////////////////////////////////////////// -/// INLINED FUNCTIONS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// ITERATORS /// -//////////////////////////////////////////////////////////////////////// - -//////////////////////////////////////////////////////////////////////// -/// FUNCTION DECLARATIONS /// -//////////////////////////////////////////////////////////////////////// - -/*=== nwkMerge.c ==========================================================*/ -extern ABC_DLL Nwk_Grf_t * Nwk_ManGraphAlloc( int nVertsMax ); -extern ABC_DLL void Nwk_ManGraphFree( Nwk_Grf_t * p ); -extern ABC_DLL void Nwk_ManGraphReportMemoryUsage( Nwk_Grf_t * p ); -extern ABC_DLL void Nwk_ManGraphHashEdge( Nwk_Grf_t * p, int iLut1, int iLut2 ); -extern ABC_DLL void Nwk_ManGraphSolve( Nwk_Grf_t * p ); -extern ABC_DLL int Nwk_ManLutMergeGraphTest( char * pFileName ); - - - -ABC_NAMESPACE_HEADER_END - - - -#endif - -//////////////////////////////////////////////////////////////////////// -/// END OF FILE /// -//////////////////////////////////////////////////////////////////////// - |