ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
sswInt.h
Go to the documentation of this file.
1
20
21#ifndef ABC__aig__ssw__sswInt_h
22#define ABC__aig__ssw__sswInt_h
23
24
28
29#include "aig/saig/saig.h"
30#include "sat/bsat/satSolver.h"
31#include "ssw.h"
32#include "aig/ioa/ioa.h"
33
37
38
39
41
42
46
47typedef struct Ssw_Man_t_ Ssw_Man_t; // signal correspondence manager
48typedef struct Ssw_Frm_t_ Ssw_Frm_t; // unrolled frames manager
49typedef struct Ssw_Sat_t_ Ssw_Sat_t; // SAT solver manager
50typedef struct Ssw_Cla_t_ Ssw_Cla_t; // equivalence classe manager
51
53{
54 // parameters
55 Ssw_Pars_t * pPars; // parameters
56 int nFrames; // for quick lookup
57 // AIGs used in the package
58 Aig_Man_t * pAig; // user-given AIG
59 Aig_Man_t * pFrames; // final AIG
60 Aig_Obj_t ** pNodeToFrames; // mapping of AIG nodes into FRAIG nodes
61 // equivalence classes
62 Ssw_Cla_t * ppClasses; // equivalence classes of nodes
63 int fRefined; // is set to 1 when refinement happens
64 // SAT solving
65 Ssw_Sat_t * pMSatBmc; // SAT manager for base case
66 Ssw_Sat_t * pMSat; // SAT manager for inductive case
67 // SAT solving (latch corr only)
68 Vec_Ptr_t * vSimInfo; // simulation information for the framed PIs
69 int nPatterns; // the number of patterns saved
70 int nSimRounds; // the number of simulation rounds performed
71 int nCallsCount; // the number of calls in this round
72 int nCallsDelta; // the number of calls to skip
73 int nCallsSat; // the number of SAT calls in this round
74 int nCallsUnsat; // the number of UNSAT calls in this round
75 int nRecycleCalls; // the number of calls since last recycling
76 int nRecycles; // the number of time SAT solver was recycled
77 int nRecyclesTotal; // the number of time SAT solver was recycled
78 int nVarsMax; // the maximum variables in the solver
79 int nCallsMax; // the maximum number of SAT calls
80 // uniqueness
81 Vec_Ptr_t * vCommon; // the set of common variables in the logic cones
82 int iOutputLit; // the output literal of the uniqueness constraint
83 Vec_Int_t * vDiffPairs; // is set to 1 if reg pair can be diff
84 int nUniques; // the number of uniqueness constraints used
85 int nUniquesAdded; // useful uniqueness constraints
86 int nUniquesUseful; // useful uniqueness constraints
87 // dynamic constraint addition
88 int nSRMiterMaxId; // max ID after which the last frame begins
89 Vec_Ptr_t * vNewLos; // new time frame LOs of to constrain
90 Vec_Int_t * vNewPos; // new time frame POs of to add constraints
91 int * pVisited; // flags to label visited nodes in each frame
92 int nVisCounter; // the traversal ID
93 // sequential simulation
94 Ssw_Sml_t * pSml; // the simulator
95 int iNodeStart; // the first node considered
96 int iNodeLast; // the last node considered
97 Vec_Ptr_t * vResimConsts; // resimulation constants
98 Vec_Ptr_t * vResimClasses; // resimulation classes
99 Vec_Int_t * vInits; // the init values of primary inputs under constraints
100 // counter example storage
101 int nPatWords; // the number of words in the counter example
102 unsigned * pPatWords; // the counter example
103 // constraints
104 int nConstrTotal; // the number of total constraints
105 int nConstrReduced; // the number of reduced constraints
106 int nStrangers; // the number of strange situations
107 // SAT calls statistics
108 int nSatCalls; // the number of SAT calls
109 int nSatProof; // the number of proofs
110 int nSatFailsReal; // the number of timeouts
111 int nSatCallsUnsat; // the number of unsat SAT calls
112 int nSatCallsSat; // the number of sat SAT calls
113 // node/register/lit statistics
120 // equiv statistis
129 // runtime stats
130 abctime timeBmc; // bounded model checking
131 abctime timeReduce; // speculative reduction
132 abctime timeMarkCones; // marking the cones not to be refined
133 abctime timeSimSat; // simulation of the counter-examples
134 abctime timeSat; // solving SAT
137 abctime timeSatUndec; // undecided
138 abctime timeOther; // other runtime
139 abctime timeTotal; // total runtime
140};
141
142// internal SAT manager
144{
145 Aig_Man_t * pAig; // the AIG manager
146 int fPolarFlip; // flips polarity
147 sat_solver * pSat; // recyclable SAT solver
148 int nSatVars; // the counter of SAT variables
149 Vec_Int_t * vSatVars; // mapping of each node into its SAT var
150 Vec_Ptr_t * vFanins; // fanins of the CNF node
151 Vec_Ptr_t * vUsedPis; // the PIs with SAT variables
152 int nSolverCalls; // the total number of SAT calls
153};
154
155// internal frames manager
157{
158 Aig_Man_t * pAig; // user-given AIG
159 int nObjs; // offset in terms of AIG nodes
160 int nFrames; // the number of frames in current unrolling
161 Aig_Man_t * pFrames; // unrolled AIG
162 Vec_Ptr_t * vAig2Frm; // mapping of AIG nodes into frame nodes
163};
164
168
169static inline int Ssw_ObjSatNum( Ssw_Sat_t * p, Aig_Obj_t * pObj ) { return Vec_IntGetEntry( p->vSatVars, pObj->Id ); }
170static inline void Ssw_ObjSetSatNum( Ssw_Sat_t * p, Aig_Obj_t * pObj, int Num ) { Vec_IntSetEntry(p->vSatVars, pObj->Id, Num); }
171
172static inline int Ssw_ObjIsConst1Cand( Aig_Man_t * pAig, Aig_Obj_t * pObj )
173{
174 return Aig_ObjRepr(pAig, pObj) == Aig_ManConst1(pAig);
175}
176static inline void Ssw_ObjSetConst1Cand( Aig_Man_t * pAig, Aig_Obj_t * pObj )
177{
178 assert( !Ssw_ObjIsConst1Cand( pAig, pObj ) );
179 Aig_ObjSetRepr( pAig, pObj, Aig_ManConst1(pAig) );
180}
181
182static inline Aig_Obj_t * Ssw_ObjFrame( Ssw_Man_t * p, Aig_Obj_t * pObj, int i ) { return p->pNodeToFrames[p->nFrames*pObj->Id + i]; }
183static inline void Ssw_ObjSetFrame( Ssw_Man_t * p, Aig_Obj_t * pObj, int i, Aig_Obj_t * pNode ) { p->pNodeToFrames[p->nFrames*pObj->Id + i] = pNode; }
184
185static inline Aig_Obj_t * Ssw_ObjChild0Fra( Ssw_Man_t * p, Aig_Obj_t * pObj, int i ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin0(pObj)? Aig_NotCond(Ssw_ObjFrame(p, Aig_ObjFanin0(pObj), i), Aig_ObjFaninC0(pObj)) : NULL; }
186static inline Aig_Obj_t * Ssw_ObjChild1Fra( Ssw_Man_t * p, Aig_Obj_t * pObj, int i ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin1(pObj)? Aig_NotCond(Ssw_ObjFrame(p, Aig_ObjFanin1(pObj), i), Aig_ObjFaninC1(pObj)) : NULL; }
187
188static inline Aig_Obj_t * Ssw_ObjFrame_( Ssw_Frm_t * p, Aig_Obj_t * pObj, int i ) { return (Aig_Obj_t *)Vec_PtrGetEntry( p->vAig2Frm, p->nObjs*i+pObj->Id ); }
189static inline void Ssw_ObjSetFrame_( Ssw_Frm_t * p, Aig_Obj_t * pObj, int i, Aig_Obj_t * pNode ) { Vec_PtrSetEntry( p->vAig2Frm, p->nObjs*i+pObj->Id, pNode ); }
190
191static inline Aig_Obj_t * Ssw_ObjChild0Fra_( Ssw_Frm_t * p, Aig_Obj_t * pObj, int i ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin0(pObj)? Aig_NotCond(Ssw_ObjFrame_(p, Aig_ObjFanin0(pObj), i), Aig_ObjFaninC0(pObj)) : NULL; }
192static inline Aig_Obj_t * Ssw_ObjChild1Fra_( Ssw_Frm_t * p, Aig_Obj_t * pObj, int i ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin1(pObj)? Aig_NotCond(Ssw_ObjFrame_(p, Aig_ObjFanin1(pObj), i), Aig_ObjFaninC1(pObj)) : NULL; }
193
197
198/*=== sswAig.c ===================================================*/
199extern Ssw_Frm_t * Ssw_FrmStart( Aig_Man_t * pAig );
200extern void Ssw_FrmStop( Ssw_Frm_t * p );
203/*=== sswBmc.c ===================================================*/
204/*=== sswClass.c =================================================*/
205extern Ssw_Cla_t * Ssw_ClassesStart( Aig_Man_t * pAig );
206extern void Ssw_ClassesSetData( Ssw_Cla_t * p, void * pManData,
207 unsigned (*pFuncNodeHash)(void *,Aig_Obj_t *),
208 int (*pFuncNodeIsConst)(void *,Aig_Obj_t *),
209 int (*pFuncNodesAreEqual)(void *,Aig_Obj_t *, Aig_Obj_t *) );
210extern void Ssw_ClassesStop( Ssw_Cla_t * p );
213extern void Ssw_ClassesClearRefined( Ssw_Cla_t * p );
214extern int Ssw_ClassesCand1Num( Ssw_Cla_t * p );
215extern int Ssw_ClassesClassNum( Ssw_Cla_t * p );
216extern int Ssw_ClassesLitNum( Ssw_Cla_t * p );
217extern Aig_Obj_t ** Ssw_ClassesReadClass( Ssw_Cla_t * p, Aig_Obj_t * pRepr, int * pnSize );
218extern void Ssw_ClassesCollectClass( Ssw_Cla_t * p, Aig_Obj_t * pRepr, Vec_Ptr_t * vClass );
219extern void Ssw_ClassesCheck( Ssw_Cla_t * p );
220extern void Ssw_ClassesPrint( Ssw_Cla_t * p, int fVeryVerbose );
221extern void Ssw_ClassesRemoveNode( Ssw_Cla_t * p, Aig_Obj_t * pObj );
222extern Ssw_Cla_t * Ssw_ClassesPrepare( Aig_Man_t * pAig, int nFramesK, int fLatchCorr, int fConstCorr, int fOutputCorr, int nMaxLevs, int fVerbose );
223extern Ssw_Cla_t * Ssw_ClassesPrepareSimple( Aig_Man_t * pAig, int fLatchCorr, int nMaxLevs );
226extern Ssw_Cla_t * Ssw_ClassesPreparePairs( Aig_Man_t * pAig, Vec_Int_t ** pvClasses );
227extern Ssw_Cla_t * Ssw_ClassesPreparePairsSimple( Aig_Man_t * pMiter, Vec_Int_t * vPairs );
228extern int Ssw_ClassesRefine( Ssw_Cla_t * p, int fRecursive );
229extern int Ssw_ClassesRefineGroup( Ssw_Cla_t * p, Vec_Ptr_t * vReprs, int fRecursive );
230extern int Ssw_ClassesRefineOneClass( Ssw_Cla_t * p, Aig_Obj_t * pRepr, int fRecursive );
231extern int Ssw_ClassesRefineConst1Group( Ssw_Cla_t * p, Vec_Ptr_t * vRoots, int fRecursive );
232extern int Ssw_ClassesRefineConst1( Ssw_Cla_t * p, int fRecursive );
233extern int Ssw_ClassesPrepareRehash( Ssw_Cla_t * p, Vec_Ptr_t * vCands, int fConstCorr );
234/*=== sswCnf.c ===================================================*/
235extern Ssw_Sat_t * Ssw_SatStart( int fPolarFlip );
236extern void Ssw_SatStop( Ssw_Sat_t * p );
237extern void Ssw_CnfNodeAddToSolver( Ssw_Sat_t * p, Aig_Obj_t * pObj );
238extern int Ssw_CnfGetNodeValue( Ssw_Sat_t * p, Aig_Obj_t * pObjFraig );
239/*=== sswConstr.c ===================================================*/
240extern int Ssw_ManSweepBmcConstr( Ssw_Man_t * p );
241extern int Ssw_ManSweepConstr( Ssw_Man_t * p );
242extern void Ssw_ManRefineByConstrSim( Ssw_Man_t * p );
243/*=== sswCore.c ===================================================*/
245/*=== sswDyn.c ===================================================*/
246extern void Ssw_ManLoadSolver( Ssw_Man_t * p, Aig_Obj_t * pRepr, Aig_Obj_t * pObj );
247extern int Ssw_ManSweepDyn( Ssw_Man_t * p );
248/*=== sswLcorr.c ==========================================================*/
249extern int Ssw_ManSweepLatch( Ssw_Man_t * p );
250/*=== sswMan.c ===================================================*/
251extern Ssw_Man_t * Ssw_ManCreate( Aig_Man_t * pAig, Ssw_Pars_t * pPars );
252extern void Ssw_ManCleanup( Ssw_Man_t * p );
253extern void Ssw_ManStop( Ssw_Man_t * p );
254/*=== sswSat.c ===================================================*/
255extern int Ssw_NodesAreEquiv( Ssw_Man_t * p, Aig_Obj_t * pOld, Aig_Obj_t * pNew );
256extern int Ssw_NodesAreConstrained( Ssw_Man_t * p, Aig_Obj_t * pOld, Aig_Obj_t * pNew );
257extern int Ssw_NodeIsConstrained( Ssw_Man_t * p, Aig_Obj_t * pPoObj );
258/*=== sswSemi.c ===================================================*/
259extern int Ssw_FilterUsingSemi( Ssw_Man_t * pMan, int fCheckTargets, int nConfMax, int fVerbose );
260/*=== sswSim.c ===================================================*/
261extern unsigned Ssw_SmlObjHashWord( Ssw_Sml_t * p, Aig_Obj_t * pObj );
262extern int Ssw_SmlObjIsConstWord( Ssw_Sml_t * p, Aig_Obj_t * pObj );
263extern int Ssw_SmlObjsAreEqualWord( Ssw_Sml_t * p, Aig_Obj_t * pObj0, Aig_Obj_t * pObj1 );
264extern int Ssw_SmlObjIsConstBit( void * p, Aig_Obj_t * pObj );
265extern int Ssw_SmlObjsAreEqualBit( void * p, Aig_Obj_t * pObj0, Aig_Obj_t * pObj1 );
266extern void Ssw_SmlAssignRandomFrame( Ssw_Sml_t * p, Aig_Obj_t * pObj, int iFrame );
267extern Ssw_Sml_t * Ssw_SmlStart( Aig_Man_t * pAig, int nPref, int nFrames, int nWordsFrame );
268extern void Ssw_SmlClean( Ssw_Sml_t * p );
269extern void Ssw_SmlStop( Ssw_Sml_t * p );
270extern void Ssw_SmlObjAssignConst( Ssw_Sml_t * p, Aig_Obj_t * pObj, int fConst1, int iFrame );
271extern void Ssw_SmlObjSetWord( Ssw_Sml_t * p, Aig_Obj_t * pObj, unsigned Word, int iWord, int iFrame );
272extern void Ssw_SmlAssignDist1Plus( Ssw_Sml_t * p, unsigned * pPat );
273extern void Ssw_SmlSimulateOne( Ssw_Sml_t * p );
274extern void Ssw_SmlSimulateOneFrame( Ssw_Sml_t * p );
275extern void Ssw_SmlSimulateOneDyn_rec( Ssw_Sml_t * p, Aig_Obj_t * pObj, int f, int * pVisited, int nVisCounter );
276extern void Ssw_SmlResimulateSeq( Ssw_Sml_t * p );
277/*=== sswSimSat.c ===================================================*/
278extern void Ssw_ManResimulateBit( Ssw_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pRepr );
279extern void Ssw_ManResimulateWord( Ssw_Man_t * p, Aig_Obj_t * pCand, Aig_Obj_t * pRepr, int f );
280/*=== sswSweep.c ===================================================*/
281extern int Ssw_ManGetSatVarValue( Ssw_Man_t * p, Aig_Obj_t * pObj, int f );
282extern void Ssw_SmlSavePatternAig( Ssw_Man_t * p, int f );
283extern int Ssw_ManSweepNode( Ssw_Man_t * p, Aig_Obj_t * pObj, int f, int fBmc, Vec_Int_t * vPairs );
284extern int Ssw_ManSweepBmc( Ssw_Man_t * p );
285extern int Ssw_ManSweep( Ssw_Man_t * p );
286/*=== sswUnique.c ===================================================*/
287extern void Ssw_UniqueRegisterPairInfo( Ssw_Man_t * p );
288extern int Ssw_ManUniqueOne( Ssw_Man_t * p, Aig_Obj_t * pRepr, Aig_Obj_t * pObj, int fVerbose );
289extern int Ssw_ManUniqueAddConstraint( Ssw_Man_t * p, Vec_Ptr_t * vCommon, int f1, int f2 );
290
291
292
294
295
296
297#endif
298
302
ABC_INT64_T abctime
Definition abc_global.h:332
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
struct Aig_Obj_t_ Aig_Obj_t
Definition aig.h:51
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Definition aig.h:50
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
#define sat_solver
Definition cecSatG2.c:34
Cube * p
Definition exorList.c:222
Aig_Obj_t ** Ssw_ClassesReadClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, int *pnSize)
Definition sswClass.c:307
typedefABC_NAMESPACE_HEADER_START struct Ssw_Man_t_ Ssw_Man_t
INCLUDES ///.
Definition sswInt.h:47
Ssw_Cla_t * Ssw_ClassesPrepareFromReprs(Aig_Man_t *pAig)
Definition sswClass.c:768
int Ssw_ClassesPrepareRehash(Ssw_Cla_t *p, Vec_Ptr_t *vCands, int fConstCorr)
Definition sswClass.c:500
int Ssw_ClassesRefineConst1Group(Ssw_Cla_t *p, Vec_Ptr_t *vRoots, int fRecursive)
Definition sswClass.c:1074
void Ssw_SmlAssignRandomFrame(Ssw_Sml_t *p, Aig_Obj_t *pObj, int iFrame)
Definition sswSim.c:538
Ssw_Sml_t * Ssw_SmlStart(Aig_Man_t *pAig, int nPref, int nFrames, int nWordsFrame)
Definition sswSim.c:1148
Ssw_Cla_t * Ssw_ClassesPreparePairsSimple(Aig_Man_t *pMiter, Vec_Int_t *vPairs)
Definition sswClass.c:928
int Ssw_ManUniqueAddConstraint(Ssw_Man_t *p, Vec_Ptr_t *vCommon, int f1, int f2)
Definition sswUnique.c:151
void Ssw_ManRefineByConstrSim(Ssw_Man_t *p)
Definition sswConstr.c:247
Aig_Man_t * Ssw_ClassesReadAig(Ssw_Cla_t *p)
Definition sswClass.c:211
void Ssw_SmlClean(Ssw_Sml_t *p)
Definition sswSim.c:1173
int Ssw_ClassesCand1Num(Ssw_Cla_t *p)
Definition sswClass.c:259
int Ssw_FilterUsingSemi(Ssw_Man_t *pMan, int fCheckTargets, int nConfMax, int fVerbose)
Definition sswSemi.c:261
void Ssw_SatStop(Ssw_Sat_t *p)
Definition sswCnf.c:81
struct Ssw_Cla_t_ Ssw_Cla_t
Definition sswInt.h:50
Ssw_Frm_t * Ssw_FrmStart(Aig_Man_t *pAig)
FUNCTION DECLARATIONS ///.
Definition sswAig.c:45
int Ssw_ManSweepDyn(Ssw_Man_t *p)
Definition sswDyn.c:373
int Ssw_ManSweepLatch(Ssw_Man_t *p)
Definition sswLcorr.c:238
void Ssw_ManLoadSolver(Ssw_Man_t *p, Aig_Obj_t *pRepr, Aig_Obj_t *pObj)
Definition sswDyn.c:142
void Ssw_SmlResimulateSeq(Ssw_Sml_t *p)
Definition sswSim.c:1269
void Ssw_ManResimulateBit(Ssw_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pRepr)
DECLARATIONS ///.
Definition sswSimSat.c:45
void Ssw_SmlSimulateOne(Ssw_Sml_t *p)
Definition sswSim.c:1005
void Ssw_ManStop(Ssw_Man_t *p)
Definition sswMan.c:189
void Ssw_ClassesCheck(Ssw_Cla_t *p)
Definition sswClass.c:350
Ssw_Cla_t * Ssw_ClassesPreparePairs(Aig_Man_t *pAig, Vec_Int_t **pvClasses)
Definition sswClass.c:862
int Ssw_ClassesLitNum(Ssw_Cla_t *p)
Definition sswClass.c:291
void Ssw_ClassesClearRefined(Ssw_Cla_t *p)
Definition sswClass.c:243
Ssw_Cla_t * Ssw_ClassesPrepareSimple(Aig_Man_t *pAig, int fLatchCorr, int nMaxLevs)
Definition sswClass.c:724
int Ssw_ManSweepNode(Ssw_Man_t *p, Aig_Obj_t *pObj, int f, int fBmc, Vec_Int_t *vPairs)
Definition sswSweep.c:187
int Ssw_SmlObjIsConstBit(void *p, Aig_Obj_t *pObj)
Definition sswSim.c:147
int Ssw_SmlObjsAreEqualBit(void *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
Definition sswSim.c:163
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
Definition sswSim.c:124
int Ssw_ManSweepConstr(Ssw_Man_t *p)
Definition sswConstr.c:621
void Ssw_SmlSimulateOneDyn_rec(Ssw_Sml_t *p, Aig_Obj_t *pObj, int f, int *pVisited, int nVisCounter)
Definition sswSim.c:1076
void Ssw_SmlSimulateOneFrame(Ssw_Sml_t *p)
Definition sswSim.c:1117
void Ssw_UniqueRegisterPairInfo(Ssw_Man_t *p)
DECLARATIONS ///.
Definition sswUnique.c:45
void Ssw_SmlObjSetWord(Ssw_Sml_t *p, Aig_Obj_t *pObj, unsigned Word, int iWord, int iFrame)
Definition sswSim.c:603
int Ssw_CnfGetNodeValue(Ssw_Sat_t *p, Aig_Obj_t *pObjFraig)
Definition sswCnf.c:402
int Ssw_ClassesRefineGroup(Ssw_Cla_t *p, Vec_Ptr_t *vReprs, int fRecursive)
Definition sswClass.c:1054
void Ssw_SmlSavePatternAig(Ssw_Man_t *p, int f)
Definition sswSweep.c:136
int Ssw_ClassesRefineConst1(Ssw_Cla_t *p, int fRecursive)
Definition sswClass.c:1119
Aig_Man_t * Ssw_FramesWithClasses(Ssw_Man_t *p)
Definition sswAig.c:203
Aig_Man_t * Ssw_SignalCorrespondenceRefine(Ssw_Man_t *p)
Definition sswCore.c:235
Ssw_Sat_t * Ssw_SatStart(int fPolarFlip)
DECLARATIONS ///.
Definition sswCnf.c:45
void Ssw_CnfNodeAddToSolver(Ssw_Sat_t *p, Aig_Obj_t *pObj)
Definition sswCnf.c:351
void Ssw_ClassesCollectClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, Vec_Ptr_t *vClass)
Definition sswClass.c:328
int Ssw_ManGetSatVarValue(Ssw_Man_t *p, Aig_Obj_t *pObj, int f)
DECLARATIONS ///.
Definition sswSweep.c:46
int Ssw_ManSweepBmc(Ssw_Man_t *p)
Definition sswSweep.c:272
void Ssw_FrmStop(Ssw_Frm_t *p)
Definition sswAig.c:70
Vec_Ptr_t * Ssw_ClassesGetRefined(Ssw_Cla_t *p)
Definition sswClass.c:227
void Ssw_ManCleanup(Ssw_Man_t *p)
Definition sswMan.c:158
Ssw_Man_t * Ssw_ManCreate(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
Definition sswMan.c:45
struct Ssw_Frm_t_ Ssw_Frm_t
Definition sswInt.h:48
void Ssw_SmlStop(Ssw_Sml_t *p)
Definition sswSim.c:1211
int Ssw_NodesAreEquiv(Ssw_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
DECLARATIONS ///.
Definition sswSat.c:45
int Ssw_ClassesClassNum(Ssw_Cla_t *p)
Definition sswClass.c:275
void Ssw_ClassesPrint(Ssw_Cla_t *p, int fVeryVerbose)
Definition sswClass.c:414
int Ssw_ManSweepBmcConstr(Ssw_Man_t *p)
Definition sswConstr.c:498
int Ssw_NodeIsConstrained(Ssw_Man_t *p, Aig_Obj_t *pPoObj)
Definition sswSat.c:286
void Ssw_ManResimulateWord(Ssw_Man_t *p, Aig_Obj_t *pCand, Aig_Obj_t *pRepr, int f)
Definition sswSimSat.c:92
void Ssw_SmlObjAssignConst(Ssw_Sml_t *p, Aig_Obj_t *pObj, int fConst1, int iFrame)
Definition sswSim.c:560
struct Ssw_Sat_t_ Ssw_Sat_t
Definition sswInt.h:49
Ssw_Cla_t * Ssw_ClassesStart(Aig_Man_t *pAig)
Definition sswClass.c:140
unsigned Ssw_SmlObjHashWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
FUNCTION DEFINITIONS ///.
Definition sswSim.c:63
int Ssw_NodesAreConstrained(Ssw_Man_t *p, Aig_Obj_t *pOld, Aig_Obj_t *pNew)
Definition sswSat.c:196
void Ssw_ClassesRemoveNode(Ssw_Cla_t *p, Aig_Obj_t *pObj)
Definition sswClass.c:448
int Ssw_ManUniqueOne(Ssw_Man_t *p, Aig_Obj_t *pRepr, Aig_Obj_t *pObj, int fVerbose)
Definition sswUnique.c:90
Ssw_Cla_t * Ssw_ClassesPrepare(Aig_Man_t *pAig, int nFramesK, int fLatchCorr, int fConstCorr, int fOutputCorr, int nMaxLevs, int fVerbose)
Definition sswClass.c:596
void Ssw_ClassesSetData(Ssw_Cla_t *p, void *pManData, unsigned(*pFuncNodeHash)(void *, Aig_Obj_t *), int(*pFuncNodeIsConst)(void *, Aig_Obj_t *), int(*pFuncNodesAreEqual)(void *, Aig_Obj_t *, Aig_Obj_t *))
Definition sswClass.c:167
Aig_Man_t * Ssw_SpeculativeReduction(Ssw_Man_t *p)
Definition sswAig.c:272
void Ssw_ClassesStop(Ssw_Cla_t *p)
Definition sswClass.c:189
Ssw_Cla_t * Ssw_ClassesPrepareTargets(Aig_Man_t *pAig)
Definition sswClass.c:831
int Ssw_ClassesRefine(Ssw_Cla_t *p, int fRecursive)
Definition sswClass.c:1034
int Ssw_ManSweep(Ssw_Man_t *p)
Definition sswSweep.c:373
void Ssw_SmlAssignDist1Plus(Ssw_Sml_t *p, unsigned *pPat)
Definition sswSim.c:674
int Ssw_SmlObjIsConstWord(Ssw_Sml_t *p, Aig_Obj_t *pObj)
Definition sswSim.c:102
int Ssw_ClassesRefineOneClass(Ssw_Cla_t *p, Aig_Obj_t *pRepr, int fRecursive)
Definition sswClass.c:970
struct Ssw_Sml_t_ Ssw_Sml_t
Definition ssw.h:120
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
Definition ssw.h:40
int Id
Definition aig.h:85
int nObjs
Definition sswInt.h:159
Aig_Man_t * pFrames
Definition sswInt.h:161
int nFrames
Definition sswInt.h:160
Vec_Ptr_t * vAig2Frm
Definition sswInt.h:162
Aig_Man_t * pAig
Definition sswInt.h:158
int nSatCalls
Definition sswInt.h:108
int nConstrTotal
Definition sswInt.h:104
Vec_Int_t * vInits
Definition sswInt.h:99
int nCallsSat
Definition sswInt.h:73
int * pVisited
Definition sswInt.h:91
int nPatWords
Definition sswInt.h:101
Ssw_Pars_t * pPars
Definition sswInt.h:55
int nEquivsConstr
Definition sswInt.h:124
int nFrames
Definition sswInt.h:56
int nLitsEnd
Definition sswInt.h:115
abctime timeTotal
Definition sswInt.h:139
unsigned * pPatWords
Definition sswInt.h:102
int nRegsEnd
Definition sswInt.h:119
Vec_Ptr_t * vResimConsts
Definition sswInt.h:97
abctime timeSatSat
Definition sswInt.h:135
int nConstrReduced
Definition sswInt.h:105
Vec_Int_t * vDiffPairs
Definition sswInt.h:83
int nSatCallsUnsat
Definition sswInt.h:111
abctime timeSatUndec
Definition sswInt.h:137
abctime timeOther
Definition sswInt.h:138
int nSimRounds
Definition sswInt.h:70
int nRegsBegC
Definition sswInt.h:127
Ssw_Sml_t * pSml
Definition sswInt.h:94
int nNodesBeg
Definition sswInt.h:116
abctime timeSatUnsat
Definition sswInt.h:136
int nNodesBegC
Definition sswInt.h:125
int nRecycles
Definition sswInt.h:76
int nVarsMax
Definition sswInt.h:78
abctime timeSimSat
Definition sswInt.h:133
int nUniquesUseful
Definition sswInt.h:86
Ssw_Sat_t * pMSatBmc
Definition sswInt.h:65
Vec_Ptr_t * vSimInfo
Definition sswInt.h:68
int iNodeLast
Definition sswInt.h:96
int iNodeStart
Definition sswInt.h:95
int nVisCounter
Definition sswInt.h:92
int nNodesEndC
Definition sswInt.h:126
abctime timeBmc
Definition sswInt.h:130
Ssw_Sat_t * pMSat
Definition sswInt.h:66
int nRegsBeg
Definition sswInt.h:118
int nSatFailsReal
Definition sswInt.h:110
int iOutputLit
Definition sswInt.h:82
Vec_Int_t * vNewPos
Definition sswInt.h:90
int nSatCallsSat
Definition sswInt.h:112
Aig_Obj_t ** pNodeToFrames
Definition sswInt.h:60
int nUniquesAdded
Definition sswInt.h:85
int nConesTotal
Definition sswInt.h:121
Ssw_Cla_t * ppClasses
Definition sswInt.h:62
int nRecycleCalls
Definition sswInt.h:75
Vec_Ptr_t * vNewLos
Definition sswInt.h:89
int nEquivsTotal
Definition sswInt.h:123
int nStrangers
Definition sswInt.h:106
int nSRMiterMaxId
Definition sswInt.h:88
Aig_Man_t * pFrames
Definition sswInt.h:59
int nSatProof
Definition sswInt.h:109
int nLitsBeg
Definition sswInt.h:114
int nCallsDelta
Definition sswInt.h:72
int nCallsCount
Definition sswInt.h:71
abctime timeSat
Definition sswInt.h:134
Vec_Ptr_t * vCommon
Definition sswInt.h:81
int fRefined
Definition sswInt.h:63
int nCallsUnsat
Definition sswInt.h:74
int nNodesEnd
Definition sswInt.h:117
int nConesConstr
Definition sswInt.h:122
Aig_Man_t * pAig
Definition sswInt.h:58
int nPatterns
Definition sswInt.h:69
abctime timeMarkCones
Definition sswInt.h:132
abctime timeReduce
Definition sswInt.h:131
int nRecyclesTotal
Definition sswInt.h:77
int nUniques
Definition sswInt.h:84
Vec_Ptr_t * vResimClasses
Definition sswInt.h:98
int nRegsEndC
Definition sswInt.h:128
int nCallsMax
Definition sswInt.h:79
Vec_Ptr_t * vUsedPis
Definition sswInt.h:151
Vec_Int_t * vSatVars
Definition sswInt.h:149
Aig_Man_t * pAig
Definition sswInt.h:145
Vec_Ptr_t * vFanins
Definition sswInt.h:150
int nSolverCalls
Definition sswInt.h:152
sat_solver * pSat
Definition sswInt.h:147
int fPolarFlip
Definition sswInt.h:146
int nSatVars
Definition sswInt.h:148
#define assert(ex)
Definition util_old.h:213
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition vecPtr.h:42