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