abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
mainInt.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [mainInt.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [The main package.]
8 
9  Synopsis [Internal declarations of the main package.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - June 20, 2005.]
16 
17  Revision [$Id: mainInt.h,v 1.1 2008/05/14 22:13:13 wudenni Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__base__main__mainInt_h
22 #define ABC__base__main__mainInt_h
23 
24 
25 ////////////////////////////////////////////////////////////////////////
26 /// INCLUDES ///
27 ////////////////////////////////////////////////////////////////////////
28 
29 #include "main.h"
30 #include "misc/tim/tim.h"
31 #include "map/if/if.h"
32 #include "aig/aig/aig.h"
33 #include "aig/gia/gia.h"
34 #include "proof/ssw/ssw.h"
35 #include "proof/fra/fra.h"
36 //#include "aig/nwk/nwkMerge.h"
37 //#include "aig/ntl/ntlnwk.h"
38 #include "misc/extra/extraBdd.h"
39 
41 
42 ////////////////////////////////////////////////////////////////////////
43 /// PARAMETERS ///
44 ////////////////////////////////////////////////////////////////////////
45 
46 // the current version
47 #define ABC_VERSION "UC Berkeley, ABC 1.01"
48 
49 // the maximum length of an input line
50 #define ABC_MAX_STR (1<<15)
51 
52 ////////////////////////////////////////////////////////////////////////
53 /// STRUCTURE DEFINITIONS ///
54 ////////////////////////////////////////////////////////////////////////
55 
57 {
58  // general info
59  char * sVersion; // the name of the current version
60  char * sBinary; // the name of the binary running
61  // commands, aliases, etc
62  st__table * tCommands; // the command table
63  st__table * tAliases; // the alias table
64  st__table * tFlags; // the flag table
65  Vec_Ptr_t * aHistory; // the command history
66  // the functionality
67  Abc_Ntk_t * pNtkCur; // the current network
68  Abc_Ntk_t * pNtkBestDelay; // the current network
69  Abc_Ntk_t * pNtkBestArea; // the current network
70  Abc_Ntk_t * pNtkBackup; // the current network
71  int nSteps; // the counter of different network processed
72  int fSource; // marks the source mode
73  int fAutoexac; // marks the autoexec mode
74  int fBatchMode; // batch mode flag
75  int fBridgeMode; // bridge mode flag
76  // output streams
77  FILE * Out;
78  FILE * Err;
79  FILE * Hst;
80  // used for runtime measurement
81  double TimeCommand; // the runtime of the last command
82  double TimeTotal; // the total runtime of all commands
83  // temporary storage for structural choices
84  Vec_Ptr_t * vStore; // networks to be used by choice
85  // decomposition package
86  void * pManDec; // decomposition manager
87  void * pManDsd; // decomposition manager
88  void * pManDsd2; // decomposition manager
89  DdManager * dd; // temporary BDD package
90  // libraries for mapping
91  void * pLibLut; // the current LUT library
92  void * pLibBox; // the current box library
93  void * pLibGen; // the current genlib
94  void * pLibGen2; // the current genlib
95  void * pLibSuper; // the current supergate library
96  void * pLibScl; // the current Liberty library
97  // timing constraints
98  char * pDrivingCell; // name of the driving cell
99  float MaxLoad; // maximum output load
100  // inductive don't-cares
103 
104  // new code
105  Gia_Man_t * pGia; // alternative current network as a light-weight AIG
106  Gia_Man_t * pGia2; // copy of the above
107  Gia_Man_t * pGiaBest; // copy of the above
108  int nBestLuts; // best LUT count
109  int nBestEdges; // best edge count
110  int nBestLevels; // best level count
111  Abc_Cex_t * pCex; // a counter-example to fail the current network
112  Abc_Cex_t * pCex2; // copy of the above
113  Vec_Ptr_t * vCexVec; // a vector of counter-examples if more than one PO fails
114  Vec_Ptr_t * vPoEquivs; // equivalence classes of isomorphic primary outputs
115  Vec_Int_t * vStatuses; // problem status for each output
116  Vec_Int_t * vAbcObjIds; // object IDs
117  int Status; // the status of verification problem (proved=1, disproved=0, undecided=-1)
118  int nFrames; // the number of time frames completed by BMC
119  Vec_Ptr_t * vPlugInComBinPairs; // pairs of command and its binary name
120  Vec_Ptr_t * vLTLProperties_global; // related to LTL
121  void * pSave1;
122  void * pSave2;
123  void * pSave3;
124  void * pSave4;
125  void * pAbc85Ntl;
126  void * pAbc85Ntl2;
127  void * pAbc85Best;
128  void * pAbc85Delay;
129  void * pAbcWlc;
130  void * pAbcCba;
131 };
132 
133 typedef void (*Abc_Frame_Initialization_Func)( Abc_Frame_t * pAbc );
134 
137 
139 {
142 
145 };
146 
147 ////////////////////////////////////////////////////////////////////////
148 /// GLOBAL VARIABLES ///
149 ////////////////////////////////////////////////////////////////////////
150 
151 ////////////////////////////////////////////////////////////////////////
152 /// MACRO DEFINITIONS ///
153 ////////////////////////////////////////////////////////////////////////
154 
155 
156 ////////////////////////////////////////////////////////////////////////
157 /// FUNCTION DEFINITIONS ///
158 ////////////////////////////////////////////////////////////////////////
159 
160 /*=== mvMain.c ===========================================================*/
161 extern ABC_DLL int main( int argc, char * argv[] );
162 /*=== mvInit.c ===================================================*/
163 extern ABC_DLL void Abc_FrameInit( Abc_Frame_t * pAbc );
164 extern ABC_DLL void Abc_FrameEnd( Abc_Frame_t * pAbc );
166 /*=== mvFrame.c =====================================================*/
168 extern ABC_DLL void Abc_FrameDeallocate( Abc_Frame_t * p );
169 /*=== mvUtils.c =====================================================*/
170 extern ABC_DLL char * Abc_UtilsGetVersion( Abc_Frame_t * pAbc );
171 extern ABC_DLL char * Abc_UtilsGetUsersInput( Abc_Frame_t * pAbc );
172 extern ABC_DLL void Abc_UtilsPrintHello( Abc_Frame_t * pAbc );
173 extern ABC_DLL void Abc_UtilsPrintUsage( Abc_Frame_t * pAbc, char * ProgName );
174 extern ABC_DLL void Abc_UtilsSource( Abc_Frame_t * pAbc );
175 
176 
177 
179 
180 #endif
181 
182 ////////////////////////////////////////////////////////////////////////
183 /// END OF FILE ///
184 ////////////////////////////////////////////////////////////////////////
FILE * Hst
Definition: mainInt.h:79
void * pAbc85Best
Definition: mainInt.h:127
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition: vecPtr.h:42
void(* Abc_Frame_Initialization_Func)(Abc_Frame_t *pAbc)
Definition: mainInt.h:133
int Status
Definition: mainInt.h:117
void * pLibGen2
Definition: mainInt.h:94
Vec_Ptr_t * vPlugInComBinPairs
Definition: mainInt.h:119
ABC_DLL void Abc_FrameInit(Abc_Frame_t *pAbc)
FUNCTION DEFINITIONS ///.
Definition: mainInit.c:94
Abc_Frame_Initialization_Func destroy
Definition: mainInt.h:141
void * pManDec
Definition: mainInt.h:86
ABC_DLL void Abc_UtilsPrintHello(Abc_Frame_t *pAbc)
Definition: mainUtils.c:104
static Llb_Mgr_t * p
Definition: llb3Image.c:950
void * pAbcCba
Definition: mainInt.h:130
Gia_Man_t * pGiaBest
Definition: mainInt.h:107
int fBridgeMode
Definition: mainInt.h:75
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
int fSource
Definition: mainInt.h:72
Vec_Int_t * vAbcObjIds
Definition: mainInt.h:116
st__table * tFlags
Definition: mainInt.h:64
void * pSave3
Definition: mainInt.h:123
Gia_Man_t * pGia
Definition: mainInt.h:105
void * pAbcWlc
Definition: mainInt.h:129
Vec_Ptr_t * vCexVec
Definition: mainInt.h:113
char * pDrivingCell
Definition: mainInt.h:98
void * pAbc85Ntl2
Definition: mainInt.h:126
Abc_FrameInitializer_t * next
Definition: mainInt.h:143
Abc_Ntk_t * pNtkCur
Definition: mainInt.h:67
ABC_DLL void Abc_FrameEnd(Abc_Frame_t *pAbc)
Definition: mainInit.c:128
FILE * Err
Definition: mainInt.h:78
ABC_DLL void Abc_FrameDeallocate(Abc_Frame_t *p)
Definition: mainFrame.c:179
#define ABC_DLL
Definition: abc_global.h:53
void * pSave1
Definition: mainInt.h:121
int fBatchMode
Definition: mainInt.h:74
Vec_Ptr_t * aHistory
Definition: mainInt.h:65
Abc_Ntk_t * pNtkBestArea
Definition: mainInt.h:69
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
ABC_DLL void Abc_UtilsSource(Abc_Frame_t *pAbc)
Definition: mainUtils.c:152
Abc_FrameInitializer_t * prev
Definition: mainInt.h:144
Vec_Ptr_t * vStore
Definition: mainInt.h:84
void * pLibBox
Definition: mainInt.h:92
Definition: st.h:52
void * pManDsd2
Definition: mainInt.h:88
STRUCTURE DEFINITIONS ///.
Definition: mainInt.h:56
Vec_Int_t * vIndFlops
Definition: mainInt.h:101
double TimeTotal
Definition: mainInt.h:82
void * pLibLut
Definition: mainInt.h:91
void * pLibSuper
Definition: mainInt.h:95
void * pSave4
Definition: mainInt.h:124
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
int fAutoexac
Definition: mainInt.h:73
void * pLibGen
Definition: mainInt.h:93
ABC_DLL char * Abc_UtilsGetVersion(Abc_Frame_t *pAbc)
FUNCTION DEFINITIONS ///.
Definition: mainUtils.c:52
int nFrames
Definition: mainInt.h:118
DdManager * dd
Definition: mainInt.h:89
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
void * pAbc85Delay
Definition: mainInt.h:128
st__table * tCommands
Definition: mainInt.h:62
void * pSave2
Definition: mainInt.h:122
Vec_Ptr_t * vLTLProperties_global
Definition: mainInt.h:120
float MaxLoad
Definition: mainInt.h:99
ABC_DLL void Abc_UtilsPrintUsage(Abc_Frame_t *pAbc, char *ProgName)
Definition: mainUtils.c:120
Definition: gia.h:95
Vec_Ptr_t * vPoEquivs
Definition: mainInt.h:114
void * pLibScl
Definition: mainInt.h:96
ABC_DLL char * Abc_UtilsGetUsersInput(Abc_Frame_t *pAbc)
Definition: mainUtils.c:70
FILE * Out
Definition: mainInt.h:77
int nBestLevels
Definition: mainInt.h:110
Abc_Frame_Initialization_Func init
Definition: mainInt.h:140
ABC_DLL void Abc_FrameAddInitializer(Abc_FrameInitializer_t *p)
Definition: mainInit.c:64
Abc_Ntk_t * pNtkBestDelay
Definition: mainInt.h:68
Abc_Ntk_t * pNtkBackup
Definition: mainInt.h:70
int nBestEdges
Definition: mainInt.h:109
char * sVersion
Definition: mainInt.h:59
void * pAbc85Ntl
Definition: mainInt.h:125
double TimeCommand
Definition: mainInt.h:81
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition: utilCex.h:39
Gia_Man_t * pGia2
Definition: mainInt.h:106
ABC_DLL Abc_Frame_t * Abc_FrameAllocate()
Definition: mainFrame.c:137
Vec_Int_t * vStatuses
Definition: mainInt.h:115
Abc_Cex_t * pCex
Definition: mainInt.h:111
int nIndFrames
Definition: mainInt.h:102
int nSteps
Definition: mainInt.h:71
Abc_Cex_t * pCex2
Definition: mainInt.h:112
ABC_DLL int main(int argc, char *argv[])
GLOBAL VARIABLES ///.
Definition: base/main/main.c:3
void * pManDsd
Definition: mainInt.h:87
int nBestLuts
Definition: mainInt.h:108
st__table * tAliases
Definition: mainInt.h:63
char * sBinary
Definition: mainInt.h:60