ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
wln.h
Go to the documentation of this file.
1
20
21#ifndef ABC__base__wln__wln_h
22#define ABC__base__wln__wln_h
23
24
28
29#include "aig/gia/gia.h"
30#include "misc/vec/vecHash.h"
31#include "misc/extra/extra.h"
32#include "misc/util/utilNam.h"
33#include "misc/util/utilTruth.h"
34#include "aig/miniaig/abcOper.h"
35
39
41
45
46typedef struct Wln_Vec_t_ Wln_Vec_t;
48{
49 int nCap;
50 int nSize;
51 union { int Array[2];
52 int * pArray[1]; };
53};
54
55typedef struct Wln_Ntk_t_ Wln_Ntk_t;
57{
58 char * pName; // model name
59 char * pSpec; // input file name
60 int fSmtLib; // derived from SMT-LIB
61 Vec_Int_t vCis; // combinational inputs
62 Vec_Int_t vCos; // combinational outputs
63 Vec_Int_t vFfs; // flops
64 Vec_Int_t vTypes; // object types
65 Wln_Vec_t * vFanins; // object fanins (exceptions: const, select)
66 Vec_Int_t vRanges; // object ranges
67 Hash_IntMan_t * pRanges; // object ranges
68 Vec_Int_t vNameIds; // object name IDs
69 Vec_Int_t vInstIds; // object name IDs
70 Abc_Nam_t * pManName; // object names
71 Vec_Str_t vSigns; // object signedness
72 int nTravIds; // counter of traversal IDs
73 Vec_Int_t vTravIds; // trav IDs of the objects
74 Vec_Int_t vCopies; // object first bits
75 Vec_Int_t vBits; // object mapping into AIG nodes
76 Vec_Int_t vLevels; // object levels
77 Vec_Int_t vRefs; // object reference counters
78 Vec_Int_t vFanout; // static fanout
79 Vec_Int_t vFaninAttrs; // static fanin attributes
80 Vec_Int_t vFaninLists; // static fanin attributes
81 Vec_Ptr_t * vTables; // tables
82 int nObjs[ABC_OPER_LAST]; // counter of objects of each type
83 int nAnds[ABC_OPER_LAST]; // counter of AND gates after blasting
84};
85
86static inline int Wln_NtkObjNum( Wln_Ntk_t * p ) { return Vec_IntSize(&p->vTypes); }
87static inline int Wln_NtkCiNum( Wln_Ntk_t * p ) { return Vec_IntSize(&p->vCis); }
88static inline int Wln_NtkCoNum( Wln_Ntk_t * p ) { return Vec_IntSize(&p->vCos); }
89static inline int Wln_NtkFfNum( Wln_Ntk_t * p ) { return Vec_IntSize(&p->vFfs); }
90static inline int Wln_NtkPiNum( Wln_Ntk_t * p ) { return Wln_NtkCiNum(p) - Wln_NtkFfNum(p); }
91static inline int Wln_NtkPoNum( Wln_Ntk_t * p ) { return Wln_NtkCoNum(p) - Wln_NtkFfNum(p); }
92
93static inline int Wln_NtkCi( Wln_Ntk_t * p, int i ) { return Vec_IntEntry(&p->vCis, i); }
94static inline int Wln_NtkCo( Wln_Ntk_t * p, int i ) { return Vec_IntEntry(&p->vCos, i); }
95static inline int Wln_NtkFf( Wln_Ntk_t * p, int i ) { return Vec_IntEntry(&p->vFfs, i); }
96
97static inline int Wln_ObjType( Wln_Ntk_t * p, int i ) { return Vec_IntEntry(&p->vTypes, i); }
98static inline int Wln_ObjIsNone( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_NONE; }
99static inline int Wln_ObjIsCi( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_CI; }
100static inline int Wln_ObjIsCo( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_CO; }
101static inline int Wln_ObjIsCio( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_CI || Wln_ObjType(p, i)==ABC_OPER_CO; }
102static inline int Wln_ObjIsFon( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_FON; }
103static inline int Wln_ObjIsFf( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_DFFRSE; }
104static inline int Wln_ObjIsConst( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_CONST; }
105static inline int Wln_ObjIsSlice( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_SLICE; }
106static inline int Wln_ObjIsRotate( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_SHIFT_ROTL || Wln_ObjType(p, i) == ABC_OPER_SHIFT_ROTR; }
107static inline int Wln_ObjIsTable( Wln_Ntk_t * p, int i ) { return Wln_ObjType(p, i) == ABC_OPER_TABLE; }
108
109static inline int Wln_ObjFaninNum( Wln_Ntk_t * p, int i ) { return p->vFanins[i].nSize; }
110static inline int * Wln_ObjFanins( Wln_Ntk_t * p, int i ) { return Wln_ObjFaninNum(p, i) > 2 ? p->vFanins[i].pArray[0] : p->vFanins[i].Array; }
111static inline int Wln_ObjFanin( Wln_Ntk_t * p, int i, int f ) { return Wln_ObjFaninNum(p, i) > 2 ? p->vFanins[i].pArray[0][f] : p->vFanins[i].Array[f]; }
112static inline void Wln_ObjSetFanin( Wln_Ntk_t * p, int i, int f, int v ) { Wln_ObjFanins( p, i )[f] = v; }
113static inline int Wln_ObjFanin0( Wln_Ntk_t * p, int i ) { return Wln_ObjFanin( p, i, 0 ); }
114static inline int Wln_ObjFanin1( Wln_Ntk_t * p, int i ) { return Wln_ObjFanin( p, i, 1 ); }
115static inline int Wln_ObjFanin2( Wln_Ntk_t * p, int i ) { return Wln_ObjFanin( p, i, 2 ); }
116
117static inline int Wln_ObjRangeId( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vRanges, i ); }
118static inline int Wln_ObjRangeEnd( Wln_Ntk_t * p, int i ) { return Hash_IntObjData0( p->pRanges, Wln_ObjRangeId(p, i) ); }
119static inline int Wln_ObjRangeBeg( Wln_Ntk_t * p, int i ) { return Hash_IntObjData1( p->pRanges, Wln_ObjRangeId(p, i) ); }
120static inline int Wln_ObjRangeIsReversed( Wln_Ntk_t * p, int i ) { return Wln_ObjRangeEnd(p, i) < Wln_ObjRangeBeg(p, i); }
121static inline int Wln_ObjRange( Wln_Ntk_t * p, int i ) { return 1 + Abc_AbsInt(Wln_ObjRangeEnd(p, i)-Wln_ObjRangeBeg(p, i)); }
122
123static inline int Wln_ObjIsSigned( Wln_Ntk_t * p, int i ) { return (int)Vec_StrEntry(&p->vSigns, i); }
124static inline void Wln_ObjSetSigned( Wln_Ntk_t * p, int i ) { Vec_StrSetEntry(&p->vSigns, i, (char)1); }
125static inline int Wln_ObjIsSignedFanin0( Wln_Ntk_t * p, int i ) { return Wln_ObjIsSigned( p, p->fSmtLib ? i : Wln_ObjFanin0(p, i) ); }
126static inline int Wln_ObjIsSignedFanin1( Wln_Ntk_t * p, int i ) { return Wln_ObjIsSigned( p, p->fSmtLib ? i : Wln_ObjFanin1(p, i) ); }
127static inline int Wln_ObjIsSignedFanin01( Wln_Ntk_t * p, int i ) { return Wln_ObjIsSignedFanin0( p, i ) && Wln_ObjIsSignedFanin1( p, i ); }
128static inline int Wln_ObjSign( Wln_Ntk_t * p, int i ) { return Abc_Var2Lit( Wln_ObjRange(p, i), Wln_ObjIsSigned(p, i) ); }
129
130static inline void Wln_NtkCleanCopy( Wln_Ntk_t * p ) { Vec_IntFill( &p->vCopies, Vec_IntCap(&p->vTypes), 0 ); }
131static inline int Wln_NtkHasCopy( Wln_Ntk_t * p ) { return Vec_IntSize( &p->vCopies ) > 0; }
132static inline void Wln_ObjSetCopy( Wln_Ntk_t * p, int i, int c ) { Vec_IntWriteEntry( &p->vCopies, i, c ); }
133static inline int Wln_ObjCopy( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vCopies, i ); }
134
135static inline void Wln_NtkCleanLevel( Wln_Ntk_t * p ) { Vec_IntFill( &p->vLevels, Vec_IntCap(&p->vTypes), 0 ); }
136static inline int Wln_NtkHasLevel( Wln_Ntk_t * p ) { return Vec_IntSize( &p->vLevels ) > 0; }
137static inline void Wln_ObjSetLevel( Wln_Ntk_t * p, int i, int l ) { Vec_IntWriteEntry( &p->vLevels, i, l ); }
138static inline int Wln_ObjLevel( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vLevels, i ); }
139
140static inline void Wln_NtkCleanNameId( Wln_Ntk_t * p ) { Vec_IntFill( &p->vNameIds, Vec_IntCap(&p->vTypes), 0 ); }
141static inline int Wln_NtkHasNameId( Wln_Ntk_t * p ) { return Vec_IntSize( &p->vNameIds ) > 0; }
142static inline void Wln_ObjSetNameId( Wln_Ntk_t * p, int i, int n ) { Vec_IntWriteEntry( &p->vNameIds, i, n ); }
143static inline int Wln_ObjNameId( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vNameIds, i ); }
144
145static inline void Wln_NtkCleanInstId( Wln_Ntk_t * p ) { Vec_IntFill( &p->vInstIds, Vec_IntCap(&p->vTypes), 0 ); }
146static inline int Wln_NtkHasInstId( Wln_Ntk_t * p ) { return Vec_IntSize( &p->vInstIds ) > 0; }
147static inline void Wln_ObjSetInstId( Wln_Ntk_t * p, int i, int n ) { Vec_IntWriteEntry( &p->vInstIds, i, n ); }
148static inline int Wln_ObjInstId( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vInstIds, i ); }
149
150static inline void Wln_NtkCleanRefs( Wln_Ntk_t * p ) { Vec_IntFill( &p->vRefs, Vec_IntCap(&p->vTypes), 0 ); }
151static inline int Wln_NtkHasRefs( Wln_Ntk_t * p ) { return Vec_IntSize( &p->vRefs ) > 0; }
152static inline void Wln_ObjSetRefs( Wln_Ntk_t * p, int i, int n ) { Vec_IntWriteEntry( &p->vRefs, i, n ); }
153static inline int Wln_ObjRefs( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vRefs, i ); }
154static inline int Wln_ObjRefsInc( Wln_Ntk_t * p, int i ) { return (*Vec_IntEntryP( &p->vRefs, i ))++; }
155static inline int Wln_ObjRefsDec( Wln_Ntk_t * p, int i ) { return --(*Vec_IntEntryP( &p->vRefs, i )); }
156static inline void Wln_ObjRefsFaninInc( Wln_Ntk_t * p, int i, int k ) { Wln_ObjRefsInc( p, Wln_ObjFanin(p, i, k) ); }
157static inline void Wln_ObjRefsFaninDec( Wln_Ntk_t * p, int i, int k ) { Wln_ObjRefsDec( p, Wln_ObjFanin(p, i, k) ); }
158
159static inline int Wln_ObjFanoutNum( Wln_Ntk_t * p, int i ) { return Vec_IntEntry( &p->vRefs, i ); }
160static inline int * Wln_ObjFanouts( Wln_Ntk_t * p, int i ) { return Vec_IntEntryP( &p->vFanout, Vec_IntEntry(&p->vFanout, i) ); }
161static inline int Wln_ObjFanout( Wln_Ntk_t * p, int i, int f ) { return Wln_ObjFanouts( p, i )[f]; }
162static inline void Wln_ObjSetFanout( Wln_Ntk_t * p, int i, int f, int v ){ Wln_ObjFanouts( p, i )[f] = v; }
163
164static inline void Wln_NtkIncrementTravId( Wln_Ntk_t * p ) { if (!p->nTravIds++) Vec_IntFill(&p->vTravIds, Vec_IntCap(&p->vTypes), 0); }
165static inline void Wln_ObjSetTravIdCurrent( Wln_Ntk_t * p, int i ) { Vec_IntWriteEntry( &p->vTravIds, i, p->nTravIds ); }
166static inline void Wln_ObjSetTravIdPrevious( Wln_Ntk_t * p, int i ) { Vec_IntWriteEntry( &p->vTravIds, i, p->nTravIds-1 ); }
167static inline int Wln_ObjIsTravIdCurrent( Wln_Ntk_t * p, int i ) { return (Vec_IntEntry(&p->vTravIds, i) == p->nTravIds); }
168static inline int Wln_ObjIsTravIdPrevious( Wln_Ntk_t * p, int i ) { return (Vec_IntEntry(&p->vTravIds, i) == p->nTravIds-1); }
169static inline int Wln_ObjCheckTravId( Wln_Ntk_t * p, int i ) { if ( Wln_ObjIsTravIdCurrent(p, i) ) return 1; Wln_ObjSetTravIdCurrent(p, i); return 0; }
170
171static inline int Wln_ObjCioId( Wln_Ntk_t * p, int i ) { assert( Wln_ObjIsCio(p, i) ); return Wln_ObjFanin1(p, i); }
172static inline int Wln_ObjIsPi( Wln_Ntk_t * p, int i ) { return Wln_ObjIsCi(p, i) && Wln_ObjCioId(p, i) < Wln_NtkPiNum(p); }
173static inline int Wln_ObjIsPo( Wln_Ntk_t * p, int i ) { return Wln_ObjIsCo(p, i) && Wln_ObjCioId(p, i) < Wln_NtkPoNum(p); }
174static inline int Wln_ObjIsRo( Wln_Ntk_t * p, int i ) { return Wln_ObjIsCi(p, i) && Wln_ObjCioId(p, i) >= Wln_NtkPiNum(p); }
175static inline int Wln_ObjIsRi( Wln_Ntk_t * p, int i ) { return Wln_ObjIsCo(p, i) && Wln_ObjCioId(p, i) >= Wln_NtkPoNum(p); }
176static inline int Wln_ObjRoToRi( Wln_Ntk_t * p, int i ) { assert( Wln_ObjIsRo(p, i) ); return Wln_NtkCo(p, Wln_NtkCoNum(p) - Wln_NtkCiNum(p) + Wln_ObjCioId(p, i)); }
177static inline int Wln_ObjRiToRo( Wln_Ntk_t * p, int i ) { assert( Wln_ObjIsRi(p, i) ); return Wln_NtkCi(p, Wln_NtkCiNum(p) - Wln_NtkCoNum(p) + Wln_ObjCioId(p, i)); }
178
182
186
187#define Wln_NtkForEachObj( p, i ) \
188 for ( i = 1; i < Wln_NtkObjNum(p); i++ )
189#define Wln_NtkForEachObjReverse( p, i ) \
190 for ( i = Wln_NtkObjNum(p) - 1; i > 0; i-- )
191#define Wln_NtkForEachObjInternal( p, i ) \
192 for ( i = 1; i < Wln_NtkObjNum(p); i++ ) if ( Wln_ObjIsCio(p, i) ) {} else
193
194#define Wln_NtkForEachPi( p, iPi, i ) \
195 for ( i = 0; (i < Wln_NtkPiNum(p)) && (((iPi) = Wln_NtkCi(p, i)), 1); i++ )
196#define Wln_NtkForEachPo( p, iPo, i ) \
197 for ( i = 0; (i < Wln_NtkPoNum(p)) && (((iPo) = Wln_NtkCo(p, i)), 1); i++ )
198#define Wln_NtkForEachCi( p, iCi, i ) \
199 for ( i = 0; (i < Wln_NtkCiNum(p)) && (((iCi) = Wln_NtkCi(p, i)), 1); i++ )
200#define Wln_NtkForEachCo( p, iCo, i ) \
201 for ( i = 0; (i < Wln_NtkCoNum(p)) && (((iCo) = Wln_NtkCo(p, i)), 1); i++ )
202#define Wln_NtkForEachFf( p, iFf, i ) \
203 for ( i = 0; (i < Wln_NtkFfNum(p)) && (((iFf) = Wln_NtkFf(p, i)), 1); i++ )
204
205#define Wln_ObjForEachFanin( p, iObj, iFanin, i ) \
206 for ( i = 0; (i < Wln_ObjFaninNum(p, iObj)) && (((iFanin) = Wln_ObjFanin(p, iObj, i)), 1); i++ ) if ( !iFanin ) {} else
207#define Wln_ObjForEachFaninReverse( pObj, iFanin, i ) \
208 for ( i = Wln_ObjFaninNum(p, iObj) - 1; (i >= 0) && (((iFanin) = Wln_ObjFanin(p, iObj, i)), 1); i-- ) if ( !iFanin ) {} else
209
210#define Wln_ObjForEachFanoutStatic( p, iObj, iFanout, i ) \
211 for ( i = 0; (i < Wln_ObjRefs(p, iObj)) && (((iFanout) = Wln_ObjFanout(p, iObj, i)), 1); i++ )
212
213
217
218/*=== wlcNdr.c ========================================================*/
219extern Wln_Ntk_t * Wln_ReadNdr( char * pFileName );
220extern void Wln_WriteNdr( Wln_Ntk_t * pNtk, char * pFileName );
221extern Wln_Ntk_t * Wln_NtkFromNdr( void * pData, int fDump );
222extern void * Wln_NtkToNdr( Wln_Ntk_t * pNtk );
223/*=== wlcNtk.c ========================================================*/
224extern Wln_Ntk_t * Wln_NtkAlloc( char * pName, int nObjsMax );
225extern void Wln_NtkFree( Wln_Ntk_t * p );
226extern int Wln_NtkMemUsage( Wln_Ntk_t * p );
227extern void Wln_NtkPrint( Wln_Ntk_t * p );
228extern Wln_Ntk_t * Wln_NtkDupDfs( Wln_Ntk_t * p );
229extern int Wln_NtkIsAcyclic( Wln_Ntk_t * p );
230extern void Wln_NtkCreateRefs( Wln_Ntk_t * p );
231extern void Wln_NtkStartFaninMap( Wln_Ntk_t * p, Vec_Int_t * vFaninMap, int nMulti );
232extern void Wln_NtkStartFanoutMap( Wln_Ntk_t * p, Vec_Int_t * vFanoutMap, Vec_Int_t * vFanoutNums, int nMulti );
233extern void Wln_NtkStaticFanoutStart( Wln_Ntk_t * p );
234extern void Wln_NtkStaticFanoutStop( Wln_Ntk_t * p );
235extern void Wln_NtkStaticFanoutTest( Wln_Ntk_t * p );
236/*=== wlcObj.c ========================================================*/
237extern char * Wln_ObjName( Wln_Ntk_t * p, int iObj );
238extern char * Wln_ObjConstString( Wln_Ntk_t * p, int iObj );
239extern void Wln_ObjUpdateType( Wln_Ntk_t * p, int iObj, int Type );
240extern void Wln_ObjSetConst( Wln_Ntk_t * p, int iObj, int NameId );
241extern void Wln_ObjSetSlice( Wln_Ntk_t * p, int iObj, int SliceId );
242extern void Wln_ObjAddFanin( Wln_Ntk_t * p, int iObj, int i );
243extern int Wln_ObjAddFanins( Wln_Ntk_t * p, int iObj, Vec_Int_t * vFanins );
244extern int Wln_ObjAlloc( Wln_Ntk_t * p, int Type, int Signed, int End, int Beg );
245extern int Wln_ObjClone( Wln_Ntk_t * pNew, Wln_Ntk_t * p, int iObj );
246extern int Wln_ObjCreateCo( Wln_Ntk_t * p, int iFanin );
247extern void Wln_ObjPrint( Wln_Ntk_t * p, int iObj );
248/*=== wlcRetime.c ========================================================*/
249extern Vec_Int_t * Wln_NtkRetime( Wln_Ntk_t * p, int fIgnoreIO, int fSkipSimple, int fVerbose );
250extern void Wln_NtkRetimeCreateDelayInfo( Wln_Ntk_t * pNtk );
251/*=== wlcWriteVer.c ========================================================*/
252extern void Wln_WriteVer( Wln_Ntk_t * p, char * pFileName );
253
254/*=== wlcRead.c ========================================================*/
255typedef struct Rtl_Lib_t_ Rtl_Lib_t;
256extern Rtl_Lib_t * Rtl_LibReadFile( char * pFileName, char * pFileSpec );
257extern void Rtl_LibFree( Rtl_Lib_t * p );
258
260
261#endif
262
266
@ ABC_OPER_CI
Definition abcOper.h:45
@ ABC_OPER_DFFRSE
Definition abcOper.h:143
@ ABC_OPER_NONE
Definition abcOper.h:42
@ ABC_OPER_LAST
Definition abcOper.h:157
@ ABC_OPER_SHIFT_ROTL
Definition abcOper.h:123
@ ABC_OPER_FON
Definition abcOper.h:47
@ ABC_OPER_TABLE
Definition abcOper.h:129
@ ABC_OPER_CONST
Definition abcOper.h:153
@ ABC_OPER_SLICE
Definition abcOper.h:146
@ ABC_OPER_SHIFT_ROTR
Definition abcOper.h:124
@ ABC_OPER_CO
Definition abcOper.h:46
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition bblif.c:37
struct Vec_Str_t_ Vec_Str_t
Definition bblif.c:46
Cube * p
Definition exorList.c:222
Vec_Int_t vBits
Definition wln.h:75
Hash_IntMan_t * pRanges
Definition wln.h:67
Vec_Int_t vFanout
Definition wln.h:78
Wln_Vec_t * vFanins
Definition wln.h:65
int nTravIds
Definition wln.h:72
Vec_Int_t vInstIds
Definition wln.h:69
Vec_Int_t vCis
Definition wln.h:61
Vec_Str_t vSigns
Definition wln.h:71
Vec_Int_t vNameIds
Definition wln.h:68
Vec_Int_t vLevels
Definition wln.h:76
int fSmtLib
Definition wln.h:60
Vec_Int_t vCos
Definition wln.h:62
int nAnds[ABC_OPER_LAST]
Definition wln.h:83
Vec_Int_t vRefs
Definition wln.h:77
Vec_Int_t vFaninAttrs
Definition wln.h:79
char * pSpec
Definition wln.h:59
Abc_Nam_t * pManName
Definition wln.h:70
Vec_Int_t vFfs
Definition wln.h:63
Vec_Int_t vTypes
Definition wln.h:64
Vec_Int_t vRanges
Definition wln.h:66
Vec_Int_t vTravIds
Definition wln.h:73
Vec_Int_t vCopies
Definition wln.h:74
Vec_Int_t vFaninLists
Definition wln.h:80
char * pName
Definition wln.h:58
Vec_Ptr_t * vTables
Definition wln.h:81
int nObjs[ABC_OPER_LAST]
Definition wln.h:82
int * pArray[1]
Definition wln.h:52
int Array[2]
Definition wln.h:51
int nCap
Definition wln.h:49
int nSize
Definition wln.h:50
typedefABC_NAMESPACE_HEADER_START struct Abc_Nam_t_ Abc_Nam_t
INCLUDES ///.
Definition utilNam.h:39
#define assert(ex)
Definition util_old.h:213
struct Hash_IntMan_t_ Hash_IntMan_t
Definition vecHash.h:51
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition vecPtr.h:42
Wln_Ntk_t * Wln_ReadNdr(char *pFileName)
FUNCTION DECLARATIONS ///.
Definition wlnNdr.c:298
void Wln_NtkStaticFanoutTest(Wln_Ntk_t *p)
Definition wlnNtk.c:428
void Rtl_LibFree(Rtl_Lib_t *p)
Definition wlnRead.c:318
Wln_Ntk_t * Wln_NtkFromNdr(void *pData, int fDump)
Definition wlnNdr.c:182
void Wln_NtkStaticFanoutStop(Wln_Ntk_t *p)
Definition wlnNtk.c:423
void Wln_WriteVer(Wln_Ntk_t *p, char *pFileName)
void Wln_ObjPrint(Wln_Ntk_t *p, int iObj)
Definition wlnObj.c:136
void Wln_ObjSetSlice(Wln_Ntk_t *p, int iObj, int SliceId)
Definition wlnObj.c:70
typedefABC_NAMESPACE_HEADER_START struct Wln_Vec_t_ Wln_Vec_t
INCLUDES ///.
Definition wln.h:46
int Wln_NtkIsAcyclic(Wln_Ntk_t *p)
Definition wlnNtk.c:192
Wln_Ntk_t * Wln_NtkDupDfs(Wln_Ntk_t *p)
Definition wlnNtk.c:325
Vec_Int_t * Wln_NtkRetime(Wln_Ntk_t *p, int fIgnoreIO, int fSkipSimple, int fVerbose)
Definition wlnRetime.c:718
void Wln_ObjUpdateType(Wln_Ntk_t *p, int iObj, int Type)
Definition wlnObj.c:58
void Wln_ObjAddFanin(Wln_Ntk_t *p, int iObj, int i)
Definition wlnObj.c:75
void Wln_NtkStartFaninMap(Wln_Ntk_t *p, Vec_Int_t *vFaninMap, int nMulti)
Definition wlnNtk.c:372
int Wln_ObjCreateCo(Wln_Ntk_t *p, int iFanin)
Definition wlnObj.c:129
char * Wln_ObjConstString(Wln_Ntk_t *p, int iObj)
Definition wlnObj.c:53
struct Rtl_Lib_t_ Rtl_Lib_t
Definition wln.h:255
char * Wln_ObjName(Wln_Ntk_t *p, int iObj)
DECLARATIONS ///.
Definition wlnObj.c:45
void Wln_NtkFree(Wln_Ntk_t *p)
Definition wlnNtk.c:68
void Wln_NtkRetimeCreateDelayInfo(Wln_Ntk_t *pNtk)
Definition wlnRetime.c:592
void Wln_NtkStartFanoutMap(Wln_Ntk_t *p, Vec_Int_t *vFanoutMap, Vec_Int_t *vFanoutNums, int nMulti)
Definition wlnNtk.c:383
void Wln_NtkCreateRefs(Wln_Ntk_t *p)
Definition wlnNtk.c:357
void Wln_NtkStaticFanoutStart(Wln_Ntk_t *p)
Definition wlnNtk.c:406
int Wln_ObjAlloc(Wln_Ntk_t *p, int Type, int Signed, int End, int Beg)
Definition wlnObj.c:105
int Wln_ObjClone(Wln_Ntk_t *pNew, Wln_Ntk_t *p, int iObj)
Definition wlnObj.c:125
int Wln_NtkMemUsage(Wln_Ntk_t *p)
Definition wlnNtk.c:101
struct Wln_Ntk_t_ Wln_Ntk_t
Definition wln.h:55
void * Wln_NtkToNdr(Wln_Ntk_t *pNtk)
DECLARATIONS ///.
Definition wlnNdr.c:45
void Wln_WriteNdr(Wln_Ntk_t *pNtk, char *pFileName)
Definition wlnNdr.c:81
void Wln_ObjSetConst(Wln_Ntk_t *p, int iObj, int NameId)
Definition wlnObj.c:65
Wln_Ntk_t * Wln_NtkAlloc(char *pName, int nObjsMax)
DECLARATIONS ///.
Definition wlnNtk.c:45
Rtl_Lib_t * Rtl_LibReadFile(char *pFileName, char *pFileSpec)
Definition wlnRead.c:1492
void Wln_NtkPrint(Wln_Ntk_t *p)
Definition wlnNtk.c:123
int Wln_ObjAddFanins(Wln_Ntk_t *p, int iObj, Vec_Int_t *vFanins)
Definition wlnObj.c:98