00001 00021 #ifndef __MAIN_INT_H__ 00022 #define __MAIN_INT_H__ 00023 00027 00028 #include "main.h" 00029 00033 00034 // the current version 00035 #define ABC_VERSION "UC Berkeley, ABC 1.01" 00036 00037 // the maximum length of an input line 00038 #define MAX_STR 32768 00039 00043 00044 struct Abc_Frame_t_ 00045 { 00046 // general info 00047 char * sVersion; // the name of the current version 00048 // commands, aliases, etc 00049 st_table * tCommands; // the command table 00050 st_table * tAliases; // the alias table 00051 st_table * tFlags; // the flag table 00052 Vec_Ptr_t * aHistory; // the command history 00053 // the functionality 00054 Abc_Ntk_t * pNtkCur; // the current network 00055 int nSteps; // the counter of different network processed 00056 int fAutoexac; // marks the autoexec mode 00057 int fBatchMode; // are we invoked in batch mode? 00058 // output streams 00059 FILE * Out; 00060 FILE * Err; 00061 FILE * Hst; 00062 // used for runtime measurement 00063 int TimeCommand; // the runtime of the last command 00064 int TimeTotal; // the total runtime of all commands 00065 // temporary storage for structural choices 00066 Vec_Ptr_t * vStore; // networks to be used by choice 00067 // decomposition package 00068 void * pManDec; // decomposition manager 00069 DdManager * dd; // temporary BDD package 00070 // libraries for mapping 00071 void * pLibLut; // the current LUT library 00072 void * pLibGen; // the current genlib 00073 void * pLibSuper; // the current supergate library 00074 void * pLibVer; // the current Verilog library 00075 }; 00076 00080 00084 00085 00089 00090 /*=== mvMain.c ===========================================================*/ 00091 extern int main( int argc, char * argv[] ); 00092 /*=== mvInit.c ===================================================*/ 00093 extern void Abc_FrameInit( Abc_Frame_t * pAbc ); 00094 extern void Abc_FrameEnd( Abc_Frame_t * pAbc ); 00095 /*=== mvFrame.c =====================================================*/ 00096 extern Abc_Frame_t * Abc_FrameAllocate(); 00097 extern void Abc_FrameDeallocate( Abc_Frame_t * p ); 00098 /*=== mvUtils.c =====================================================*/ 00099 extern char * Abc_UtilsGetVersion( Abc_Frame_t * pAbc ); 00100 extern char * Abc_UtilsGetUsersInput( Abc_Frame_t * pAbc ); 00101 extern void Abc_UtilsPrintHello( Abc_Frame_t * pAbc ); 00102 extern void Abc_UtilsPrintUsage( Abc_Frame_t * pAbc, char * ProgName ); 00103 extern void Abc_UtilsSource( Abc_Frame_t * pAbc ); 00104 00105 #endif 00106