1 /**CFile**************************************************************** 2 3 FileName [amap.h] 4 5 SystemName [ABC: Logic synthesis and verification system.] 6 7 PackageName [Technology mapper for standard cells.] 8 9 Synopsis [External declarations.] 10 11 Author [Alan Mishchenko] 12 13 Affiliation [UC Berkeley] 14 15 Date [Ver. 1.0. Started - June 20, 2005.] 16 17 Revision [$Id: amap.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $] 18 19 ***********************************************************************/ 20 21 #ifndef ABC__map__amap__amap_h 22 #define ABC__map__amap__amap_h 23 24 25 //////////////////////////////////////////////////////////////////////// 26 /// INCLUDES /// 27 //////////////////////////////////////////////////////////////////////// 28 29 //////////////////////////////////////////////////////////////////////// 30 /// PARAMETERS /// 31 //////////////////////////////////////////////////////////////////////// 32 33 34 35 ABC_NAMESPACE_HEADER_START 36 37 38 //////////////////////////////////////////////////////////////////////// 39 /// BASIC TYPES /// 40 //////////////////////////////////////////////////////////////////////// 41 42 typedef struct Amap_Lib_t_ Amap_Lib_t; 43 44 typedef struct Amap_Par_t_ Amap_Par_t; 45 struct Amap_Par_t_ 46 { 47 int nIterFlow; // iterations of area flow 48 int nIterArea; // iteratoins of exact area 49 int nCutsMax; // the maximum number of cuts at a node 50 int fUseMuxes; // enables the use of MUXes 51 int fUseXors; // enables the use of XORs 52 int fFreeInvs; // assume inverters are free (area = 0) 53 float fEpsilon; // used to compare floating point numbers 54 float fADratio; // ratio of area/delay improvement 55 int fVerbose; // verbosity flag 56 }; 57 58 typedef struct Amap_Out_t_ Amap_Out_t; 59 struct Amap_Out_t_ 60 { 61 char * pName; // gate name 62 short Type; // node type (-1=input; 0=internal; 1=output) 63 short nFans; // number of fanins 64 int pFans[0]; // fanin 65 }; 66 67 //////////////////////////////////////////////////////////////////////// 68 /// MACRO DEFINITIONS /// 69 //////////////////////////////////////////////////////////////////////// 70 71 //////////////////////////////////////////////////////////////////////// 72 /// FUNCTION DECLARATIONS /// 73 //////////////////////////////////////////////////////////////////////// 74 75 /*=== amapCore.c ==========================================================*/ 76 extern void Amap_ManSetDefaultParams( Amap_Par_t * pPars ); 77 //extern Vec_Ptr_t * Amap_ManTest( Aig_Man_t * pAig, Amap_Par_t * pPars ); 78 /*=== amapLib.c ==========================================================*/ 79 extern void Amap_LibFree( Amap_Lib_t * p ); 80 extern void Amap_LibPrintSelectedGates( Amap_Lib_t * p, int fAllGates ); 81 extern Amap_Lib_t * Amap_LibReadAndPrepare( char * pFileName, char * pBuffer, int fVerbose, int fVeryVerbose ); 82 /*=== amapLiberty.c ==========================================================*/ 83 extern int Amap_LibertyParse( char * pFileName, int fVerbose ); 84 extern Vec_Str_t * Amap_LibertyParseStr( char * pFileName, int fVerbose ); 85 86 87 88 ABC_NAMESPACE_HEADER_END 89 90 91 92 #endif 93 94 //////////////////////////////////////////////////////////////////////// 95 /// END OF FILE /// 96 //////////////////////////////////////////////////////////////////////// 97 98