abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
ssw.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [ssw.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [Inductive prover with constraints.]
8 
9  Synopsis [External declarations.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - September 1, 2008.]
16 
17  Revision [$Id: ssw.h,v 1.00 2008/09/01 00:00:00 alanmi Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__aig__ssw__ssw_h
22 #define ABC__aig__ssw__ssw_h
23 
24 
25 ////////////////////////////////////////////////////////////////////////
26 /// INCLUDES ///
27 ////////////////////////////////////////////////////////////////////////
28 
29 ////////////////////////////////////////////////////////////////////////
30 /// PARAMETERS ///
31 ////////////////////////////////////////////////////////////////////////
32 
34 
35 ////////////////////////////////////////////////////////////////////////
36 /// BASIC TYPES ///
37 ////////////////////////////////////////////////////////////////////////
38 
39 // choicing parameters
40 typedef struct Ssw_Pars_t_ Ssw_Pars_t;
42 {
43  int nPartSize; // size of the partition
44  int nOverSize; // size of the overlap between partitions
45  int nFramesK; // the induction depth
46  int nFramesAddSim; // the number of additional frames to simulate
47  int fConstrs; // treat the last nConstrs POs as seq constraints
48  int fMergeFull; // enables full merge when constraints are used
49  int nMaxLevs; // the max number of levels of nodes to consider
50  int nBTLimit; // conflict limit at a node
51  int nBTLimitGlobal;// conflict limit for multiple runs
52  int nMinDomSize; // min clock domain considered for optimization
53  int nItersStop; // stop after the given number of iterations
54  int fDumpSRInit; // dumps speculative reduction
55  int nResimDelta; // the number of nodes to resimulate
56  int nStepsMax; // (scorr only) the max number of induction steps
57  int TimeLimit; // time out in seconds
58  int fPolarFlip; // uses polarity adjustment
59  int fLatchCorr; // perform register correspondence
60  int fConstCorr; // perform constant correspondence
61  int fOutputCorr; // perform 'PO correspondence'
62  int fSemiFormal; // enable semiformal filtering
63 // int fUniqueness; // enable uniqueness constraints
64  int fDynamic; // enable dynamic addition of constraints
65  int fLocalSim; // enable local simulation simulation
66  int fPartSigCorr; // uses partial signal correspondence
67  int nIsleDist; // extends islands by the given distance
68  int fScorrGia; // new signal correspondence implementation
69  int fUseCSat; // new SAT solver using when fScorrGia is selected
70  int fVerbose; // verbose stats
71  int fFlopVerbose; // verbose printout of redundant flops
72  int fEquivDump; // enables dumping equivalences
73  int fStopWhenGone; // stop when PO output is not a candidate constant
74  // optimized latch correspondence
75  int fLatchCorrOpt; // perform register correspondence (optimized)
76  int nSatVarMax; // max number of SAT vars before recycling SAT solver (optimized latch corr only)
77  int nRecycleCalls; // calls to perform before recycling SAT solver (optimized latch corr only)
78  // optimized signal correspondence
79  int nSatVarMax2; // max number of SAT vars before recycling SAT solver (optimized latch corr only)
80  int nRecycleCalls2;// calls to perform before recycling SAT solver (optimized latch corr only)
81  // internal parameters
82  int nIters; // the number of iterations performed
83  int nConflicts; // the total number of conflicts performed
84  // callback
85  void * pData;
86  void * pFunc;
87 };
88 
91 {
92  int nFrames;
93  int nWords;
94  int nBinSize;
95  int nRounds;
96  int nRestart;
97  int nRandSeed;
98  int TimeOut;
102  int fVerbose;
104  int fSilent;
106  int fMiter;
107  int fUseCex;
110  int nSolved;
112  int(*pFuncOnFail)(int,Abc_Cex_t*); // called for a failed output in MO mode
113 };
114 
115 typedef struct Ssw_Sml_t_ Ssw_Sml_t; // sequential simulation manager
116 
117 ////////////////////////////////////////////////////////////////////////
118 /// MACRO DEFINITIONS ///
119 ////////////////////////////////////////////////////////////////////////
120 
121 ////////////////////////////////////////////////////////////////////////
122 /// FUNCTION DECLARATIONS ///
123 ////////////////////////////////////////////////////////////////////////
124 
125 /*=== sswBmc.c ==========================================================*/
126 extern int Ssw_BmcDynamic( Aig_Man_t * pAig, int nFramesMax, int nConfLimit, int fVerbose, int * piFrame );
127 /*=== sswConstr.c ==========================================================*/
128 extern int Ssw_ManSetConstrPhases( Aig_Man_t * p, int nFrames, Vec_Int_t ** pvInits );
129 /*=== sswCore.c ==========================================================*/
130 extern void Ssw_ManSetDefaultParams( Ssw_Pars_t * p );
131 extern void Ssw_ManSetDefaultParamsLcorr( Ssw_Pars_t * p );
134 /*=== sswIslands.c ==========================================================*/
135 extern int Ssw_SecWithSimilarityPairs( Aig_Man_t * p0, Aig_Man_t * p1, Vec_Int_t * vPairs, Ssw_Pars_t * pPars );
136 extern int Ssw_SecWithSimilarity( Aig_Man_t * p0, Aig_Man_t * p1, Ssw_Pars_t * pPars );
137 /*=== sswMiter.c ===================================================*/
138 /*=== sswPart.c ==========================================================*/
140 /*=== sswPairs.c ===================================================*/
141 extern int Ssw_MiterStatus( Aig_Man_t * p, int fVerbose );
142 extern int Ssw_SecWithPairs( Aig_Man_t * pAig1, Aig_Man_t * pAig2, Vec_Int_t * vIds1, Vec_Int_t * vIds2, Ssw_Pars_t * pPars );
143 extern int Ssw_SecGeneral( Aig_Man_t * pAig1, Aig_Man_t * pAig2, Ssw_Pars_t * pPars );
144 extern int Ssw_SecGeneralMiter( Aig_Man_t * pMiter, Ssw_Pars_t * pPars );
145 /*=== sswRarity.c ===================================================*/
146 extern void Ssw_RarSetDefaultParams( Ssw_RarPars_t * p );
147 extern int Ssw_RarSignalFilter( Aig_Man_t * pAig, Ssw_RarPars_t * pPars );
148 extern int Ssw_RarSimulate( Aig_Man_t * pAig, Ssw_RarPars_t * pPars );
149 /*=== sswSim.c ===================================================*/
151 extern Ssw_Sml_t * Ssw_SmlSimulateSeq( Aig_Man_t * pAig, int nPref, int nFrames, int nWords );
152 extern void Ssw_SmlUnnormalize( Ssw_Sml_t * p );
153 extern void Ssw_SmlStop( Ssw_Sml_t * p );
154 extern int Ssw_SmlNumFrames( Ssw_Sml_t * p );
155 extern int Ssw_SmlNumWordsTotal( Ssw_Sml_t * p );
156 extern unsigned * Ssw_SmlSimInfo( Ssw_Sml_t * p, Aig_Obj_t * pObj );
157 extern int Ssw_SmlObjsAreEqualWord( Ssw_Sml_t * p, Aig_Obj_t * pObj0, Aig_Obj_t * pObj1 );
158 extern void Ssw_SmlInitializeSpecial( Ssw_Sml_t * p, Vec_Int_t * vInit );
159 extern int Ssw_SmlCheckNonConstOutputs( Ssw_Sml_t * p );
161 
162 
164 
165 #endif
166 
167 ////////////////////////////////////////////////////////////////////////
168 /// END OF FILE ///
169 ////////////////////////////////////////////////////////////////////////
170 
int fSemiFormal
Definition: ssw.h:62
int fSetLastState
Definition: ssw.h:101
int nPartSize
Definition: ssw.h:43
int Ssw_SmlCheckNonConstOutputs(Ssw_Sml_t *p)
Definition: sswSim.c:980
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition: vecPtr.h:42
int nSatVarMax2
Definition: ssw.h:79
Ssw_Sml_t * Ssw_SmlSimulateSeq(Aig_Man_t *pAig, int nPref, int nFrames, int nWords)
Definition: sswSim.c:1248
int nFrames
Definition: ssw.h:92
int fScorrGia
Definition: ssw.h:68
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
Definition: aig.h:50
static Llb_Mgr_t * p
Definition: llb3Image.c:950
int fConstrs
Definition: ssw.h:47
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
typedefABC_NAMESPACE_HEADER_START struct Ssw_Pars_t_ Ssw_Pars_t
INCLUDES ///.
Definition: ssw.h:40
int TimeOutGap
Definition: ssw.h:99
unsigned * Ssw_SmlSimInfo(Ssw_Sml_t *p, Aig_Obj_t *pObj)
Definition: sswSim.c:1321
int nFramesAddSim
Definition: ssw.h:46
Aig_Man_t * Ssw_SignalCorrespondence(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
Definition: sswCore.c:414
int Ssw_SmlNumFrames(Ssw_Sml_t *p)
Definition: sswSim.c:1288
int nConflicts
Definition: ssw.h:83
int fSilent
Definition: ssw.h:104
int nStepsMax
Definition: ssw.h:56
int fPartSigCorr
Definition: ssw.h:66
int fConstCorr
Definition: ssw.h:60
int nWords
Definition: abcNpn.c:127
int nIsleDist
Definition: ssw.h:67
int fNotVerbose
Definition: ssw.h:103
Ssw_Sml_t * Ssw_SmlSimulateComb(Aig_Man_t *pAig, int nWords)
Definition: sswSim.c:1228
Abc_Cex_t * pCex
Definition: ssw.h:111
int nItersStop
Definition: ssw.h:53
Aig_Man_t * Ssw_LatchCorrespondence(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
Definition: sswCore.c:521
int nIters
Definition: ssw.h:82
int fFlopVerbose
Definition: ssw.h:71
int fLocalSim
Definition: ssw.h:65
int Ssw_SmlObjsAreEqualWord(Ssw_Sml_t *p, Aig_Obj_t *pObj0, Aig_Obj_t *pObj1)
Definition: sswSim.c:124
int nSolved
Definition: ssw.h:110
int fOutputCorr
Definition: ssw.h:61
int Ssw_SecWithSimilarity(Aig_Man_t *p0, Aig_Man_t *p1, Ssw_Pars_t *pPars)
Definition: sswIslands.c:542
void Ssw_ManSetDefaultParams(Ssw_Pars_t *p)
DECLARATIONS ///.
Definition: sswCore.c:45
int nResimDelta
Definition: ssw.h:55
int nPref
Definition: sswSim.c:34
int fVerbose
Definition: ssw.h:102
int Ssw_SecWithSimilarityPairs(Aig_Man_t *p0, Aig_Man_t *p1, Vec_Int_t *vPairs, Ssw_Pars_t *pPars)
Definition: sswIslands.c:478
int TimeOut
Definition: ssw.h:98
int Ssw_RarSignalFilter(Aig_Man_t *pAig, Ssw_RarPars_t *pPars)
Definition: sswRarity.c:1219
int TimeLimit
Definition: ssw.h:57
int nRestart
Definition: ssw.h:96
void * pFunc
Definition: ssw.h:86
Definition: aig.h:69
int fLatchOnly
Definition: ssw.h:108
void * pData
Definition: ssw.h:85
int nFramesK
Definition: ssw.h:45
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
int fUseCex
Definition: ssw.h:107
Aig_Man_t * pAig
Definition: sswSim.c:33
int fEquivDump
Definition: ssw.h:72
int fPolarFlip
Definition: ssw.h:58
int(* pFuncOnFail)(int, Abc_Cex_t *)
Definition: ssw.h:112
int fLatchCorrOpt
Definition: ssw.h:75
int fStopWhenGone
Definition: ssw.h:73
int fDynamic
Definition: ssw.h:64
void Ssw_SmlInitializeSpecial(Ssw_Sml_t *p, Vec_Int_t *vInit)
Definition: sswSim.c:928
int fDumpSRInit
Definition: ssw.h:54
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
void Ssw_SmlStop(Ssw_Sml_t *p)
Definition: sswSim.c:1211
int Ssw_SecGeneral(Aig_Man_t *pAig1, Aig_Man_t *pAig2, Ssw_Pars_t *pPars)
Definition: sswPairs.c:415
void Ssw_SmlUnnormalize(Ssw_Sml_t *p)
Definition: sswSim.c:1044
int nWords
Definition: ssw.h:93
int nOverSize
Definition: ssw.h:44
int nBTLimit
Definition: ssw.h:50
int nMinDomSize
Definition: ssw.h:52
int nMaxLevs
Definition: ssw.h:49
int Ssw_ManSetConstrPhases(Aig_Man_t *p, int nFrames, Vec_Int_t **pvInits)
Definition: sswConstr.c:100
void Ssw_RarSetDefaultParams(Ssw_RarPars_t *p)
FUNCTION DEFINITIONS ///.
Definition: sswRarity.c:102
int Ssw_MiterStatus(Aig_Man_t *p, int fVerbose)
DECLARATIONS ///.
Definition: sswPairs.c:45
int fSolveAll
Definition: ssw.h:100
int Ssw_SmlNumWordsTotal(Ssw_Sml_t *p)
Definition: sswSim.c:1304
int Ssw_SecWithPairs(Aig_Man_t *pAig1, Aig_Man_t *pAig2, Vec_Int_t *vIds1, Vec_Int_t *vIds2, Ssw_Pars_t *pPars)
Definition: sswPairs.c:380
int fMergeFull
Definition: ssw.h:48
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition: utilCex.h:39
int nFrames
Definition: sswSim.c:35
int nBTLimitGlobal
Definition: ssw.h:51
int nRandSeed
Definition: ssw.h:97
int fMiter
Definition: ssw.h:106
int fUseFfGrouping
Definition: ssw.h:109
void Ssw_ManSetDefaultParamsLcorr(Ssw_Pars_t *p)
Definition: sswCore.c:92
int nRecycleCalls2
Definition: ssw.h:80
int fDropSatOuts
Definition: ssw.h:105
int nRecycleCalls
Definition: ssw.h:77
int Ssw_SecGeneralMiter(Aig_Man_t *pMiter, Ssw_Pars_t *pPars)
Definition: sswPairs.c:452
int nRounds
Definition: ssw.h:95
int nBinSize
Definition: ssw.h:94
DECLARATIONS ///.
Definition: sswSim.c:31
int Ssw_BmcDynamic(Aig_Man_t *pAig, int nFramesMax, int nConfLimit, int fVerbose, int *piFrame)
MACRO DEFINITIONS ///.
Definition: sswBmc.c:126
int fVerbose
Definition: ssw.h:70
int nSatVarMax
Definition: ssw.h:76
Aig_Man_t * Ssw_SignalCorrespondencePart(Aig_Man_t *pAig, Ssw_Pars_t *pPars)
DECLARATIONS ///.
Definition: sswPart.c:46
int fLatchCorr
Definition: ssw.h:59
int Ssw_RarSimulate(Aig_Man_t *pAig, Ssw_RarPars_t *pPars)
Definition: sswRarity.c:973
Vec_Ptr_t * Ssw_SmlSimDataPointers(Ssw_Sml_t *p)
Definition: sswSim.c:1189
int fUseCSat
Definition: ssw.h:69