ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
wlc.h
Go to the documentation of this file.
1
20
21#ifndef ABC__base__wlc__wlc_h
22#define ABC__base__wlc__wlc_h
23
24
28
29#include "aig/gia/gia.h"
30#include "misc/extra/extra.h"
31#include "misc/util/utilNam.h"
32#include "misc/mem/mem.h"
33#include "misc/extra/extra.h"
34#include "misc/util/utilTruth.h"
35#include "base/main/mainInt.h"
36
40
42
43// object types
44typedef enum {
45 WLC_OBJ_NONE = 0, // 00: unknown
46 WLC_OBJ_PI, // 01: primary input
47 WLC_OBJ_PO, // 02: primary output
48 WLC_OBJ_FO, // 03: flop output
49 WLC_OBJ_FI, // 04: flop input (unused)
50 WLC_OBJ_FF, // 05: flop
51 WLC_OBJ_CONST, // 06: constant
52 WLC_OBJ_BUF, // 07: buffer
53 WLC_OBJ_MUX, // 08: multiplexer
54 WLC_OBJ_SHIFT_R, // 09: shift right
55 WLC_OBJ_SHIFT_RA, // 10: shift right (arithmetic)
56 WLC_OBJ_SHIFT_L, // 11: shift left
57 WLC_OBJ_SHIFT_LA, // 12: shift left (arithmetic)
58 WLC_OBJ_ROTATE_R, // 13: rotate right
59 WLC_OBJ_ROTATE_L, // 14: rotate left
60 WLC_OBJ_BIT_NOT, // 15: bitwise NOT
61 WLC_OBJ_BIT_AND, // 16: bitwise AND
62 WLC_OBJ_BIT_OR, // 17: bitwise OR
63 WLC_OBJ_BIT_XOR, // 18: bitwise XOR
64 WLC_OBJ_BIT_NAND, // 19: bitwise NAND
65 WLC_OBJ_BIT_NOR, // 20: bitwise OR
66 WLC_OBJ_BIT_NXOR, // 21: bitwise NXOR
67 WLC_OBJ_BIT_SELECT, // 22: bit selection
68 WLC_OBJ_BIT_CONCAT, // 23: bit concatenation
69 WLC_OBJ_BIT_ZEROPAD, // 24: zero padding
70 WLC_OBJ_BIT_SIGNEXT, // 25: sign extension
71 WLC_OBJ_LOGIC_NOT, // 26: logic NOT
72 WLC_OBJ_LOGIC_IMPL, // 27: logic implication
73 WLC_OBJ_LOGIC_AND, // 28: logic AND
74 WLC_OBJ_LOGIC_OR, // 29: logic OR
75 WLC_OBJ_LOGIC_XOR, // 30: logic XOR
76 WLC_OBJ_COMP_EQU, // 31: compare equal
77 WLC_OBJ_COMP_NOTEQU, // 32: compare not equal
78 WLC_OBJ_COMP_LESS, // 33: compare less
79 WLC_OBJ_COMP_MORE, // 34: compare more
80 WLC_OBJ_COMP_LESSEQU, // 35: compare less or equal
81 WLC_OBJ_COMP_MOREEQU, // 36: compare more or equal
82 WLC_OBJ_REDUCT_AND, // 37: reduction AND
83 WLC_OBJ_REDUCT_OR, // 38: reduction OR
84 WLC_OBJ_REDUCT_XOR, // 39: reduction XOR
85 WLC_OBJ_REDUCT_NAND, // 40: reduction NAND
86 WLC_OBJ_REDUCT_NOR, // 41: reduction NOR
87 WLC_OBJ_REDUCT_NXOR, // 42: reduction NXOR
88 WLC_OBJ_ARI_ADD, // 43: arithmetic addition
89 WLC_OBJ_ARI_SUB, // 44: arithmetic subtraction
90 WLC_OBJ_ARI_MULTI, // 45: arithmetic multiplier
91 WLC_OBJ_ARI_DIVIDE, // 46: arithmetic division
92 WLC_OBJ_ARI_REM, // 47: arithmetic remainder
93 WLC_OBJ_ARI_MODULUS, // 48: arithmetic modulus
94 WLC_OBJ_ARI_POWER, // 49: arithmetic power
95 WLC_OBJ_ARI_MINUS, // 50: arithmetic minus
96 WLC_OBJ_ARI_SQRT, // 51: integer square root
97 WLC_OBJ_ARI_SQUARE, // 52: integer square
98 WLC_OBJ_TABLE, // 53: bit table
99 WLC_OBJ_READ, // 54: read port
100 WLC_OBJ_WRITE, // 55: write port
101 WLC_OBJ_ARI_ADDSUB, // 56: adder-subtractor
102 WLC_OBJ_SEL, // 57: positionally encoded selector
103 WLC_OBJ_DEC, // 58: decoder
104 WLC_OBJ_LUT, // 59: lookup table
105 WLC_OBJ_NUMBER // 59: unused
107// when adding new types, remember to update table Wlc_Names in "wlcNtk.c"
108
109
110// Unlike AIG managers and logic networks in ABC, this network treats POs and FIs
111// as attributes of internal nodes and *not* as separate types of objects.
112
113
117
118typedef struct Wlc_Obj_t_ Wlc_Obj_t;
119struct Wlc_Obj_t_ // 24 bytes
120{
121 unsigned Type : 6; // node type
122 unsigned Signed : 1; // signed
123 unsigned Mark : 1; // user mark
124 unsigned Mark2 : 1; // user mark
125 unsigned fIsPo : 1; // this is PO
126 unsigned fIsFi : 1; // this is FI
127 unsigned fXConst : 1; // this is X-valued constant
128 unsigned nFanins; // fanin count
129 int End; // range end
130 int Beg; // range begin
131 union { int Fanins[2]; // fanin IDs
132 int * pFanins[1]; };
133};
134
135typedef struct Wlc_Ntk_t_ Wlc_Ntk_t;
137{
138 char * pName; // model name
139 char * pSpec; // input file name
140 Vec_Int_t vPis; // primary inputs
141 Vec_Int_t vPos; // primary outputs
142 Vec_Int_t vCis; // combinational inputs
143 Vec_Int_t vCos; // combinational outputs
144 Vec_Int_t vFfs; // flops
145 Vec_Int_t vFfs2; // flops
146 Vec_Int_t * vArsts; // async resets
147 Vec_Int_t * vInits; // initial values
148 char * pInits; // initial values
149 int nObjs[WLC_OBJ_NUMBER]; // counter of objects of each type
150 int nAnds[WLC_OBJ_NUMBER]; // counter of AND gates after blasting
151 int fSmtLib; // the network comes from an SMT-LIB file
152 int fAsyncRst; // the network has asynchronous reset
153 int fMemPorts; // the network contains memory ports
154 int fEasyFfs; // the network contains simple flops
155 int nAssert; // the number of asserts
156 // memory for objects
158 int iObj;
164 // object names
165 Abc_Nam_t * pManName; // object names
166 Vec_Int_t vNameIds; // object name IDs
167 Vec_Int_t vValues; // value objects
168 // object attributes
169 int nTravIds; // counter of traversal IDs
170 Vec_Int_t vTravIds; // trav IDs of the objects
171 Vec_Int_t vCopies; // object first bits
172 Vec_Int_t vBits; // object mapping into AIG nodes
173 Vec_Int_t vLevels; // object levels
174 Vec_Int_t vRefs; // object reference counters
175 Vec_Int_t vPoPairs; // pairs of primary outputs
176};
177
178typedef struct Wlc_Par_t_ Wlc_Par_t;
180{
181 int nBitsAdd; // adder bit-width
182 int nBitsMul; // multiplier bit-widht
183 int nBitsMux; // MUX bit-width
184 int nBitsFlop; // flop bit-width
185 int nIterMax; // the max number of iterations
186 int nLimit; // the max number of signals
187 int fXorOutput; // XOR outputs of word-level miter
188 int fCheckClauses; // Check clauses in the reloaded trace
189 int fPushClauses; // Push clauses in the reloaded trace
190 int fMFFC; // Refine the entire MFFC of a PPI
191 int fPdra; // Use pdr -nct
192 int fLoadTrace; // Load previous traces if any
193 int fProofRefine; // Use proof-based refinement
194 int fHybrid; // Use a hybrid of CBR and PBR
195 int fCheckCombUnsat; // Check if ABS becomes comb. unsat
196 int fAbs2; // Use UFAR style createAbs
197 int fProofUsePPI; // Use PPI values in PBR
198 int fUseBmc3; // Run BMC3 in parallel
199 int fShrinkAbs; // Shrink Abs with BMC
200 int fShrinkScratch; // Restart pdr from scratch after shrinking
201 int fVerbose; // verbose output
202 int fPdrVerbose; // verbose output
203 int RunId; // id in this run
204 int (*pFuncStop)(int); // callback to terminate
205};
206
230
231static inline void Wlc_BstParDefault( Wlc_BstPar_t * pPar )
232{
233 memset( pPar, 0, sizeof(Wlc_BstPar_t) );
234 pPar->iOutput = -1;
235 pPar->nOutputRange = 0;
236 pPar->nAdderLimit = 0;
237 pPar->nMultLimit = 0;
238 pPar->fGiaSimple = 0;
239 pPar->fAddOutputs = 0;
240 pPar->fMulti = 0;
241 pPar->fBooth = 0;
242 pPar->fCla = 0;
243 pPar->fDivBy0 = 0;
244 pPar->fCreateMiter = 0;
245 pPar->fCreateWordMiter = 0;
246 pPar->fDecMuxes = 0;
247 pPar->fVerbose = 0;
248}
249
250typedef struct Wla_Man_t_ Wla_Man_t;
276
277static inline int Wlc_NtkObjNum( Wlc_Ntk_t * p ) { return p->iObj - 1; }
278static inline int Wlc_NtkObjNumMax( Wlc_Ntk_t * p ) { return p->iObj; }
279static inline int Wlc_NtkPiNum( Wlc_Ntk_t * p ) { return Vec_IntSize(&p->vPis); }
280static inline int Wlc_NtkPoNum( Wlc_Ntk_t * p ) { return Vec_IntSize(&p->vPos); }
281static inline int Wlc_NtkCiNum( Wlc_Ntk_t * p ) { return Vec_IntSize(&p->vCis); }
282static inline int Wlc_NtkCoNum( Wlc_Ntk_t * p ) { return Vec_IntSize(&p->vCos); }
283static inline int Wlc_NtkFfNum( Wlc_Ntk_t * p ) { return Vec_IntSize(&p->vCis) - Vec_IntSize(&p->vPis); }
284
285static inline Wlc_Obj_t * Wlc_NtkObj( Wlc_Ntk_t * p, int Id ) { assert(Id > 0 && Id < p->nObjsAlloc); return p->pObjs + Id; }
286static inline Wlc_Obj_t * Wlc_NtkPi( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vPis, i) ); }
287static inline Wlc_Obj_t * Wlc_NtkPo( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vPos, i) ); }
288static inline Wlc_Obj_t * Wlc_NtkCi( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vCis, i) ); }
289static inline Wlc_Obj_t * Wlc_NtkCo( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vCos, i) ); }
290static inline Wlc_Obj_t * Wlc_NtkFf( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vFfs, i) ); }
291static inline Wlc_Obj_t * Wlc_NtkFf2( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj( p, Vec_IntEntry(&p->vFfs2, i) ); }
292
293static inline int Wlc_ObjIsPi( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_PI; }
294static inline int Wlc_ObjIsPo( Wlc_Obj_t * p ) { return p->fIsPo; }
295static inline int Wlc_ObjIsCi( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_PI || p->Type == WLC_OBJ_FO; }
296static inline int Wlc_ObjIsCo( Wlc_Obj_t * p ) { return p->fIsPo || p->fIsFi; }
297static inline int Wlc_ObjIsRead( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_READ; }
298static inline int Wlc_ObjIsWrite( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_WRITE; }
299static inline int Wlc_ObjIsMux( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_MUX; }
300static inline int Wlc_ObjIsBuf( Wlc_Obj_t * p ) { return p->Type == WLC_OBJ_BUF; }
301static inline int Wlc_ObjIsFf( Wlc_Ntk_t * p, int i ) { return Wlc_NtkObj(p, i)->Type == WLC_OBJ_FF; }
302
303static inline int Wlc_ObjId( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return pObj - p->pObjs; }
304static inline int Wlc_ObjCiId( Wlc_Obj_t * p ) { assert( Wlc_ObjIsCi(p) ); return p->Fanins[1]; }
305static inline int Wlc_ObjType( Wlc_Obj_t * pObj ) { return pObj->Type; }
306static inline int Wlc_ObjFaninNum( Wlc_Obj_t * p ) { return p->nFanins; }
307static inline int Wlc_ObjHasArray( Wlc_Obj_t * p ) { return p->nFanins > 2 || p->Type == WLC_OBJ_CONST || p->Type == WLC_OBJ_BIT_SELECT; }
308static inline int * Wlc_ObjFanins( Wlc_Obj_t * p ) { return Wlc_ObjHasArray(p) ? p->pFanins[0] : p->Fanins; }
309static inline int Wlc_ObjFaninId( Wlc_Obj_t * p, int i ) { return Wlc_ObjFanins(p)[i]; }
310static inline int Wlc_ObjFaninId0( Wlc_Obj_t * p ) { return Wlc_ObjFanins(p)[0]; }
311static inline int Wlc_ObjFaninId1( Wlc_Obj_t * p ) { return Wlc_ObjFanins(p)[1]; }
312static inline int Wlc_ObjFaninId2( Wlc_Obj_t * p ) { return Wlc_ObjFanins(p)[2]; }
313static inline Wlc_Obj_t * Wlc_ObjFanin( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, int i ) { return Wlc_NtkObj( p, Wlc_ObjFaninId(pObj, i) ); }
314static inline Wlc_Obj_t * Wlc_ObjFanin0( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return Wlc_NtkObj( p, Wlc_ObjFaninId(pObj, 0) ); }
315static inline Wlc_Obj_t * Wlc_ObjFanin1( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return Wlc_NtkObj( p, Wlc_ObjFaninId(pObj, 1) ); }
316static inline Wlc_Obj_t * Wlc_ObjFanin2( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return Wlc_NtkObj( p, Wlc_ObjFaninId(pObj, 2) ); }
317
318static inline int Wlc_ObjRange( Wlc_Obj_t * p ) { return 1 + (p->End >= p->Beg ? p->End - p->Beg : p->Beg - p->End); }
319static inline int Wlc_ObjRangeEnd( Wlc_Obj_t * p ) { assert(p->Type == WLC_OBJ_BIT_SELECT); return p->pFanins[0][1]; }
320static inline int Wlc_ObjRangeBeg( Wlc_Obj_t * p ) { assert(p->Type == WLC_OBJ_BIT_SELECT); return p->pFanins[0][2]; }
321static inline int Wlc_ObjRangeIsReversed( Wlc_Obj_t * p ) { return p->End < p->Beg; }
322
323static inline int Wlc_ObjIsSigned( Wlc_Obj_t * p ) { return p->Signed; }
324static inline int Wlc_ObjIsSignedFanin01( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ){ return p->fSmtLib ? Wlc_ObjIsSigned(pObj) : (Wlc_ObjFanin0(p, pObj)->Signed && Wlc_ObjFanin1(p, pObj)->Signed); }
325static inline int Wlc_ObjIsSignedFanin0( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return p->fSmtLib ? Wlc_ObjIsSigned(pObj) : Wlc_ObjFanin0(p, pObj)->Signed; }
326static inline int Wlc_ObjIsSignedFanin1( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return p->fSmtLib ? Wlc_ObjIsSigned(pObj) : Wlc_ObjFanin1(p, pObj)->Signed; }
327static inline int Wlc_ObjSign( Wlc_Obj_t * p ) { return Abc_Var2Lit( Wlc_ObjRange(p), Wlc_ObjIsSigned(p) ); }
328static inline int * Wlc_ObjConstValue( Wlc_Obj_t * p ) { assert(p->Type == WLC_OBJ_CONST); return Wlc_ObjFanins(p); }
329static inline int Wlc_ObjTableId( Wlc_Obj_t * p ) { assert(p->Type == WLC_OBJ_TABLE); return p->Fanins[1]; }
330static inline word * Wlc_ObjTable( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return (word *)Vec_PtrEntry( p->vTables, Wlc_ObjTableId(pObj) ); }
331static inline int Wlc_ObjLevelId( Wlc_Ntk_t * p, int iObj ) { return Vec_IntEntry( &p->vLevels, iObj ); }
332static inline int Wlc_ObjLevel( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { return Wlc_ObjLevelId( p, Wlc_ObjId(p, pObj) ); }
333
334static inline void Wlc_NtkCleanCopy( Wlc_Ntk_t * p ) { Vec_IntFill( &p->vCopies, p->nObjsAlloc, 0 ); }
335static inline int Wlc_NtkHasCopy( Wlc_Ntk_t * p ) { return Vec_IntSize( &p->vCopies ) > 0; }
336static inline void Wlc_ObjSetCopy( Wlc_Ntk_t * p, int iObj, int i ) { Vec_IntWriteEntry( &p->vCopies, iObj, i ); }
337static inline int Wlc_ObjCopy( Wlc_Ntk_t * p, int iObj ) { return Vec_IntEntry( &p->vCopies, iObj ); }
338static inline Wlc_Obj_t * Wlc_ObjCopyObj(Wlc_Ntk_t * pNew, Wlc_Ntk_t * p, Wlc_Obj_t * pObj) {return Wlc_NtkObj(pNew, Wlc_ObjCopy(p, Wlc_ObjId(p, pObj))); }
339
340static inline void Wlc_NtkCleanNameId( Wlc_Ntk_t * p ) { Vec_IntFill( &p->vNameIds, p->nObjsAlloc, 0 ); }
341static inline int Wlc_NtkHasNameId( Wlc_Ntk_t * p ) { return Vec_IntSize( &p->vNameIds ) > 0; }
342static inline void Wlc_ObjSetNameId( Wlc_Ntk_t * p, int iObj, int i ) { Vec_IntWriteEntry( &p->vNameIds, iObj, i ); }
343static inline int Wlc_ObjNameId( Wlc_Ntk_t * p, int iObj ) { return Vec_IntEntry( &p->vNameIds, iObj ); }
344
345static inline Wlc_Obj_t * Wlc_ObjFo2Fi( Wlc_Ntk_t * p, Wlc_Obj_t * pObj ) { assert( pObj->Type == WLC_OBJ_FO ); return Wlc_NtkCo(p, Wlc_NtkPoNum(p) + Wlc_ObjCiId(pObj) - Wlc_NtkPiNum(p)); }
346static inline Wlc_Obj_t * Wlc_ObjCo2PoFo( Wlc_Ntk_t * p, int iCoId ) { return iCoId < Wlc_NtkPoNum(p) ? Wlc_NtkPo(p, iCoId) : Wlc_NtkCi(p, Wlc_NtkPiNum(p) + iCoId - Wlc_NtkPoNum(p)); }
347
351
355
356#define Wlc_NtkForEachObj( p, pObj, i ) \
357 for ( i = 1; (i < Wlc_NtkObjNumMax(p)) && (((pObj) = Wlc_NtkObj(p, i)), 1); i++ )
358#define Wlc_NtkForEachObjReverse( p, pObj, i ) \
359 for ( i = Wlc_NtkObjNumMax(p) - 1; (i > 0) && (((pObj) = Wlc_NtkObj(p, i)), 1); i-- )
360#define Wlc_NtkForEachObjVec( vVec, p, pObj, i ) \
361 for ( i = 0; (i < Vec_IntSize(vVec)) && (((pObj) = Wlc_NtkObj(p, Vec_IntEntry(vVec, i))), 1); i++ )
362#define Wlc_NtkForEachPi( p, pPi, i ) \
363 for ( i = 0; (i < Wlc_NtkPiNum(p)) && (((pPi) = Wlc_NtkPi(p, i)), 1); i++ )
364#define Wlc_NtkForEachPo( p, pPo, i ) \
365 for ( i = 0; (i < Wlc_NtkPoNum(p)) && (((pPo) = Wlc_NtkPo(p, i)), 1); i++ )
366#define Wlc_NtkForEachCi( p, pCi, i ) \
367 for ( i = 0; (i < Wlc_NtkCiNum(p)) && (((pCi) = Wlc_NtkCi(p, i)), 1); i++ )
368#define Wlc_NtkForEachCo( p, pCo, i ) \
369 for ( i = 0; (i < Wlc_NtkCoNum(p)) && (((pCo) = Wlc_NtkCo(p, i)), 1); i++ )
370#define Wlc_NtkForEachFf( p, pFf, i ) \
371 for ( i = 0; (i < Vec_IntSize(&p->vFfs)) && (((pFf) = Wlc_NtkFf(p, i)), 1); i++ )
372#define Wlc_NtkForEachFf2( p, pFf, i ) \
373 for ( i = 0; (i < Vec_IntSize(&p->vFfs2)) && (((pFf) = Wlc_NtkFf2(p, i)), 1); i++ )
374
375#define Wlc_ObjForEachFanin( pObj, iFanin, i ) \
376 for ( i = 0; (i < Wlc_ObjFaninNum(pObj)) && (((iFanin) = Wlc_ObjFaninId(pObj, i)), 1); i++ )
377#define Wlc_ObjForEachFaninObj( p, pObj, pFanin, i ) \
378 for ( i = 0; (i < Wlc_ObjFaninNum(pObj)) && (((pFanin) = Wlc_NtkObj(p, Wlc_ObjFaninId(pObj, i))), 1); i++ )
379#define Wlc_ObjForEachFaninReverse( pObj, iFanin, i ) \
380 for ( i = Wlc_ObjFaninNum(pObj) - 1; (i >= 0) && (((iFanin) = Wlc_ObjFaninId(pObj, i)), 1); i-- )
381
382
386
387/*=== wlcAbs.c ========================================================*/
388extern int Wlc_NtkAbsCore( Wlc_Ntk_t * p, Wlc_Par_t * pPars );
389extern int Wlc_NtkPdrAbs( Wlc_Ntk_t * p, Wlc_Par_t * pPars );
390/*=== wlcAbs2.c ========================================================*/
391extern int Wlc_NtkAbsCore2( Wlc_Ntk_t * p, Wlc_Par_t * pPars );
392/*=== wlcBlast.c ========================================================*/
393extern Gia_Man_t * Wlc_NtkBitBlast( Wlc_Ntk_t * p, Wlc_BstPar_t * pPars );
394/*=== wlcCom.c ========================================================*/
395extern void Wlc_SetNtk( Abc_Frame_t * pAbc, Wlc_Ntk_t * pNtk );
396/*=== wlcMem.c ========================================================*/
397extern Vec_Int_t * Wlc_NtkCollectMemory( Wlc_Ntk_t * p, int fClean );
398extern void Wlc_NtkPrintMemory( Wlc_Ntk_t * p );
400extern int Wlc_NtkMemAbstract( Wlc_Ntk_t * p, int nIterMax, int fDumpAbs, int fPdrVerbose, int fVerbose );
401extern Wlc_Ntk_t * Wlc_NtkAbstractMem( Wlc_Ntk_t * p, int nFrames, int fVerbose );
402/*=== wlcNdr.c ========================================================*/
403extern Wlc_Ntk_t * Wlc_ReadNdr( char * pFileName );
404extern void Wlc_WriteNdr( Wlc_Ntk_t * pNtk, char * pFileName );
405extern Wlc_Ntk_t * Wlc_NtkFromNdr( void * pData );
406extern void * Wlc_NtkToNdr( Wlc_Ntk_t * pNtk );
407/*=== wlcNtk.c ========================================================*/
408extern void Wlc_ManSetDefaultParams( Wlc_Par_t * pPars );
409extern char * Wlc_ObjTypeName( Wlc_Obj_t * p );
410extern Wlc_Ntk_t * Wlc_NtkAlloc( char * pName, int nObjsAlloc );
411extern int Wlc_ObjAlloc( Wlc_Ntk_t * p, int Type, int Signed, int End, int Beg );
412extern int Wlc_ObjCreate( Wlc_Ntk_t * p, int Type, int Signed, int End, int Beg, Vec_Int_t * vFanins );
413extern void Wlc_ObjSetCi( Wlc_Ntk_t * p, Wlc_Obj_t * pObj );
414extern void Wlc_ObjSetCo( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, int fFlopInput );
415extern char * Wlc_ObjName( Wlc_Ntk_t * p, int iObj );
416extern void Wlc_ObjUpdateType( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, int Type );
417extern void Wlc_ObjAddFanins( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, Vec_Int_t * vFanins );
418extern int Wlc_ObjDup( Wlc_Ntk_t * pNew, Wlc_Ntk_t * p, int iObj, Vec_Int_t * vFanins );
419extern void Wlc_NtkFree( Wlc_Ntk_t * p );
420extern int Wlc_NtkCreateLevels( Wlc_Ntk_t * p );
421extern int Wlc_NtkCreateLevelsRev( Wlc_Ntk_t * p );
422extern int Wlc_NtkRemapLevels( Wlc_Ntk_t * p, Vec_Int_t * vObjs, int nLevels );
423extern int Wlc_NtkCountRealPis( Wlc_Ntk_t * p );
424extern void Wlc_NtkPrintNode( Wlc_Ntk_t * p, Wlc_Obj_t * pObj );
425extern void Wlc_NtkPrintNodeArray( Wlc_Ntk_t * p, Vec_Int_t * vArray );
426extern void Wlc_NtkPrintNodes( Wlc_Ntk_t * p, int Type );
427extern void Wlc_NtkPrintStats( Wlc_Ntk_t * p, int fDistrib, int fTwoSides, int fVerbose );
428extern void Wlc_NtkPrintObjects( Wlc_Ntk_t * p );
429extern void Wlc_NtkTransferNames( Wlc_Ntk_t * pNew, Wlc_Ntk_t * p );
430extern char * Wlc_NtkNewName( Wlc_Ntk_t * p, int iCoId, int fSeq );
431extern Wlc_Ntk_t * Wlc_NtkDupDfs( Wlc_Ntk_t * p, int fMarked, int fSeq );
432extern Wlc_Ntk_t * Wlc_NtkDupDfsAbs( Wlc_Ntk_t * p, Vec_Int_t * vPisOld, Vec_Int_t * vPisNew, Vec_Int_t * vFlops );
434extern void Wlc_NtkCleanMarks( Wlc_Ntk_t * p );
435extern void Wlc_NtkMarkCone( Wlc_Ntk_t * p, int iCoId, int Range, int fSeq, int fAllPis );
436extern void Wlc_NtkProfileCones( Wlc_Ntk_t * p );
438extern void Wlc_NtkShortNames( Wlc_Ntk_t * p );
439extern int Wlc_NtkDcFlopNum( Wlc_Ntk_t * p );
440extern void Wlc_NtkSetRefs( Wlc_Ntk_t * p );
441extern int Wlc_NtkCountObjBits( Wlc_Ntk_t * p, Vec_Int_t * vPisNew );
442/*=== wlcReadSmt.c ========================================================*/
443extern Wlc_Ntk_t * Wlc_ReadSmtBuffer( char * pFileName, char * pBuffer, char * pLimit, int fOldParser, int fPrintTree );
444extern Wlc_Ntk_t * Wlc_ReadSmt( char * pFileName, int fOldParser, int fPrintTree );
445/*=== wlcSim.c ========================================================*/
446extern Vec_Ptr_t * Wlc_NtkSimulate( Wlc_Ntk_t * p, Vec_Int_t * vNodes, int nWords, int nFrames );
447extern void Wlc_NtkDeleteSim( Vec_Ptr_t * p );
448/*=== wlcStdin.c ========================================================*/
449extern int Wlc_StdinProcessSmt( Abc_Frame_t * pAbc, char * pCmd );
450/*=== wlcReadVer.c ========================================================*/
451extern char * Wlc_PrsConvertInitValues( Wlc_Ntk_t * p );
452extern Wlc_Ntk_t * Wlc_ReadVer( char * pFileName, char * pStr, int fInter );
453/*=== wlcUif.c ========================================================*/
454extern Vec_Int_t * Wlc_NtkCollectAddMult( Wlc_Ntk_t * p, Wlc_BstPar_t * pPar, int * pCountA, int * CountM );
455extern int Wlc_NtkPairIsUifable( Wlc_Ntk_t * p, Wlc_Obj_t * pObj, Wlc_Obj_t * pObj2 );
458extern Wlc_Ntk_t * Wlc_NtkAbstractNodes( Wlc_Ntk_t * pNtk, Vec_Int_t * vNodes );
459extern Wlc_Ntk_t * Wlc_NtkUifNodePairs( Wlc_Ntk_t * pNtk, Vec_Int_t * vPairs );
460/*=== wlcWin.c =============================================================*/
461extern void Wlc_WinProfileArith( Wlc_Ntk_t * p );
462/*=== wlcWriteVer.c ========================================================*/
463extern void Wlc_WriteVer( Wlc_Ntk_t * p, char * pFileName, int fAddCos, int fNoFlops );
464
465
467
468#endif
469
473
int nWords
Definition abcNpn.c:127
ABC_INT64_T abctime
Definition abc_global.h:332
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_HEADER_START struct Abc_Frame_t_ Abc_Frame_t
INCLUDES ///.
Definition abcapis.h:38
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
Cube * p
Definition exorList.c:222
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
unsigned __int64 word
DECLARATIONS ///.
Definition kitPerm.c:36
struct Mem_Flex_t_ Mem_Flex_t
Definition mem.h:34
Vec_Int_t * vBlacks
Definition wlc.h:256
abctime tCbr
Definition wlc.h:273
Vec_Int_t * vSignals
Definition wlc.h:257
int iCexFrame
Definition wlc.h:264
abctime tPbr
Definition wlc.h:274
Vec_Vec_t * vClauses
Definition wlc.h:255
int nIters
Definition wlc.h:267
Wlc_Par_t * pPars
Definition wlc.h:254
abctime tPdr
Definition wlc.h:272
int nNDisj
Definition wlc.h:270
int fNewAbs
Definition wlc.h:265
Abc_Cex_t * pCex
Definition wlc.h:258
Vec_Bit_t * vUnmark
Definition wlc.h:260
Gia_Man_t * pGia
Definition wlc.h:259
Wlc_Ntk_t * p
Definition wlc.h:253
int nTotalCla
Definition wlc.h:268
int nDisj
Definition wlc.h:269
void * pThread
Definition wlc.h:262
void * pPdrPars
Definition wlc.h:261
int fNonRest
Definition wlc.h:218
int nMultLimit
Definition wlc.h:213
int fNoCleanup
Definition wlc.h:221
int fGiaSimple
Definition wlc.h:214
int fAddOutputs
Definition wlc.h:215
int fDivBy0
Definition wlc.h:220
int fDecMuxes
Definition wlc.h:224
int fSaveFfNames
Definition wlc.h:225
int fCreateWordMiter
Definition wlc.h:223
int fCreateMiter
Definition wlc.h:222
int nOutputRange
Definition wlc.h:211
int fCla
Definition wlc.h:219
Vec_Int_t * vBoxIds
Definition wlc.h:228
int fVerbose
Definition wlc.h:227
int fBlastNew
Definition wlc.h:226
int fMulti
Definition wlc.h:216
int iOutput
Definition wlc.h:210
int nAdderLimit
Definition wlc.h:212
int fBooth
Definition wlc.h:217
int fAsyncRst
Definition wlc.h:152
int nTravIds
Definition wlc.h:169
int iObj
Definition wlc.h:158
char * pSpec
Definition wlc.h:139
Vec_Int_t vPos
Definition wlc.h:141
char * pInits
Definition wlc.h:148
Vec_Int_t vBits
Definition wlc.h:172
Vec_Int_t vFfs
Definition wlc.h:144
Mem_Flex_t * pMemTable
Definition wlc.h:161
int fSmtLib
Definition wlc.h:151
Vec_Int_t vCis
Definition wlc.h:142
Vec_Int_t vCopies
Definition wlc.h:171
Vec_Int_t vFfs2
Definition wlc.h:145
int fEasyFfs
Definition wlc.h:154
Vec_Wrd_t * vLutTruths
Definition wlc.h:163
Abc_Nam_t * pManName
Definition wlc.h:165
char * pName
Definition wlc.h:138
Wlc_Obj_t * pObjs
Definition wlc.h:157
Vec_Ptr_t * vTables
Definition wlc.h:162
int nAssert
Definition wlc.h:155
Vec_Int_t vTravIds
Definition wlc.h:170
int fMemPorts
Definition wlc.h:153
Mem_Flex_t * pMemFanin
Definition wlc.h:160
Vec_Int_t * vInits
Definition wlc.h:147
Vec_Int_t vCos
Definition wlc.h:143
Vec_Int_t vLevels
Definition wlc.h:173
int nObjsAlloc
Definition wlc.h:159
Vec_Int_t * vArsts
Definition wlc.h:146
Vec_Int_t vPoPairs
Definition wlc.h:175
Vec_Int_t vValues
Definition wlc.h:167
int nObjs[WLC_OBJ_NUMBER]
Definition wlc.h:149
Vec_Int_t vPis
Definition wlc.h:140
int nAnds[WLC_OBJ_NUMBER]
Definition wlc.h:150
Vec_Int_t vRefs
Definition wlc.h:174
Vec_Int_t vNameIds
Definition wlc.h:166
unsigned fIsPo
Definition wlc.h:125
unsigned Type
Definition wlc.h:121
int End
Definition wlc.h:129
unsigned fIsFi
Definition wlc.h:126
unsigned Signed
Definition wlc.h:122
unsigned Mark2
Definition wlc.h:124
unsigned fXConst
Definition wlc.h:127
unsigned nFanins
Definition wlc.h:128
int * pFanins[1]
Definition wlc.h:132
unsigned Mark
Definition wlc.h:123
int Fanins[2]
Definition wlc.h:131
int Beg
Definition wlc.h:130
int nBitsAdd
Definition wlc.h:181
int fCheckCombUnsat
Definition wlc.h:195
int fXorOutput
Definition wlc.h:187
int fHybrid
Definition wlc.h:194
int fPdra
Definition wlc.h:191
int fAbs2
Definition wlc.h:196
int fShrinkAbs
Definition wlc.h:199
int fShrinkScratch
Definition wlc.h:200
int nBitsMul
Definition wlc.h:182
int fProofUsePPI
Definition wlc.h:197
int(* pFuncStop)(int)
Definition wlc.h:204
int nIterMax
Definition wlc.h:185
int fPdrVerbose
Definition wlc.h:202
int fVerbose
Definition wlc.h:201
int fUseBmc3
Definition wlc.h:198
int nBitsMux
Definition wlc.h:183
int nBitsFlop
Definition wlc.h:184
int fPushClauses
Definition wlc.h:189
int nLimit
Definition wlc.h:186
int fCheckClauses
Definition wlc.h:188
int RunId
Definition wlc.h:203
int fLoadTrace
Definition wlc.h:192
int fProofRefine
Definition wlc.h:193
int fMFFC
Definition wlc.h:190
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition utilCex.h:39
typedefABC_NAMESPACE_HEADER_START struct Abc_Nam_t_ Abc_Nam_t
INCLUDES ///.
Definition utilNam.h:39
#define assert(ex)
Definition util_old.h:213
char * memset()
typedefABC_NAMESPACE_HEADER_START struct Vec_Bit_t_ Vec_Bit_t
INCLUDES ///.
Definition vecBit.h:42
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition vecPtr.h:42
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
Definition vecVec.h:42
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.
Definition vecWrd.h:42
struct Wlc_Par_t_ Wlc_Par_t
Definition wlc.h:178
Wlc_Ntk_t * Wlc_NtkDupDfsAbs(Wlc_Ntk_t *p, Vec_Int_t *vPisOld, Vec_Int_t *vPisNew, Vec_Int_t *vFlops)
Definition wlcNtk.c:1055
Wlc_Ntk_t * Wlc_NtkUifNodePairs(Wlc_Ntk_t *pNtk, Vec_Int_t *vPairs)
Definition wlcUif.c:236
void Wlc_NtkDeleteSim(Vec_Ptr_t *p)
Definition wlcSim.c:120
int Wlc_NtkAbsCore2(Wlc_Ntk_t *p, Wlc_Par_t *pPars)
Definition wlcAbs2.c:302
Vec_Ptr_t * Wlc_NtkSimulate(Wlc_Ntk_t *p, Vec_Int_t *vNodes, int nWords, int nFrames)
Definition wlcSim.c:128
void Wlc_NtkTransferNames(Wlc_Ntk_t *pNew, Wlc_Ntk_t *p)
Definition wlcNtk.c:830
void Wlc_NtkPrintMemory(Wlc_Ntk_t *p)
Definition wlcMem.c:239
void Wlc_WriteNdr(Wlc_Ntk_t *pNtk, char *pFileName)
Definition wlcNdr.c:247
int Wlc_NtkCountRealPis(Wlc_Ntk_t *p)
Definition wlcNtk.c:445
Gia_Man_t * Wlc_NtkBitBlast(Wlc_Ntk_t *p, Wlc_BstPar_t *pPars)
Definition wlcBlast.c:1349
void Wlc_NtkPrintNode(Wlc_Ntk_t *p, Wlc_Obj_t *pObj)
Definition wlcNtk.c:703
char * Wlc_NtkNewName(Wlc_Ntk_t *p, int iCoId, int fSeq)
Definition wlcNtk.c:847
int Wlc_ObjAlloc(Wlc_Ntk_t *p, int Type, int Signed, int End, int Beg)
Definition wlcNtk.c:199
Vec_Int_t * Wlc_NtkFindUifableMultiplierPairs(Wlc_Ntk_t *p)
Definition wlcUif.c:145
void Wlc_NtkCleanMarks(Wlc_Ntk_t *p)
Definition wlcNtk.c:1135
int Wlc_NtkPdrAbs(Wlc_Ntk_t *p, Wlc_Par_t *pPars)
Definition wlcAbs.c:1755
void Wlc_ObjSetCo(Wlc_Ntk_t *p, Wlc_Obj_t *pObj, int fFlopInput)
Definition wlcNtk.c:188
void Wlc_ManSetDefaultParams(Wlc_Par_t *pPars)
FUNCTION DEFINITIONS ///.
Definition wlcNtk.c:114
Wlc_Ntk_t * Wlc_NtkMemAbstractTest(Wlc_Ntk_t *p)
Definition wlcMem.c:954
void Wlc_NtkPrintNodeArray(Wlc_Ntk_t *p, Vec_Int_t *vArray)
Definition wlcNtk.c:764
int Wlc_NtkAbsCore(Wlc_Ntk_t *p, Wlc_Par_t *pPars)
FUNCTION DECLARATIONS ///.
Definition wlcAbs.c:1786
Wlc_Ntk_t * Wlc_NtkDupDfs(Wlc_Ntk_t *p, int fMarked, int fSeq)
Definition wlcNtk.c:986
Wlc_Ntk_t * Wlc_NtkAlloc(char *pName, int nObjsAlloc)
Definition wlcNtk.c:152
void Wlc_NtkFree(Wlc_Ntk_t *p)
Definition wlcNtk.c:253
void Wlc_NtkShortNames(Wlc_Ntk_t *p)
Definition wlcNtk.c:1292
void Wlc_NtkSetRefs(Wlc_Ntk_t *p)
Definition wlcNtk.c:1373
void Wlc_NtkProfileCones(Wlc_Ntk_t *p)
Definition wlcNtk.c:1202
Wlc_Ntk_t * Wlc_NtkFromNdr(void *pData)
Definition wlcNdr.c:366
struct Wlc_Ntk_t_ Wlc_Ntk_t
Definition wlc.h:135
void Wlc_NtkPrintNodes(Wlc_Ntk_t *p, int Type)
Definition wlcNtk.c:771
char * Wlc_PrsConvertInitValues(Wlc_Ntk_t *p)
Definition wlcReadVer.c:440
Wlc_Ntk_t * Wlc_NtkAbstractNodes(Wlc_Ntk_t *pNtk, Vec_Int_t *vNodes)
Definition wlcUif.c:182
int Wlc_NtkMemAbstract(Wlc_Ntk_t *p, int nIterMax, int fDumpAbs, int fPdrVerbose, int fVerbose)
Definition wlcMem.c:986
void Wlc_WinProfileArith(Wlc_Ntk_t *p)
Definition wlcWin.c:132
char * Wlc_ObjTypeName(Wlc_Obj_t *p)
Definition wlcNtk.c:97
int Wlc_ObjDup(Wlc_Ntk_t *pNew, Wlc_Ntk_t *p, int iObj, Vec_Int_t *vFanins)
Definition wlcNtk.c:930
Wlc_Ntk_t * Wlc_ReadSmtBuffer(char *pFileName, char *pBuffer, char *pLimit, int fOldParser, int fPrintTree)
void Wlc_NtkPrintStats(Wlc_Ntk_t *p, int fDistrib, int fTwoSides, int fVerbose)
Definition wlcNtk.c:784
Vec_Int_t * Wlc_NtkCollectMemory(Wlc_Ntk_t *p, int fClean)
Definition wlcMem.c:216
void Wlc_ObjAddFanins(Wlc_Ntk_t *p, Wlc_Obj_t *pObj, Vec_Int_t *vFanins)
Definition wlcNtk.c:240
void Wlc_ObjSetCi(Wlc_Ntk_t *p, Wlc_Obj_t *pObj)
Definition wlcNtk.c:168
void * Wlc_NtkToNdr(Wlc_Ntk_t *pNtk)
Definition wlcNdr.c:190
void Wlc_NtkPrintObjects(Wlc_Ntk_t *p)
Definition wlcNtk.c:812
Wlc_Ntk_t * Wlc_NtkAbstractMem(Wlc_Ntk_t *p, int nFrames, int fVerbose)
Definition wlcMem.c:1383
void Wlc_NtkMarkCone(Wlc_Ntk_t *p, int iCoId, int Range, int fSeq, int fAllPis)
Definition wlcNtk.c:1181
void Wlc_WriteVer(Wlc_Ntk_t *p, char *pFileName, int fAddCos, int fNoFlops)
int Wlc_StdinProcessSmt(Abc_Frame_t *pAbc, char *pCmd)
Definition wlcStdin.c:190
Wlc_Ntk_t * Wlc_NtkDupSingleNodes(Wlc_Ntk_t *p)
Definition wlcNtk.c:1232
int Wlc_NtkCreateLevels(Wlc_Ntk_t *p)
Definition wlcNtk.c:372
int Wlc_NtkCreateLevelsRev(Wlc_Ntk_t *p)
Definition wlcNtk.c:326
void Wlc_ObjUpdateType(Wlc_Ntk_t *p, Wlc_Obj_t *pObj, int Type)
Definition wlcNtk.c:233
Vec_Int_t * Wlc_NtkCollectMultipliers(Wlc_Ntk_t *p)
Definition wlcUif.c:121
int Wlc_ObjCreate(Wlc_Ntk_t *p, int Type, int Signed, int End, int Beg, Vec_Int_t *vFanins)
Definition wlcNtk.c:219
char * Wlc_ObjName(Wlc_Ntk_t *p, int iObj)
Definition wlcNtk.c:225
int Wlc_NtkPairIsUifable(Wlc_Ntk_t *p, Wlc_Obj_t *pObj, Wlc_Obj_t *pObj2)
Definition wlcUif.c:89
int Wlc_NtkRemapLevels(Wlc_Ntk_t *p, Vec_Int_t *vObjs, int nLevels)
Definition wlcNtk.c:387
Wlc_ObjType_t
INCLUDES ///.
Definition wlc.h:44
@ WLC_OBJ_ARI_MULTI
Definition wlc.h:90
@ WLC_OBJ_PO
Definition wlc.h:47
@ WLC_OBJ_READ
Definition wlc.h:99
@ WLC_OBJ_BIT_SIGNEXT
Definition wlc.h:70
@ WLC_OBJ_COMP_LESSEQU
Definition wlc.h:80
@ WLC_OBJ_LOGIC_XOR
Definition wlc.h:75
@ WLC_OBJ_WRITE
Definition wlc.h:100
@ WLC_OBJ_SHIFT_LA
Definition wlc.h:57
@ WLC_OBJ_BIT_ZEROPAD
Definition wlc.h:69
@ WLC_OBJ_COMP_MOREEQU
Definition wlc.h:81
@ WLC_OBJ_BUF
Definition wlc.h:52
@ WLC_OBJ_COMP_MORE
Definition wlc.h:79
@ WLC_OBJ_REDUCT_AND
Definition wlc.h:82
@ WLC_OBJ_ARI_POWER
Definition wlc.h:94
@ WLC_OBJ_ARI_REM
Definition wlc.h:92
@ WLC_OBJ_ARI_SUB
Definition wlc.h:89
@ WLC_OBJ_LOGIC_OR
Definition wlc.h:74
@ WLC_OBJ_SEL
Definition wlc.h:102
@ WLC_OBJ_LOGIC_AND
Definition wlc.h:73
@ WLC_OBJ_NUMBER
Definition wlc.h:105
@ WLC_OBJ_COMP_LESS
Definition wlc.h:78
@ WLC_OBJ_ARI_SQUARE
Definition wlc.h:97
@ WLC_OBJ_REDUCT_NOR
Definition wlc.h:86
@ WLC_OBJ_BIT_NOT
Definition wlc.h:60
@ WLC_OBJ_SHIFT_R
Definition wlc.h:54
@ WLC_OBJ_TABLE
Definition wlc.h:98
@ WLC_OBJ_BIT_AND
Definition wlc.h:61
@ WLC_OBJ_CONST
Definition wlc.h:51
@ WLC_OBJ_FO
Definition wlc.h:48
@ WLC_OBJ_ARI_DIVIDE
Definition wlc.h:91
@ WLC_OBJ_REDUCT_NAND
Definition wlc.h:85
@ WLC_OBJ_NONE
Definition wlc.h:45
@ WLC_OBJ_BIT_SELECT
Definition wlc.h:67
@ WLC_OBJ_REDUCT_OR
Definition wlc.h:83
@ WLC_OBJ_MUX
Definition wlc.h:53
@ WLC_OBJ_BIT_NAND
Definition wlc.h:64
@ WLC_OBJ_ARI_ADDSUB
Definition wlc.h:101
@ WLC_OBJ_LOGIC_NOT
Definition wlc.h:71
@ WLC_OBJ_COMP_NOTEQU
Definition wlc.h:77
@ WLC_OBJ_PI
Definition wlc.h:46
@ WLC_OBJ_REDUCT_XOR
Definition wlc.h:84
@ WLC_OBJ_BIT_NOR
Definition wlc.h:65
@ WLC_OBJ_BIT_CONCAT
Definition wlc.h:68
@ WLC_OBJ_BIT_OR
Definition wlc.h:62
@ WLC_OBJ_BIT_XOR
Definition wlc.h:63
@ WLC_OBJ_ARI_MINUS
Definition wlc.h:95
@ WLC_OBJ_DEC
Definition wlc.h:103
@ WLC_OBJ_ARI_MODULUS
Definition wlc.h:93
@ WLC_OBJ_ARI_ADD
Definition wlc.h:88
@ WLC_OBJ_COMP_EQU
Definition wlc.h:76
@ WLC_OBJ_ARI_SQRT
Definition wlc.h:96
@ WLC_OBJ_LOGIC_IMPL
Definition wlc.h:72
@ WLC_OBJ_SHIFT_L
Definition wlc.h:56
@ WLC_OBJ_FI
Definition wlc.h:49
@ WLC_OBJ_REDUCT_NXOR
Definition wlc.h:87
@ WLC_OBJ_BIT_NXOR
Definition wlc.h:66
@ WLC_OBJ_ROTATE_L
Definition wlc.h:59
@ WLC_OBJ_LUT
Definition wlc.h:104
@ WLC_OBJ_SHIFT_RA
Definition wlc.h:55
@ WLC_OBJ_FF
Definition wlc.h:50
@ WLC_OBJ_ROTATE_R
Definition wlc.h:58
struct Wlc_BstPar_t_ Wlc_BstPar_t
Definition wlc.h:207
void Wlc_SetNtk(Abc_Frame_t *pAbc, Wlc_Ntk_t *pNtk)
Definition wlcCom.c:133
Wlc_Ntk_t * Wlc_NtkDupDfsSimple(Wlc_Ntk_t *p)
Definition wlcNtk.c:957
int Wlc_NtkCountObjBits(Wlc_Ntk_t *p, Vec_Int_t *vPisNew)
Definition wlcNtk.c:1395
Vec_Int_t * Wlc_NtkCollectAddMult(Wlc_Ntk_t *p, Wlc_BstPar_t *pPar, int *pCountA, int *CountM)
Definition wlcUif.c:54
Wlc_Ntk_t * Wlc_ReadNdr(char *pFileName)
Definition wlcNdr.c:551
struct Wlc_Obj_t_ Wlc_Obj_t
BASIC TYPES ///.
Definition wlc.h:118
Wlc_Ntk_t * Wlc_ReadSmt(char *pFileName, int fOldParser, int fPrintTree)
int Wlc_NtkDcFlopNum(Wlc_Ntk_t *p)
Definition wlcNtk.c:1351
struct Wla_Man_t_ Wla_Man_t
Definition wlc.h:250
Wlc_Ntk_t * Wlc_ReadVer(char *pFileName, char *pStr, int fInter)