mirror of https://github.com/YosysHQ/abc.git
98 lines
3.5 KiB
C
98 lines
3.5 KiB
C
/**CFile****************************************************************
|
|
|
|
FileName [amap.h]
|
|
|
|
SystemName [ABC: Logic synthesis and verification system.]
|
|
|
|
PackageName [Technology mapper for standard cells.]
|
|
|
|
Synopsis [External declarations.]
|
|
|
|
Author [Alan Mishchenko]
|
|
|
|
Affiliation [UC Berkeley]
|
|
|
|
Date [Ver. 1.0. Started - June 20, 2005.]
|
|
|
|
Revision [$Id: amap.h,v 1.00 2005/06/20 00:00:00 alanmi Exp $]
|
|
|
|
***********************************************************************/
|
|
|
|
#ifndef ABC__map__amap__amap_h
|
|
#define ABC__map__amap__amap_h
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// INCLUDES ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// PARAMETERS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
ABC_NAMESPACE_HEADER_START
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// BASIC TYPES ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
typedef struct Amap_Lib_t_ Amap_Lib_t;
|
|
|
|
typedef struct Amap_Par_t_ Amap_Par_t;
|
|
struct Amap_Par_t_
|
|
{
|
|
int nIterFlow; // iterations of area flow
|
|
int nIterArea; // iteratoins of exact area
|
|
int nCutsMax; // the maximum number of cuts at a node
|
|
int fUseMuxes; // enables the use of MUXes
|
|
int fUseXors; // enables the use of XORs
|
|
int fFreeInvs; // assume inverters are free (area = 0)
|
|
float fEpsilon; // used to compare floating point numbers
|
|
float fADratio; // ratio of area/delay improvement
|
|
int fVerbose; // verbosity flag
|
|
};
|
|
|
|
typedef struct Amap_Out_t_ Amap_Out_t;
|
|
struct Amap_Out_t_
|
|
{
|
|
char * pName; // gate name
|
|
short Type; // node type (-1=input; 0=internal; 1=output)
|
|
short nFans; // number of fanins
|
|
int pFans[0]; // fanin
|
|
};
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// MACRO DEFINITIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// FUNCTION DECLARATIONS ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|
|
/*=== amapCore.c ==========================================================*/
|
|
extern void Amap_ManSetDefaultParams( Amap_Par_t * pPars );
|
|
//extern Vec_Ptr_t * Amap_ManTest( Aig_Man_t * pAig, Amap_Par_t * pPars );
|
|
/*=== amapLib.c ==========================================================*/
|
|
extern void Amap_LibFree( Amap_Lib_t * p );
|
|
extern void Amap_LibPrintSelectedGates( Amap_Lib_t * p, int fAllGates );
|
|
extern Amap_Lib_t * Amap_LibReadAndPrepare( char * pFileName, char * pBuffer, int fVerbose, int fVeryVerbose );
|
|
/*=== amapLiberty.c ==========================================================*/
|
|
extern int Amap_LibertyParse( char * pFileName, int fVerbose );
|
|
extern Vec_Str_t * Amap_LibertyParseStr( char * pFileName, int fVerbose );
|
|
|
|
|
|
|
|
ABC_NAMESPACE_HEADER_END
|
|
|
|
|
|
|
|
#endif
|
|
|
|
////////////////////////////////////////////////////////////////////////
|
|
/// END OF FILE ///
|
|
////////////////////////////////////////////////////////////////////////
|
|
|