abc/src/base/main/mainInt.h

127 lines
5.1 KiB
C
Raw Normal View History

2005-07-29 17:01:00 +02:00
/**CFile****************************************************************
FileName [mainInt.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [The main package.]
Synopsis [Internal declarations of the main package.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - June 20, 2005.]
2008-05-16 17:01:00 +02:00
Revision [$Id: mainInt.h,v 1.1 2008/05/14 22:13:13 wudenni Exp $]
2005-07-29 17:01:00 +02:00
***********************************************************************/
2008-01-31 05:01:00 +01:00
#ifndef __MAIN_INT_H__
#define __MAIN_INT_H__
2008-05-16 17:01:00 +02:00
2005-07-29 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// INCLUDES ///
////////////////////////////////////////////////////////////////////////
#include "main.h"
2008-02-22 17:01:00 +01:00
#include "port_type.h"
2005-07-29 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// PARAMETERS ///
////////////////////////////////////////////////////////////////////////
// the current version
2005-09-05 17:01:00 +02:00
#define ABC_VERSION "UC Berkeley, ABC 1.01"
2005-07-29 17:01:00 +02:00
// the maximum length of an input line
#define MAX_STR 32768
////////////////////////////////////////////////////////////////////////
/// STRUCTURE DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
struct Abc_Frame_t_
{
// general info
char * sVersion; // the name of the current version
// commands, aliases, etc
st_table * tCommands; // the command table
st_table * tAliases; // the alias table
st_table * tFlags; // the flag table
Vec_Ptr_t * aHistory; // the command history
// the functionality
Abc_Ntk_t * pNtkCur; // the current network
int nSteps; // the counter of different network processed
2005-09-05 17:01:00 +02:00
int fAutoexac; // marks the autoexec mode
int fBatchMode; // are we invoked in batch mode?
2005-07-29 17:01:00 +02:00
// output streams
FILE * Out;
FILE * Err;
FILE * Hst;
// used for runtime measurement
2008-03-07 17:01:00 +01:00
double TimeCommand; // the runtime of the last command
double TimeTotal; // the total runtime of all commands
2005-07-29 17:01:00 +02:00
// temporary storage for structural choices
2008-01-31 05:01:00 +01:00
Vec_Ptr_t * vStore; // networks to be used by choice
2005-09-02 17:01:00 +02:00
// decomposition package
void * pManDec; // decomposition manager
2005-09-05 17:01:00 +02:00
DdManager * dd; // temporary BDD package
// libraries for mapping
2005-07-29 17:01:00 +02:00
void * pLibLut; // the current LUT library
void * pLibGen; // the current genlib
void * pLibSuper; // the current supergate library
2008-01-31 05:01:00 +01:00
void * pLibVer; // the current Verilog library
2008-03-26 16:01:00 +01:00
// new code
void * pAbc8Ntl; // the current design
2008-03-30 17:01:00 +02:00
void * pAbc8Nwk; // the current mapped network
2008-03-26 16:01:00 +01:00
void * pAbc8Aig; // the current AIG
2008-03-27 16:01:00 +01:00
void * pAbc8Lib; // the current LUT library
2005-07-29 17:01:00 +02:00
};
////////////////////////////////////////////////////////////////////////
/// GLOBAL VARIABLES ///
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
2008-01-31 05:01:00 +01:00
/// MACRO DEFINITIONS ///
2005-07-29 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
2008-01-31 05:01:00 +01:00
/// FUNCTION DEFINITIONS ///
2005-07-29 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
2008-05-16 17:01:00 +02:00
#ifdef WIN32
#define DLLEXPORT __declspec(dllexport)
#define DLLIMPORT __declspec(dllimport)
#else /* defined(WIN32) */
#define DLLIMPORT
#endif /* defined(WIN32) */
#ifndef ABC_DLL
#define ABC_DLL DLLIMPORT
#endif
2005-07-29 17:01:00 +02:00
/*=== mvMain.c ===========================================================*/
2008-05-16 17:01:00 +02:00
extern ABC_DLL int main( int argc, char * argv[] );
2005-07-29 17:01:00 +02:00
/*=== mvInit.c ===================================================*/
2008-05-16 17:01:00 +02:00
extern ABC_DLL void Abc_FrameInit( Abc_Frame_t * pAbc );
extern ABC_DLL void Abc_FrameEnd( Abc_Frame_t * pAbc );
2005-07-29 17:01:00 +02:00
/*=== mvFrame.c =====================================================*/
2008-05-16 17:01:00 +02:00
extern ABC_DLL Abc_Frame_t * Abc_FrameAllocate();
extern ABC_DLL void Abc_FrameDeallocate( Abc_Frame_t * p );
2005-07-29 17:01:00 +02:00
/*=== mvUtils.c =====================================================*/
2008-05-16 17:01:00 +02:00
extern ABC_DLL char * Abc_UtilsGetVersion( Abc_Frame_t * pAbc );
extern ABC_DLL char * Abc_UtilsGetUsersInput( Abc_Frame_t * pAbc );
extern ABC_DLL void Abc_UtilsPrintHello( Abc_Frame_t * pAbc );
extern ABC_DLL void Abc_UtilsPrintUsage( Abc_Frame_t * pAbc, char * ProgName );
extern ABC_DLL void Abc_UtilsSource( Abc_Frame_t * pAbc );
2005-07-29 17:01:00 +02:00
2008-01-31 05:01:00 +01:00
#endif
2005-07-29 17:01:00 +02:00
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////