ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
cec.h
Go to the documentation of this file.
1
20
21#ifndef ABC__aig__cec__cec_h
22#define ABC__aig__cec__cec_h
23
24
28
32
33
34
36
37
41
42// dynamic SAT parameters
45{
46 int SolverType; // SAT solver type
47 int nBTLimit; // conflict limit at a node
48 int nSatVarMax; // the max number of SAT variables
49 int nCallsRecycle; // calls to perform before recycling SAT solver
50 int fNonChrono; // use non-chronological backtracling (for circuit SAT only)
51 int fPolarFlip; // flops polarity of variables
52 int fCheckMiter; // the circuit is the miter
53// int fFirstStop; // stop on the first sat output
54 int fLearnCls; // perform clause learning
55 int fSaveCexes; // saves counter-examples
56 int fVerbose; // verbose stats
57};
58
59// simulation parameters
62{
63 int nWords; // the number of simulation words
64 int nFrames; // the number of simulation frames
65 int nRounds; // the number of simulation rounds
66 int nNonRefines; // the max number of rounds without refinement
67 int TimeLimit; // the runtime limit in seconds
68 int fDualOut; // miter with separate outputs
69 int fCheckMiter; // the circuit is the miter
70// int fFirstStop; // stop on the first sat output
71 int fSeqSimulate; // performs sequential simulation
72 int fLatchCorr; // consider only latch outputs
73 int fConstCorr; // consider only constants
74 int fVeryVerbose; // verbose stats
75 int fVerbose; // verbose stats
76};
77
78// semiformal parameters
81{
82 int nWords; // the number of simulation words
83 int nRounds; // the number of simulation rounds
84 int nFrames; // the max number of time frames
85 int nNonRefines; // the max number of rounds without refinement
86 int nMinOutputs; // the min outputs to accumulate
87 int nBTLimit; // conflict limit at a node
88 int TimeLimit; // the runtime limit in seconds
89 int fDualOut; // miter with separate outputs
90 int fCheckMiter; // the circuit is the miter
91// int fFirstStop; // stop on the first sat output
92 int fVerbose; // verbose stats
93};
94
95// combinational SAT sweeping parameters
98{
99 int jType; // solver type
100 int nWords; // the number of simulation words
101 int nRounds; // the number of simulation rounds
102 int nItersMax; // the maximum number of iterations of SAT sweeping
103 int nBTLimit; // conflict limit at a node
104 int nBTLimitPo; // conflict limit at an output
105 int TimeLimit; // the runtime limit in seconds
106 int nLevelMax; // restriction on the level nodes to be swept
107 int nDepthMax; // the depth in terms of steps of speculative reduction
108 int nCallsRecycle; // calls to perform before recycling SAT solver
109 int nSatVarMax; // the max number of SAT variables
110 int nGenIters; // pattern generation iterations
111 int fRewriting; // enables AIG rewriting
112 int fCheckMiter; // the circuit is the miter
113// int fFirstStop; // stop on the first sat output
114 int fDualOut; // miter with separate outputs
115 int fColorDiff; // miter with separate outputs
116 int fSatSweeping; // enable SAT sweeping
117 int fRunCSat; // enable another solver
118 int fUseCones; // use cones
119 int fUseOrigIds; // enable recording of original IDs
120 int fVeryVerbose; // verbose stats
121 int fVerbose; // verbose stats
122 int iOutFail; // the failed output
123 int fBMiterInfo; // printing BMiter information
124 int nPO; // number of po in original design given a bmiter
125 char * pDumpName; // file name to dump statistics
126};
127
128// combinational equivalence checking parameters
131{
132 int nBTLimit; // conflict limit at a node
133 int TimeLimit; // the runtime limit in seconds
134// int fFirstStop; // stop on the first sat output
135 int fUseSmartCnf; // use smart CNF computation
136 int fRewriting; // enables AIG rewriting
137 int fNaive; // performs naive SAT-based checking
138 int fSilent; // print no messages
139 int fVeryVerbose; // verbose stats
140 int fVerbose; // verbose stats
141 int iOutFail; // the number of failed output
142};
143
144// sequential register correspodence parameters
147{
148 int nWords; // the number of simulation words
149 int nRounds; // the number of simulation rounds
150 int nFrames; // the number of time frames
151 int nPrefix; // the number of time frames in the prefix
152 int nBTLimit; // conflict limit at a node
153 int nProcs; // the number of processes
154 int nPartSize; // the partition size
155 int nLevelMax; // (scorr only) the max number of levels
156 int nStepsMax; // (scorr only) the max number of induction steps
157 int nLimitMax; // (scorr only) stop after this many iterations if little or no improvement
158 int fLatchCorr; // consider only latch outputs
159 int fConstCorr; // consider only constants
160 int fUseRings; // use rings
161 int fMakeChoices; // use equilvaences as choices
162 int fUseCSat; // use circuit-based solver
163// int fFirstStop; // stop on the first sat output
164 int fUseSmartCnf; // use smart CNF computation
165 int fStopWhenGone; // quit when PO is not a candidate constant
166 int fVerboseFlops; // verbose stats
167 int fVeryVerbose; // verbose stats
168 int fVerbose; // verbose stats
169 // callback
170 void * pData;
171 void * pFunc;
172};
173
174// sequential register correspodence parameters
177{
178 int nWords; // the number of simulation words
179 int nRounds; // the number of simulation rounds
180 int nBTLimit; // conflict limit at a node
181 int fUseRings; // use rings
182 int fUseCSat; // use circuit-based solver
183 int fVeryVerbose; // verbose stats
184 int fVerbose; // verbose stats
185};
186
187// sequential synthesis parameters
190{
191 int fUseLcorr; // enables latch correspondence
192 int fUseScorr; // enables signal correspondence
193 int nBTLimit; // (scorr/lcorr) conflict limit at a node
194 int nFrames; // (scorr/lcorr) the number of timeframes
195 int nLevelMax; // (scorr only) the max number of levels
196 int fConsts; // (scl only) merging constants
197 int fEquivs; // (scl only) merging equivalences
198 int fUseMiniSat; // enables MiniSat in lcorr/scorr
199 int nMinDomSize; // the size of minimum clock domain
200 int fVeryVerbose; // verbose stats
201 int fVerbose; // verbose stats
202};
203
204// CEC SimGen parameters
207{
208 int fVerbose; // verbose flag
209 int fVeryVerbose; // verbose flag
210 int expId; // experiment ID for SimGen
211 int bitwidthOutgold; // bitwidth of the output gold
212 int nSimWords; // number of words in a round of random simulation
213 int nMaxIter; // maximum number of rounds of random simulation
214 char * outGold; // data containing outgold
215 float timeOutSim; // timeout for simulation
216 int fUseWatchlist; // use watchlist
217 float fImplicationTime; // time spent in implication
218 int nImplicationExecution; // number of times implication was executed
219 int nImplicationSuccess; // number of times implication was successful
220 int nImplicationTotalChecks; // number of times implication was checked
221 int nImplicationSuccessChecks; // number of times implication was successful
222 char * pFileName; // file name to dump simulation vectors
223};
224
228
232
233/*=== cecCec.c ==========================================================*/
234extern int Cec_ManVerify( Gia_Man_t * p, Cec_ParCec_t * pPars );
235extern int Cec_ManVerifyTwo( Gia_Man_t * p0, Gia_Man_t * p1, int fVerbose );
236extern int Cec_ManVerifyTwoInv( Gia_Man_t * p0, Gia_Man_t * p1, int fVerbose );
237extern int Cec_ManVerifySimple( Gia_Man_t * p );
238/*=== cecChoice.c ==========================================================*/
239extern Gia_Man_t * Cec_ManChoiceComputation( Gia_Man_t * pAig, Cec_ParChc_t * pPars );
240/*=== cecCorr.c ==========================================================*/
241extern int Cec_ManLSCorrespondenceClasses( Gia_Man_t * pAig, Cec_ParCor_t * pPars );
242extern Gia_Man_t * Cec_ManLSCorrespondence( Gia_Man_t * pAig, Cec_ParCor_t * pPars );
243/*=== cecCore.c ==========================================================*/
251extern Gia_Man_t * Cec_ManSatSweeping( Gia_Man_t * pAig, Cec_ParFra_t * pPars, int fSilent );
252extern Gia_Man_t * Cec_ManSatSolving( Gia_Man_t * pAig, Cec_ParSat_t * pPars, int f0Proved );
253extern void Cec_ManSimulation( Gia_Man_t * pAig, Cec_ParSim_t * pPars );
254/*=== cecSeq.c ==========================================================*/
255extern int Cec_ManSeqResimulateCounter( Gia_Man_t * pAig, Cec_ParSim_t * pPars, Abc_Cex_t * pCex );
256extern int Cec_ManSeqSemiformal( Gia_Man_t * pAig, Cec_ParSmf_t * pPars );
257extern int Cec_ManCheckNonTrivialCands( Gia_Man_t * pAig );
258/*=== cecSynth.c ==========================================================*/
259extern int Cec_SeqReadMinDomSize( Cec_ParSeq_t * p );
260extern int Cec_SeqReadVerbose( Cec_ParSeq_t * p );
262extern int Cec_SequentialSynthesisPart( Gia_Man_t * p, Cec_ParSeq_t * pPars );
263
264
265
267
268
269
270#endif
271
275
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
struct Cec_ParFra_t_ Cec_ParFra_t
Definition cec.h:96
void Cec_ManSimulation(Gia_Man_t *pAig, Cec_ParSim_t *pPars)
Definition cecCore.c:291
int Cec_ManCheckNonTrivialCands(Gia_Man_t *pAig)
Definition cecSeq.c:295
int Cec_SequentialSynthesisPart(Gia_Man_t *p, Cec_ParSeq_t *pPars)
Definition cecSynth.c:291
void Cec_ManCorSetDefaultParams(Cec_ParCor_t *p)
Definition cecCore.c:183
void Cec_ManFraSetDefaultParams(Cec_ParFra_t *p)
Definition cecCore.c:126
int Cec_SeqReadVerbose(Cec_ParSeq_t *p)
Definition cecSynth.c:89
int Cec_ManSeqSemiformal(Gia_Man_t *pAig, Cec_ParSmf_t *pPars)
Definition cecSeq.c:328
void Cec_ManSatSetDefaultParams(Cec_ParSat_t *p)
DECLARATIONS ///.
Definition cecCore.c:45
void Cec_ManCecSetDefaultParams(Cec_ParCec_t *p)
Definition cecCore.c:159
int Cec_ManVerifyTwoInv(Gia_Man_t *p0, Gia_Man_t *p1, int fVerbose)
Definition cecCec.c:468
void Cec_ManSmfSetDefaultParams(Cec_ParSmf_t *p)
Definition cecCore.c:99
Gia_Man_t * Cec_ManChoiceComputation(Gia_Man_t *pAig, Cec_ParChc_t *pPars)
Definition cecChoice.c:348
int Cec_ManLSCorrespondenceClasses(Gia_Man_t *pAig, Cec_ParCor_t *pPars)
Definition cecCorr.c:924
void Cec_SeqSynthesisSetDefaultParams(Cec_ParSeq_t *pPars)
DECLARATIONS ///.
Definition cecSynth.c:46
int Cec_ManSeqResimulateCounter(Gia_Man_t *pAig, Cec_ParSim_t *pPars, Abc_Cex_t *pCex)
Definition cecSeq.c:215
Gia_Man_t * Cec_ManSatSweeping(Gia_Man_t *pAig, Cec_ParFra_t *pPars, int fSilent)
Definition cecCore.c:344
void Cec_ManSimSetDefaultParams(Cec_ParSim_t *p)
Definition cecCore.c:71
int Cec_ManVerifySimple(Gia_Man_t *p)
Definition cecCec.c:432
struct Cec_ParCec_t_ Cec_ParCec_t
Definition cec.h:129
typedefABC_NAMESPACE_HEADER_START struct Cec_ParSat_t_ Cec_ParSat_t
INCLUDES ///.
Definition cec.h:43
struct Cec_ParSmf_t_ Cec_ParSmf_t
Definition cec.h:79
Gia_Man_t * Cec_ManSatSolving(Gia_Man_t *pAig, Cec_ParSat_t *pPars, int f0Proved)
Definition cecCore.c:236
struct Cec_ParChc_t_ Cec_ParChc_t
Definition cec.h:175
struct Cec_ParSim_t_ Cec_ParSim_t
Definition cec.h:60
void Cec_ManChcSetDefaultParams(Cec_ParChc_t *p)
Definition cecCore.c:213
struct Cec_ParSimGen_t_ Cec_ParSimGen_t
Definition cec.h:205
struct Cec_ParSeq_t_ Cec_ParSeq_t
Definition cec.h:188
Gia_Man_t * Cec_ManLSCorrespondence(Gia_Man_t *pAig, Cec_ParCor_t *pPars)
Definition cecCorr.c:1179
int Cec_ManVerifyTwo(Gia_Man_t *p0, Gia_Man_t *p1, int fVerbose)
Definition cecCec.c:453
int Cec_ManVerify(Gia_Man_t *p, Cec_ParCec_t *pPars)
MACRO DEFINITIONS ///.
Definition cecCec.c:326
struct Cec_ParCor_t_ Cec_ParCor_t
Definition cec.h:145
int Cec_SeqReadMinDomSize(Cec_ParSeq_t *p)
Definition cecSynth.c:73
Cube * p
Definition exorList.c:222
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
int nBTLimit
Definition cec.h:132
int iOutFail
Definition cec.h:141
int fRewriting
Definition cec.h:136
int fVeryVerbose
Definition cec.h:139
int TimeLimit
Definition cec.h:133
int fNaive
Definition cec.h:137
int fUseSmartCnf
Definition cec.h:135
int fSilent
Definition cec.h:138
int fVerbose
Definition cec.h:140
int fUseRings
Definition cec.h:181
int nWords
Definition cec.h:178
int fVerbose
Definition cec.h:184
int nBTLimit
Definition cec.h:180
int fVeryVerbose
Definition cec.h:183
int fUseCSat
Definition cec.h:182
int nRounds
Definition cec.h:179
int nFrames
Definition cec.h:150
int fMakeChoices
Definition cec.h:161
int fVerboseFlops
Definition cec.h:166
int nLevelMax
Definition cec.h:155
int fUseSmartCnf
Definition cec.h:164
int fUseCSat
Definition cec.h:162
int fLatchCorr
Definition cec.h:158
int nStepsMax
Definition cec.h:156
int fUseRings
Definition cec.h:160
void * pFunc
Definition cec.h:171
int fConstCorr
Definition cec.h:159
int nWords
Definition cec.h:148
void * pData
Definition cec.h:170
int nPartSize
Definition cec.h:154
int nLimitMax
Definition cec.h:157
int nBTLimit
Definition cec.h:152
int nProcs
Definition cec.h:153
int fStopWhenGone
Definition cec.h:165
int fVerbose
Definition cec.h:168
int nPrefix
Definition cec.h:151
int fVeryVerbose
Definition cec.h:167
int nRounds
Definition cec.h:149
int fDualOut
Definition cec.h:114
int fVeryVerbose
Definition cec.h:120
int fRunCSat
Definition cec.h:117
int fCheckMiter
Definition cec.h:112
int fBMiterInfo
Definition cec.h:123
int nPO
Definition cec.h:124
int fColorDiff
Definition cec.h:115
int nBTLimit
Definition cec.h:103
int nWords
Definition cec.h:100
int TimeLimit
Definition cec.h:105
int nBTLimitPo
Definition cec.h:104
int fUseCones
Definition cec.h:118
int nDepthMax
Definition cec.h:107
int fRewriting
Definition cec.h:111
int nLevelMax
Definition cec.h:106
int nItersMax
Definition cec.h:102
int nRounds
Definition cec.h:101
int nSatVarMax
Definition cec.h:109
int nGenIters
Definition cec.h:110
int jType
Definition cec.h:99
int nCallsRecycle
Definition cec.h:108
int fVerbose
Definition cec.h:121
int iOutFail
Definition cec.h:122
char * pDumpName
Definition cec.h:125
int fSatSweeping
Definition cec.h:116
int fUseOrigIds
Definition cec.h:119
int fLearnCls
Definition cec.h:54
int nBTLimit
Definition cec.h:47
int SolverType
Definition cec.h:46
int fVerbose
Definition cec.h:56
int nSatVarMax
Definition cec.h:48
int fCheckMiter
Definition cec.h:52
int fSaveCexes
Definition cec.h:55
int nCallsRecycle
Definition cec.h:49
int fPolarFlip
Definition cec.h:51
int fNonChrono
Definition cec.h:50
int nLevelMax
Definition cec.h:195
int fUseScorr
Definition cec.h:192
int nBTLimit
Definition cec.h:193
int fUseMiniSat
Definition cec.h:198
int fVeryVerbose
Definition cec.h:200
int nMinDomSize
Definition cec.h:199
int fUseLcorr
Definition cec.h:191
int fVerbose
Definition cec.h:201
int fEquivs
Definition cec.h:197
int fConsts
Definition cec.h:196
int nFrames
Definition cec.h:194
int fVeryVerbose
Definition cec.h:209
char * pFileName
Definition cec.h:222
int nImplicationSuccess
Definition cec.h:219
float fImplicationTime
Definition cec.h:217
int nImplicationTotalChecks
Definition cec.h:220
int nImplicationSuccessChecks
Definition cec.h:221
int nImplicationExecution
Definition cec.h:218
float timeOutSim
Definition cec.h:215
int fUseWatchlist
Definition cec.h:216
int bitwidthOutgold
Definition cec.h:211
int nSimWords
Definition cec.h:212
char * outGold
Definition cec.h:214
int nNonRefines
Definition cec.h:66
int fVerbose
Definition cec.h:75
int fLatchCorr
Definition cec.h:72
int fVeryVerbose
Definition cec.h:74
int TimeLimit
Definition cec.h:67
int fSeqSimulate
Definition cec.h:71
int nFrames
Definition cec.h:64
int fCheckMiter
Definition cec.h:69
int fDualOut
Definition cec.h:68
int nWords
Definition cec.h:63
int nRounds
Definition cec.h:65
int fConstCorr
Definition cec.h:73
int nBTLimit
Definition cec.h:87
int fDualOut
Definition cec.h:89
int nNonRefines
Definition cec.h:85
int nWords
Definition cec.h:82
int nRounds
Definition cec.h:83
int fVerbose
Definition cec.h:92
int fCheckMiter
Definition cec.h:90
int nMinOutputs
Definition cec.h:86
int nFrames
Definition cec.h:84
int TimeLimit
Definition cec.h:88
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition utilCex.h:39