ABC: A System for Sequential Synthesis and Verification
 
Loading...
Searching...
No Matches
abc.h
Go to the documentation of this file.
1
20
21#ifndef ABC__base__abc__abc_h
22#define ABC__base__abc__abc_h
23
24
28
29#include <stdio.h>
30#include <stdlib.h>
31#include <string.h>
32#include <assert.h>
33
34#include "misc/vec/vec.h"
35#include "aig/hop/hop.h"
36#include "aig/gia/gia.h"
37#include "misc/st/st.h"
38#include "misc/st/stmm.h"
39#include "misc/nm/nm.h"
40#include "misc/mem/mem.h"
41#include "misc/util/utilCex.h"
42#include "misc/extra/extra.h"
43
47
48
49
51
52
53// network types
54typedef enum {
55 ABC_NTK_NONE = 0, // 0: unknown
56 ABC_NTK_NETLIST, // 1: network with PIs/POs, latches, nodes, and nets
57 ABC_NTK_LOGIC, // 2: network with PIs/POs, latches, and nodes
58 ABC_NTK_STRASH, // 3: structurally hashed AIG (two input AND gates with c-attributes on edges)
59 ABC_NTK_OTHER // 4: unused
61
62// network functionality
63typedef enum {
64 ABC_FUNC_NONE = 0, // 0: unknown
65 ABC_FUNC_SOP, // 1: sum-of-products
66 ABC_FUNC_BDD, // 2: binary decision diagrams
67 ABC_FUNC_AIG, // 3: and-inverter graphs
68 ABC_FUNC_MAP, // 4: standard cell library
69 ABC_FUNC_BLIFMV, // 5: BLIF-MV node functions
70 ABC_FUNC_BLACKBOX, // 6: black box about which nothing is known
71 ABC_FUNC_OTHER // 7: unused
73
74// Supported type/functionality combinations:
75/*------------------------------------------|
76| | SOP | BDD | AIG | Map |
77|-----------|-------|-------|-------|-------|
78| Netlist | x | | x | x |
79|-----------|-------|-------|-------|-------|
80| Logic | x | x | x | x |
81|-----------|-------|-------|-------|-------|
82| Strash | | | x | |
83--------------------------------------------|*/
84
85// object types
86typedef enum {
87 ABC_OBJ_NONE = 0, // 0: unknown
88 ABC_OBJ_CONST1, // 1: constant 1 node (AIG only)
89 ABC_OBJ_PI, // 2: primary input terminal
90 ABC_OBJ_PO, // 3: primary output terminal
91 ABC_OBJ_BI, // 4: box input terminal
92 ABC_OBJ_BO, // 5: box output terminal
93 ABC_OBJ_NET, // 6: net
94 ABC_OBJ_NODE, // 7: node
95 ABC_OBJ_LATCH, // 8: latch
96 ABC_OBJ_WHITEBOX, // 9: box with known contents
97 ABC_OBJ_BLACKBOX, // 10: box with unknown contents
98 ABC_OBJ_NUMBER // 11: unused
100
101// latch initial values
102typedef enum {
103 ABC_INIT_NONE = 0, // 0: unknown
104 ABC_INIT_ZERO, // 1: zero
105 ABC_INIT_ONE, // 2: one
106 ABC_INIT_DC, // 3: don't-care
107 ABC_INIT_OTHER // 4: unused
109
113
114typedef struct Abc_Des_t_ Abc_Des_t;
115typedef struct Abc_Ntk_t_ Abc_Ntk_t;
116typedef struct Abc_Obj_t_ Abc_Obj_t;
117typedef struct Abc_Aig_t_ Abc_Aig_t;
120typedef struct Abc_Time_t_ Abc_Time_t;
121
123{
124 float Rise;
125 float Fall;
126};
127
128struct Abc_Obj_t_ // 48/72 bytes (32-bits/64-bits)
129{
130 Abc_Ntk_t * pNtk; // the host network
131 Abc_Obj_t * pNext; // the next pointer in the hash table
132 int Id; // the object ID
133 unsigned Type : 4; // the object type
134 unsigned fMarkA : 1; // the multipurpose mark
135 unsigned fMarkB : 1; // the multipurpose mark
136 unsigned fMarkC : 1; // the multipurpose mark
137 unsigned fPhase : 1; // the flag to mark the phase of equivalent node
138 unsigned fExor : 1; // marks AIG node that is a root of EXOR
139 unsigned fPersist: 1; // marks the persistant AIG node
140 unsigned fCompl0 : 1; // complemented attribute of the first fanin in the AIG
141 unsigned fCompl1 : 1; // complemented attribute of the second fanin in the AIG
142 unsigned Level : 20; // the level of the node
143 Vec_Int_t vFanins; // the array of fanins
144 Vec_Int_t vFanouts; // the array of fanouts
145 union { void * pData; // the network specific data
146 int iData; }; // (SOP, BDD, gate, equiv class, etc)
147 union { void * pTemp; // temporary store for user's data
148 Abc_Obj_t * pCopy; // the copy of this object
149 int iTemp;
150 float dTemp; };
151};
152
154{
155 // general information
156 Abc_NtkType_t ntkType; // type of the network
157 Abc_NtkFunc_t ntkFunc; // functionality of the network
158 char * pName; // the network name
159 char * pSpec; // the name of the spec file if present
160 Nm_Man_t * pManName; // name manager (stores names of objects)
161 // components of the network
162 Vec_Ptr_t * vObjs; // the array of all objects (net, nodes, latches, etc)
163 Vec_Ptr_t * vPis; // the array of primary inputs
164 Vec_Ptr_t * vPos; // the array of primary outputs
165 Vec_Ptr_t * vCis; // the array of combinational inputs (PIs, latches)
166 Vec_Ptr_t * vCos; // the array of combinational outputs (POs, asserts, latches)
167 Vec_Ptr_t * vPios; // the array of PIOs
168 Vec_Ptr_t * vBoxes; // the array of boxes
170 // the number of living objects
171 int nObjCounts[ABC_OBJ_NUMBER]; // the number of objects by type
172 int nObjs; // the number of live objs
173 int nConstrs; // the number of constraints
174 int nBarBufs; // the number of barrier buffers
175 int nBarBufs2; // the number of barrier buffers
176 // the backup network and the step number
177 Abc_Ntk_t * pNetBackup; // the pointer to the previous backup network
178 int iStep; // the generation number for the given network
179 // hierarchy
180 Abc_Des_t * pDesign; // design (hierarchical networks only)
181 Abc_Ntk_t * pAltView; // alternative structural view of the network
182 int fHieVisited; // flag to mark the visited network
183 int fHiePath; // flag to mark the network on the path
184 int Id; // model ID
185 double dTemp; // temporary value
186 // miscellaneous data members
187 int nTravIds; // the unique traversal IDs of nodes
188 Vec_Int_t vTravIds; // trav IDs of the objects
189 Mem_Fixed_t * pMmObj; // memory manager for objects
190 Mem_Step_t * pMmStep; // memory manager for arrays
191 void * pManFunc; // functionality manager (AIG manager, BDD manager, or memory manager for SOPs)
192 Abc_ManTime_t * pManTime; // the timing manager (for mapped networks) stores arrival/required times for all nodes
193 void * pManCut; // the cut manager (for AIGs) stores information about the cuts computed for the nodes
194 float AndGateDelay; // an average estimated delay of one AND gate
195 int LevelMax; // maximum number of levels
196 Vec_Int_t * vLevelsR; // level in the reverse topological order (for AIGs)
197 Vec_Ptr_t * vSupps; // CO support information
198 int * pModel; // counter-example (for miters)
199 Abc_Cex_t * pSeqModel; // counter-example (for sequential miters)
200 Vec_Ptr_t * vSeqModelVec; // vector of counter-examples (for sequential miters)
201 Abc_Ntk_t * pExdc; // the EXDC network (if given)
202 void * pExcare; // the EXDC network (if given)
203 void * pData; // misc
204 Abc_Ntk_t * pCopy; // copy of this network
205 void * pBSMan; // application manager
206 void * pSCLib; // SC library
207 Vec_Int_t * vGates; // SC library gates
208 Vec_Int_t * vPhases; // fanins phases in the mapped netlist
209 char * pWLoadUsed; // wire load model used
210 float * pLutTimes; // arrivals/requireds/slacks using LUT-delay model
211 Vec_Ptr_t * vOnehots; // names of one-hot-encoded registers
212 Vec_Int_t * vObjPerm; // permutation saved
214 Vec_Ptr_t * vAttrs; // managers of various node attributes (node functionality, global BDDs, etc)
215 Vec_Int_t * vNameIds; // name IDs
216 Vec_Int_t * vFins; // obj/type info
217 Vec_Int_t * vOrigNodeIds; // original node IDs
218};
219
221{
222 char * pName; // the name of the library
223 void * pManFunc; // functionality manager for the nodes
224 Vec_Ptr_t * vTops; // the array of top-level modules
225 Vec_Ptr_t * vModules; // the array of modules
226 st__table * tModules; // the table hashing module names into their networks
227 Abc_Des_t * pLibrary; // the library used to map this design
228 void * pGenlib; // the genlib library used to map this design
229};
230
234
235// transforming floats into ints and back
236static inline unsigned Abc_InfoRandomWord() { return ((((unsigned)rand()) << 24) ^ (((unsigned)rand()) << 12) ^ ((unsigned)rand())); } // #define RAND_MAX 0x7fff
237static inline void Abc_InfoRandom( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = Abc_InfoRandomWord(); }
238static inline void Abc_InfoClear( unsigned * p, int nWords ) { memset( p, 0, sizeof(unsigned) * nWords ); }
239static inline void Abc_InfoFill( unsigned * p, int nWords ) { memset( p, 0xff, sizeof(unsigned) * nWords );}
240static inline void Abc_InfoNot( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = ~p[i]; }
241static inline int Abc_InfoIsZero( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) if ( p[i] ) return 0; return 1; }
242static inline int Abc_InfoIsOne( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) if ( ~p[i] ) return 0; return 1; }
243static inline void Abc_InfoCopy( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = q[i]; }
244static inline void Abc_InfoAnd( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] &= q[i]; }
245static inline void Abc_InfoOr( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] |= q[i]; }
246static inline void Abc_InfoXor( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] ^= q[i]; }
247static inline int Abc_InfoIsOrOne( unsigned * p, unsigned * q, int nWords ){ int i; for ( i = nWords - 1; i >= 0; i-- ) if ( ~(p[i] | q[i]) ) return 0; return 1; }
248static inline int Abc_InfoIsOrOne3( unsigned * p, unsigned * q, unsigned * r, int nWords ){ int i; for ( i = nWords - 1; i >= 0; i-- ) if ( ~(p[i] | q[i] | r[i]) ) return 0; return 1; }
249
250// checking the network type
251static inline int Abc_NtkIsNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_NETLIST; }
252static inline int Abc_NtkIsLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_LOGIC; }
253static inline int Abc_NtkIsStrash( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_STRASH; }
254
255static inline int Abc_NtkHasSop( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP; }
256static inline int Abc_NtkHasBdd( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD; }
257static inline int Abc_NtkHasAig( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG; }
258static inline int Abc_NtkHasMapping( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP; }
259static inline int Abc_NtkHasBlifMv( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLIFMV; }
260static inline int Abc_NtkHasBlackbox( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLACKBOX; }
261
262static inline int Abc_NtkIsSopNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_NETLIST; }
263static inline int Abc_NtkIsBddNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD && pNtk->ntkType == ABC_NTK_NETLIST; }
264static inline int Abc_NtkIsAigNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG && pNtk->ntkType == ABC_NTK_NETLIST; }
265static inline int Abc_NtkIsMappedNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_NETLIST; }
266static inline int Abc_NtkIsBlifMvNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLIFMV && pNtk->ntkType == ABC_NTK_NETLIST; }
267static inline int Abc_NtkIsSopLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_LOGIC ; }
268static inline int Abc_NtkIsBddLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD && pNtk->ntkType == ABC_NTK_LOGIC ; }
269static inline int Abc_NtkIsAigLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG && pNtk->ntkType == ABC_NTK_LOGIC ; }
270static inline int Abc_NtkIsMappedLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_LOGIC ; }
271
272// reading data members of the network
273static inline char * Abc_NtkName( Abc_Ntk_t * pNtk ) { return pNtk->pName; }
274static inline char * Abc_NtkSpec( Abc_Ntk_t * pNtk ) { return pNtk->pSpec; }
275static inline Abc_Ntk_t * Abc_NtkExdc( Abc_Ntk_t * pNtk ) { return pNtk->pExdc; }
276static inline Abc_Ntk_t * Abc_NtkBackup( Abc_Ntk_t * pNtk ) { return pNtk->pNetBackup; }
277static inline int Abc_NtkStep ( Abc_Ntk_t * pNtk ) { return pNtk->iStep; }
278
279// setting data members of the network
280static inline void Abc_NtkSetName ( Abc_Ntk_t * pNtk, char * pName ) { pNtk->pName = pName; }
281static inline void Abc_NtkSetSpec ( Abc_Ntk_t * pNtk, char * pName ) { pNtk->pSpec = pName; }
282static inline void Abc_NtkSetBackup( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNetBackup ) { pNtk->pNetBackup = pNetBackup; }
283static inline void Abc_NtkSetStep ( Abc_Ntk_t * pNtk, int iStep ) { pNtk->iStep = iStep; }
284
285// getting the number of objects
286static inline int Abc_NtkObjNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjs; }
287static inline int Abc_NtkObjNumMax( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vObjs); }
288static inline int Abc_NtkPiNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vPis); }
289static inline int Abc_NtkPoNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vPos); }
290static inline int Abc_NtkCiNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vCis); }
291static inline int Abc_NtkCoNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vCos); }
292static inline int Abc_NtkBoxNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vBoxes); }
293static inline int Abc_NtkBiNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BI]; }
294static inline int Abc_NtkBoNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BO]; }
295static inline int Abc_NtkNetNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_NET]; }
296static inline int Abc_NtkNodeNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_NODE]; }
297static inline int Abc_NtkLatchNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_LATCH]; }
298static inline int Abc_NtkWhiteboxNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_WHITEBOX]; }
299static inline int Abc_NtkBlackboxNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BLACKBOX]; }
300static inline int Abc_NtkIsComb( Abc_Ntk_t * pNtk ) { return Abc_NtkLatchNum(pNtk) == 0; }
301static inline int Abc_NtkHasOnlyLatchBoxes(Abc_Ntk_t * pNtk ){ return Abc_NtkLatchNum(pNtk) == Abc_NtkBoxNum(pNtk); }
302static inline int Abc_NtkConstrNum( Abc_Ntk_t * pNtk ) { return pNtk->nConstrs; }
303
304// creating simple objects
306static inline Abc_Obj_t * Abc_NtkCreatePi( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_PI ); }
307static inline Abc_Obj_t * Abc_NtkCreatePo( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_PO ); }
308static inline Abc_Obj_t * Abc_NtkCreateBi( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BI ); }
309static inline Abc_Obj_t * Abc_NtkCreateBo( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BO ); }
310static inline Abc_Obj_t * Abc_NtkCreateNet( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_NET ); }
311static inline Abc_Obj_t * Abc_NtkCreateNode( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_NODE ); }
312static inline Abc_Obj_t * Abc_NtkCreateLatch( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_LATCH ); }
313static inline Abc_Obj_t * Abc_NtkCreateWhitebox( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_WHITEBOX ); }
314static inline Abc_Obj_t * Abc_NtkCreateBlackbox( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BLACKBOX ); }
315
316// reading objects
317static inline Abc_Obj_t * Abc_NtkObj( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vObjs, i ); }
318static inline Abc_Obj_t * Abc_NtkPi( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vPis, i ); }
319static inline Abc_Obj_t * Abc_NtkPo( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vPos, i ); }
320static inline Abc_Obj_t * Abc_NtkCi( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vCis, i ); }
321static inline Abc_Obj_t * Abc_NtkCo( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vCos, i ); }
322static inline Abc_Obj_t * Abc_NtkBox( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vBoxes, i ); }
323
324// working with complemented attributes of objects
325static inline int Abc_ObjIsComplement( Abc_Obj_t * p ) { return (int )((ABC_PTRUINT_T)p & (ABC_PTRUINT_T)01); }
326static inline Abc_Obj_t * Abc_ObjRegular( Abc_Obj_t * p ) { return (Abc_Obj_t *)((ABC_PTRUINT_T)p & ~(ABC_PTRUINT_T)01); }
327static inline Abc_Obj_t * Abc_ObjNot( Abc_Obj_t * p ) { return (Abc_Obj_t *)((ABC_PTRUINT_T)p ^ (ABC_PTRUINT_T)01); }
328static inline Abc_Obj_t * Abc_ObjNotCond( Abc_Obj_t * p, int c ) { return (Abc_Obj_t *)((ABC_PTRUINT_T)p ^ (ABC_PTRUINT_T)(c!=0)); }
329
330// reading data members of the object
331static inline unsigned Abc_ObjType( Abc_Obj_t * pObj ) { return pObj->Type; }
332static inline unsigned Abc_ObjId( Abc_Obj_t * pObj ) { return pObj->Id; }
333static inline int Abc_ObjLevel( Abc_Obj_t * pObj ) { return pObj->Level; }
334static inline Vec_Int_t * Abc_ObjFaninVec( Abc_Obj_t * pObj ) { return &pObj->vFanins; }
335static inline Vec_Int_t * Abc_ObjFanoutVec( Abc_Obj_t * pObj ) { return &pObj->vFanouts; }
336static inline Abc_Obj_t * Abc_ObjCopy( Abc_Obj_t * pObj ) { return pObj->pCopy; }
337static inline Abc_Ntk_t * Abc_ObjNtk( Abc_Obj_t * pObj ) { return pObj->pNtk; }
338static inline Abc_Ntk_t * Abc_ObjModel( Abc_Obj_t * pObj ) { assert( pObj->Type == ABC_OBJ_WHITEBOX ); return (Abc_Ntk_t *)pObj->pData; }
339static inline void * Abc_ObjData( Abc_Obj_t * pObj ) { return pObj->pData; }
340static inline Abc_Obj_t * Abc_ObjEquiv( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pData; }
341static inline Abc_Obj_t * Abc_ObjCopyCond( Abc_Obj_t * pObj ) { return Abc_ObjRegular(pObj)->pCopy? Abc_ObjNotCond(Abc_ObjRegular(pObj)->pCopy, Abc_ObjIsComplement(pObj)) : NULL; }
342
343// setting data members of the network
344static inline void Abc_ObjSetLevel( Abc_Obj_t * pObj, int Level ) { pObj->Level = Level; }
345static inline void Abc_ObjSetCopy( Abc_Obj_t * pObj, Abc_Obj_t * pCopy ) { pObj->pCopy = pCopy; }
346static inline void Abc_ObjSetData( Abc_Obj_t * pObj, void * pData ) { pObj->pData = pData; }
347
348// checking the object type
349static inline int Abc_ObjIsNone( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NONE; }
350static inline int Abc_ObjIsPi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PI; }
351static inline int Abc_ObjIsPo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PO; }
352static inline int Abc_ObjIsBi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BI; }
353static inline int Abc_ObjIsBo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BO; }
354static inline int Abc_ObjIsCi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PI || pObj->Type == ABC_OBJ_BO; }
355static inline int Abc_ObjIsCo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PO || pObj->Type == ABC_OBJ_BI; }
356static inline int Abc_ObjIsTerm( Abc_Obj_t * pObj ) { return Abc_ObjIsCi(pObj) || Abc_ObjIsCo(pObj); }
357static inline int Abc_ObjIsNet( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NET; }
358static inline int Abc_ObjIsNode( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NODE; }
359static inline int Abc_ObjIsLatch( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_LATCH; }
360static inline int Abc_ObjIsBox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_LATCH || pObj->Type == ABC_OBJ_WHITEBOX || pObj->Type == ABC_OBJ_BLACKBOX; }
361static inline int Abc_ObjIsWhitebox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_WHITEBOX;}
362static inline int Abc_ObjIsBlackbox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BLACKBOX;}
363static inline int Abc_ObjIsBarBuf( Abc_Obj_t * pObj ) { return Abc_NtkHasMapping(pObj->pNtk) && Abc_ObjIsNode(pObj) && Vec_IntSize(&pObj->vFanins) == 1 && pObj->pData == NULL; }
364static inline void Abc_ObjBlackboxToWhitebox( Abc_Obj_t * pObj ) { assert( Abc_ObjIsBlackbox(pObj) ); pObj->Type = ABC_OBJ_WHITEBOX; pObj->pNtk->nObjCounts[ABC_OBJ_BLACKBOX]--; pObj->pNtk->nObjCounts[ABC_OBJ_WHITEBOX]++; }
365
366// working with fanin/fanout edges
367static inline int Abc_ObjFaninNum( Abc_Obj_t * pObj ) { return pObj->vFanins.nSize; }
368static inline int Abc_ObjFanoutNum( Abc_Obj_t * pObj ) { return pObj->vFanouts.nSize; }
369static inline int Abc_ObjFaninId( Abc_Obj_t * pObj, int i) { return pObj->vFanins.pArray[i]; }
370static inline int Abc_ObjFaninId0( Abc_Obj_t * pObj ) { return pObj->vFanins.pArray[0]; }
371static inline int Abc_ObjFaninId1( Abc_Obj_t * pObj ) { return pObj->vFanins.pArray[1]; }
372static inline int Abc_ObjFanoutEdgeNum( Abc_Obj_t * pObj, Abc_Obj_t * pFanout ) { assert( Abc_NtkHasAig(pObj->pNtk) ); if ( Abc_ObjFaninId0(pFanout) == pObj->Id ) return 0; if ( Abc_ObjFaninId1(pFanout) == pObj->Id ) return 1; assert( 0 ); return -1; }
373static inline Abc_Obj_t * Abc_ObjFanout( Abc_Obj_t * pObj, int i ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanouts.pArray[i] ]; }
374static inline Abc_Obj_t * Abc_ObjFanout0( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanouts.pArray[0] ]; }
375static inline Abc_Obj_t * Abc_ObjFanin( Abc_Obj_t * pObj, int i ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[i] ]; }
376static inline Abc_Obj_t * Abc_ObjFanin0( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[0] ]; }
377static inline Abc_Obj_t * Abc_ObjFanin1( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[1] ]; }
378static inline Abc_Obj_t * Abc_ObjFanin0Ntk( Abc_Obj_t * pObj ) { return (Abc_NtkIsNetlist(pObj->pNtk)? Abc_ObjFanin0(pObj) : pObj); }
379static inline Abc_Obj_t * Abc_ObjFanout0Ntk( Abc_Obj_t * pObj ) { return (Abc_NtkIsNetlist(pObj->pNtk)? Abc_ObjFanout0(pObj) : pObj); }
380static inline int Abc_ObjFaninC0( Abc_Obj_t * pObj ) { return pObj->fCompl0; }
381static inline int Abc_ObjFaninC1( Abc_Obj_t * pObj ) { return pObj->fCompl1; }
382static inline int Abc_ObjFaninC( Abc_Obj_t * pObj, int i ) { assert( i >=0 && i < 2 ); return i? pObj->fCompl1 : pObj->fCompl0; }
383static inline void Abc_ObjSetFaninC( Abc_Obj_t * pObj, int i ){ assert( i >=0 && i < 2 ); if ( i ) pObj->fCompl1 = 1; else pObj->fCompl0 = 1; }
384static inline void Abc_ObjXorFaninC( Abc_Obj_t * pObj, int i ){ assert( i >=0 && i < 2 ); if ( i ) pObj->fCompl1^= 1; else pObj->fCompl0^= 1; }
385static inline Abc_Obj_t * Abc_ObjChild( Abc_Obj_t * pObj, int i ) { return Abc_ObjNotCond( Abc_ObjFanin(pObj,i), Abc_ObjFaninC(pObj,i) );}
386static inline Abc_Obj_t * Abc_ObjChild0( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin0(pObj), Abc_ObjFaninC0(pObj) ); }
387static inline Abc_Obj_t * Abc_ObjChild1( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin1(pObj), Abc_ObjFaninC1(pObj) ); }
388static inline Abc_Obj_t * Abc_ObjChildCopy( Abc_Obj_t * pObj, int i ){ return Abc_ObjNotCond( Abc_ObjFanin(pObj,i)->pCopy, Abc_ObjFaninC(pObj,i) ); }
389static inline Abc_Obj_t * Abc_ObjChild0Copy( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin0(pObj)->pCopy, Abc_ObjFaninC0(pObj) ); }
390static inline Abc_Obj_t * Abc_ObjChild1Copy( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin1(pObj)->pCopy, Abc_ObjFaninC1(pObj) ); }
391static inline Abc_Obj_t * Abc_ObjChild0Data( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( (Abc_Obj_t *)Abc_ObjFanin0(pObj)->pData, Abc_ObjFaninC0(pObj) ); }
392static inline Abc_Obj_t * Abc_ObjChild1Data( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( (Abc_Obj_t *)Abc_ObjFanin1(pObj)->pData, Abc_ObjFaninC1(pObj) ); }
393static inline Abc_Obj_t * Abc_ObjFromLit( Abc_Ntk_t * p, int iLit ) { return Abc_ObjNotCond( Abc_NtkObj(p, Abc_Lit2Var(iLit)), Abc_LitIsCompl(iLit) ); }
394static inline int Abc_ObjToLit( Abc_Obj_t * p ) { return Abc_Var2Lit( Abc_ObjId(Abc_ObjRegular(p)), Abc_ObjIsComplement(p) ); }
395static inline int Abc_ObjFaninPhase( Abc_Obj_t * p, int i ) { assert(p->pNtk->vPhases); assert( i >= 0 && i < Abc_ObjFaninNum(p) ); return (Vec_IntEntry(p->pNtk->vPhases, Abc_ObjId(p)) >> i) & 1; }
396static inline void Abc_ObjFaninFlipPhase( Abc_Obj_t * p,int i){ assert(p->pNtk->vPhases); assert( i >= 0 && i < Abc_ObjFaninNum(p) ); *Vec_IntEntryP(p->pNtk->vPhases, Abc_ObjId(p)) ^= (1 << i); }
397
398// checking the AIG node types
399static inline int Abc_AigNodeIsConst( Abc_Obj_t * pNode ) { assert(Abc_NtkIsStrash(Abc_ObjRegular(pNode)->pNtk)); return Abc_ObjRegular(pNode)->Type == ABC_OBJ_CONST1; }
400static inline int Abc_AigNodeIsAnd( Abc_Obj_t * pNode ) { assert(!Abc_ObjIsComplement(pNode)); assert(Abc_NtkIsStrash(pNode->pNtk)); return Abc_ObjFaninNum(pNode) == 2; }
401static inline int Abc_AigNodeIsChoice( Abc_Obj_t * pNode ) { assert(!Abc_ObjIsComplement(pNode)); assert(Abc_NtkIsStrash(pNode->pNtk)); return pNode->pData != NULL && Abc_ObjFanoutNum(pNode) > 0; }
402
403// handling persistent nodes
404static inline int Abc_NodeIsPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); return pNode->fPersist; }
405static inline void Abc_NodeSetPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); pNode->fPersist = 1; }
406static inline void Abc_NodeClearPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); pNode->fPersist = 0; }
407
408// working with the traversal ID
409static inline void Abc_NtkIncrementTravId( Abc_Ntk_t * p ) { if (!p->vTravIds.pArray) Vec_IntFill(&p->vTravIds, Abc_NtkObjNumMax(p)+500, 0); p->nTravIds++; assert(p->nTravIds < (1<<30)); }
410static inline int Abc_NodeTravId( Abc_Obj_t * p ) { return Vec_IntGetEntry(&Abc_ObjNtk(p)->vTravIds, Abc_ObjId(p)); }
411static inline void Abc_NodeSetTravId( Abc_Obj_t * p, int TravId ) { Vec_IntSetEntry(&Abc_ObjNtk(p)->vTravIds, Abc_ObjId(p), TravId ); }
412static inline void Abc_NodeSetTravIdCurrent( Abc_Obj_t * p ) { Abc_NodeSetTravId( p, Abc_ObjNtk(p)->nTravIds ); }
413static inline void Abc_NodeSetTravIdPrevious( Abc_Obj_t * p ) { Abc_NodeSetTravId( p, Abc_ObjNtk(p)->nTravIds-1 ); }
414static inline int Abc_NodeIsTravIdCurrent( Abc_Obj_t * p ) { return (Abc_NodeTravId(p) == Abc_ObjNtk(p)->nTravIds); }
415static inline int Abc_NodeIsTravIdPrevious( Abc_Obj_t * p ) { return (Abc_NodeTravId(p) == Abc_ObjNtk(p)->nTravIds-1); }
416static inline void Abc_NodeSetTravIdCurrentId( Abc_Ntk_t * p, int i) { Vec_IntSetEntry(&p->vTravIds, i, p->nTravIds ); }
417static inline int Abc_NodeIsTravIdCurrentId( Abc_Ntk_t * p, int i) { return (Vec_IntGetEntry(&p->vTravIds, i) == p->nTravIds); }
418
419// checking initial state of the latches
420static inline void Abc_LatchSetInitNone( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_NONE; }
421static inline void Abc_LatchSetInit0( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_ZERO; }
422static inline void Abc_LatchSetInit1( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_ONE; }
423static inline void Abc_LatchSetInitDc( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_DC; }
424static inline int Abc_LatchIsInitNone( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_NONE; }
425static inline int Abc_LatchIsInit0( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_ZERO; }
426static inline int Abc_LatchIsInit1( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_ONE; }
427static inline int Abc_LatchIsInitDc( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_DC; }
428static inline int Abc_LatchInit( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return (int)(ABC_PTRINT_T)pLatch->pData; }
429
430// global BDDs of the nodes
431static inline void * Abc_NtkGlobalBdd( Abc_Ntk_t * pNtk ) { return Vec_PtrEntry(pNtk->vAttrs, VEC_ATTR_GLOBAL_BDD); }
432static inline void * Abc_NtkGlobalBddMan( Abc_Ntk_t * pNtk ) { return Vec_AttMan( (Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
433static inline void ** Abc_NtkGlobalBddArray( Abc_Ntk_t * pNtk ) { return Vec_AttArray( (Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
434static inline void * Abc_ObjGlobalBdd( Abc_Obj_t * pObj ) { return Vec_AttEntry( (Vec_Att_t *)Abc_NtkGlobalBdd(pObj->pNtk), pObj->Id ); }
435static inline void Abc_ObjSetGlobalBdd( Abc_Obj_t * pObj, void * bF ) { Vec_AttWriteEntry( (Vec_Att_t *)Abc_NtkGlobalBdd(pObj->pNtk), pObj->Id, bF ); }
436
437// MV variables of the nodes
438static inline void * Abc_NtkMvVar( Abc_Ntk_t * pNtk ) { return Vec_PtrEntry(pNtk->vAttrs, VEC_ATTR_MVVAR); }
439static inline void * Abc_NtkMvVarMan( Abc_Ntk_t * pNtk ) { return Abc_NtkMvVar(pNtk)? Vec_AttMan( (Vec_Att_t *)Abc_NtkMvVar(pNtk) ) : NULL; }
440static inline void * Abc_ObjMvVar( Abc_Obj_t * pObj ) { return Abc_NtkMvVar(pObj->pNtk)? Vec_AttEntry( (Vec_Att_t *)Abc_NtkMvVar(pObj->pNtk), pObj->Id ) : NULL; }
441static inline int Abc_ObjMvVarNum( Abc_Obj_t * pObj ) { return (Abc_NtkMvVar(pObj->pNtk) && Abc_ObjMvVar(pObj))? *((int*)Abc_ObjMvVar(pObj)) : 2; }
442static inline void Abc_ObjSetMvVar( Abc_Obj_t * pObj, void * pV) { Vec_AttWriteEntry( (Vec_Att_t *)Abc_NtkMvVar(pObj->pNtk), pObj->Id, pV ); }
443
447
448// objects of the network
449#define Abc_NtkForEachObj( pNtk, pObj, i ) \
450 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pObj) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
451 if ( (pObj) == NULL ) {} else
452#define Abc_NtkForEachObjReverse( pNtk, pNode, i ) \
453 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
454 if ( (pNode) == NULL ) {} else
455#define Abc_NtkForEachObjVec( vIds, pNtk, pObj, i ) \
456 for ( i = 0; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
457 if ( (pObj) == NULL ) {} else
458#define Abc_NtkForEachObjVecStart( vIds, pNtk, pObj, i, Start ) \
459 for ( i = Start; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
460 if ( (pObj) == NULL ) {} else
461#define Abc_NtkForEachNet( pNtk, pNet, i ) \
462 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNet) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
463 if ( (pNet) == NULL || !Abc_ObjIsNet(pNet) ) {} else
464#define Abc_NtkForEachNode( pNtk, pNode, i ) \
465 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
466 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
467#define Abc_NtkForEachNodeNotBarBuf( pNtk, pNode, i ) \
468 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
469 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || Abc_ObjIsBarBuf(pNode) ) {} else
470#define Abc_NtkForEachNode1( pNtk, pNode, i ) \
471 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
472 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) ) {} else
473#define Abc_NtkForEachNodeNotBarBuf1( pNtk, pNode, i ) \
474 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
475 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) || Abc_ObjIsBarBuf(pNode) ) {} else
476#define Abc_NtkForEachNodeReverse( pNtk, pNode, i ) \
477 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
478 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
479#define Abc_NtkForEachNodeReverse1( pNtk, pNode, i ) \
480 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
481 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) ) {} else
482#define Abc_NtkForEachBarBuf( pNtk, pNode, i ) \
483 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
484 if ( (pNode) == NULL || !Abc_ObjIsBarBuf(pNode) ) {} else
485#define Abc_NtkForEachGate( pNtk, pNode, i ) \
486 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
487 if ( (pNode) == NULL || !Abc_ObjIsGate(pNode) ) {} else
488#define Abc_AigForEachAnd( pNtk, pNode, i ) \
489 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
490 if ( (pNode) == NULL || !Abc_AigNodeIsAnd(pNode) ) {} else
491#define Abc_NtkForEachNodeCi( pNtk, pNode, i ) \
492 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
493 if ( (pNode) == NULL || (!Abc_ObjIsNode(pNode) && !Abc_ObjIsCi(pNode)) ) {} else
494#define Abc_NtkForEachNodeCo( pNtk, pNode, i ) \
495 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
496 if ( (pNode) == NULL || (!Abc_ObjIsNode(pNode) && !Abc_ObjIsCo(pNode)) ) {} else
497// various boxes
498#define Abc_NtkForEachBox( pNtk, pObj, i ) \
499 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ )
500#define Abc_NtkForEachLatch( pNtk, pObj, i ) \
501 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
502 if ( !Abc_ObjIsLatch(pObj) ) {} else
503#define Abc_NtkForEachLatchInput( pNtk, pObj, i ) \
504 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
505 if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanin0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
506#define Abc_NtkForEachLatchOutput( pNtk, pObj, i ) \
507 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
508 if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanout0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
509#define Abc_NtkForEachWhitebox( pNtk, pObj, i ) \
510 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
511 if ( !Abc_ObjIsWhitebox(pObj) ) {} else
512#define Abc_NtkForEachBlackbox( pNtk, pObj, i ) \
513 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
514 if ( !Abc_ObjIsBlackbox(pObj) ) {} else
515// inputs and outputs
516#define Abc_NtkForEachPi( pNtk, pPi, i ) \
517 for ( i = 0; (i < Abc_NtkPiNum(pNtk)) && (((pPi) = Abc_NtkPi(pNtk, i)), 1); i++ )
518#define Abc_NtkForEachCi( pNtk, pCi, i ) \
519 for ( i = 0; (i < Abc_NtkCiNum(pNtk)) && (((pCi) = Abc_NtkCi(pNtk, i)), 1); i++ )
520#define Abc_NtkForEachPo( pNtk, pPo, i ) \
521 for ( i = 0; (i < Abc_NtkPoNum(pNtk)) && (((pPo) = Abc_NtkPo(pNtk, i)), 1); i++ )
522#define Abc_NtkForEachCo( pNtk, pCo, i ) \
523 for ( i = 0; (i < Abc_NtkCoNum(pNtk)) && (((pCo) = Abc_NtkCo(pNtk, i)), 1); i++ )
524#define Abc_NtkForEachLiPo( pNtk, pCo, i ) \
525 for ( i = 0; (i < Abc_NtkCoNum(pNtk)) && (((pCo) = Abc_NtkCo(pNtk, i < pNtk->nBarBufs ? Abc_NtkCoNum(pNtk) - pNtk->nBarBufs + i : i - pNtk->nBarBufs)), 1); i++ )
526// fanin and fanouts
527#define Abc_ObjForEachFanin( pObj, pFanin, i ) \
528 for ( i = 0; (i < Abc_ObjFaninNum(pObj)) && (((pFanin) = Abc_ObjFanin(pObj, i)), 1); i++ )
529#define Abc_ObjForEachFanout( pObj, pFanout, i ) \
530 for ( i = 0; (i < Abc_ObjFanoutNum(pObj)) && (((pFanout) = Abc_ObjFanout(pObj, i)), 1); i++ )
531#define Abc_ObjForEachFaninId( pObj, iFanin, i ) \
532 for ( i = 0; (i < Abc_ObjFaninNum(pObj)) && (((iFanin) = Abc_ObjFaninId(pObj, i)), 1); i++ )
533#define Abc_ObjForEachFanoutId( pObj, iFanout, i ) \
534 for ( i = 0; (i < Abc_ObjFanoutNum(pObj)) && (((iFanout) = Abc_ObjFanoutId(pObj, i)), 1); i++ )
535// cubes and literals
536#define Abc_CubeForEachVar( pCube, Value, i ) \
537 for ( i = 0; (pCube[i] != ' ') && (Value = pCube[i]); i++ )
538#define Abc_SopForEachCube( pSop, nFanins, pCube ) \
539 for ( pCube = (pSop); *pCube; pCube += (nFanins) + 3 )
540#define Abc_SopForEachCubePair( pSop, nFanins, pCube, pCube2 ) \
541 Abc_SopForEachCube( pSop, nFanins, pCube ) \
542 Abc_SopForEachCube( pCube + (nFanins) + 3, nFanins, pCube2 )
543
547
548/*=== abcAig.c ==========================================================*/
549extern ABC_DLL Abc_Aig_t * Abc_AigAlloc( Abc_Ntk_t * pNtk );
550extern ABC_DLL void Abc_AigFree( Abc_Aig_t * pMan );
551extern ABC_DLL int Abc_AigCleanup( Abc_Aig_t * pMan );
552extern ABC_DLL int Abc_AigCheck( Abc_Aig_t * pMan );
553extern ABC_DLL int Abc_AigLevel( Abc_Ntk_t * pNtk );
554extern ABC_DLL Abc_Obj_t * Abc_AigConst1( Abc_Ntk_t * pNtk );
555extern ABC_DLL Abc_Obj_t * Abc_AigAnd( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
556extern ABC_DLL Abc_Obj_t * Abc_AigAndLookup( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
557extern ABC_DLL Abc_Obj_t * Abc_AigXorLookup( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1, int * pType );
558extern ABC_DLL Abc_Obj_t * Abc_AigMuxLookup( Abc_Aig_t * pMan, Abc_Obj_t * pC, Abc_Obj_t * pT, Abc_Obj_t * pE, int * pType );
559extern ABC_DLL Abc_Obj_t * Abc_AigOr( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
560extern ABC_DLL Abc_Obj_t * Abc_AigXor( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
561extern ABC_DLL Abc_Obj_t * Abc_AigMux( Abc_Aig_t * pMan, Abc_Obj_t * pC, Abc_Obj_t * p1, Abc_Obj_t * p0 );
562extern ABC_DLL Abc_Obj_t * Abc_AigMiter( Abc_Aig_t * pMan, Vec_Ptr_t * vPairs, int fImplic );
563extern ABC_DLL int Abc_AigReplace( Abc_Aig_t * pMan, Abc_Obj_t * pOld, Abc_Obj_t * pNew, int fUpdateLevel );
564extern ABC_DLL void Abc_AigDeleteNode( Abc_Aig_t * pMan, Abc_Obj_t * pOld );
565extern ABC_DLL void Abc_AigRehash( Abc_Aig_t * pMan );
568extern ABC_DLL void Abc_AigPrintNode( Abc_Obj_t * pNode );
569extern ABC_DLL int Abc_AigNodeIsAcyclic( Abc_Obj_t * pNode, Abc_Obj_t * pRoot );
570extern ABC_DLL void Abc_AigCheckFaninOrder( Abc_Aig_t * pMan );
571extern ABC_DLL void Abc_AigSetNodePhases( Abc_Ntk_t * pNtk );
572extern ABC_DLL Vec_Ptr_t * Abc_AigUpdateStart( Abc_Aig_t * pMan, Vec_Ptr_t ** pvUpdatedNets );
573extern ABC_DLL void Abc_AigUpdateStop( Abc_Aig_t * pMan );
574extern ABC_DLL void Abc_AigUpdateReset( Abc_Aig_t * pMan );
575/*=== abcAttach.c ==========================================================*/
576extern ABC_DLL int Abc_NtkAttach( Abc_Ntk_t * pNtk );
577/*=== abcBarBuf.c ==========================================================*/
579extern ABC_DLL Abc_Ntk_t * Abc_NtkFromBarBufs( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtk );
581extern ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsFromBuffers( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtk );
582/*=== abcBlifMv.c ==========================================================*/
583extern ABC_DLL void Abc_NtkStartMvVars( Abc_Ntk_t * pNtk );
584extern ABC_DLL void Abc_NtkFreeMvVars( Abc_Ntk_t * pNtk );
585extern ABC_DLL void Abc_NtkSetMvVarValues( Abc_Obj_t * pObj, int nValues );
587extern ABC_DLL Abc_Ntk_t * Abc_NtkInsertBlifMv( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtkLogic );
588extern ABC_DLL int Abc_NtkConvertToBlifMv( Abc_Ntk_t * pNtk );
589extern ABC_DLL char * Abc_NodeConvertSopToMvSop( int nVars, Vec_Int_t * vSop0, Vec_Int_t * vSop1 );
590extern ABC_DLL int Abc_NodeEvalMvCost( int nVars, Vec_Int_t * vSop0, Vec_Int_t * vSop1 );
591/*=== abcBalance.c ==========================================================*/
592extern ABC_DLL Abc_Ntk_t * Abc_NtkBalance( Abc_Ntk_t * pNtk, int fDuplicate, int fSelective, int fUpdateLevel );
593/*=== abcCheck.c ==========================================================*/
594extern ABC_DLL int Abc_NtkCheck( Abc_Ntk_t * pNtk );
595extern ABC_DLL int Abc_NtkCheckRead( Abc_Ntk_t * pNtk );
596extern ABC_DLL int Abc_NtkDoCheck( Abc_Ntk_t * pNtk );
597extern ABC_DLL int Abc_NtkCheckObj( Abc_Ntk_t * pNtk, Abc_Obj_t * pObj );
598extern ABC_DLL int Abc_NtkCompareSignals( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fOnlyPis, int fComb );
599extern ABC_DLL int Abc_NtkIsAcyclicHierarchy( Abc_Ntk_t * pNtk );
600extern ABC_DLL int Abc_NtkCheckUniqueCiNames( Abc_Ntk_t * pNtk );
601extern ABC_DLL int Abc_NtkCheckUniqueCoNames( Abc_Ntk_t * pNtk );
602extern ABC_DLL int Abc_NtkCheckUniqueCioNames( Abc_Ntk_t * pNtk );
603/*=== abcCollapse.c ==========================================================*/
604extern ABC_DLL Abc_Ntk_t * Abc_NtkCollapse( Abc_Ntk_t * pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fReverse, int fDumpOrder, int fVerbose );
605extern ABC_DLL Abc_Ntk_t * Abc_NtkCollapseSat( Abc_Ntk_t * pNtk, int nCubeLim, int nBTLimit, int nCostMax, int fCanon, int fReverse, int fCnfShared, int fVerbose );
606extern ABC_DLL Gia_Man_t * Abc_NtkClpGia( Abc_Ntk_t * pNtk );
607/*=== abcCut.c ==========================================================*/
608extern ABC_DLL void * Abc_NodeGetCutsRecursive( void * p, Abc_Obj_t * pObj, int fDag, int fTree );
609extern ABC_DLL void * Abc_NodeGetCuts( void * p, Abc_Obj_t * pObj, int fDag, int fTree );
610extern ABC_DLL void Abc_NodeGetCutsSeq( void * p, Abc_Obj_t * pObj, int fFirst );
611extern ABC_DLL void * Abc_NodeReadCuts( void * p, Abc_Obj_t * pObj );
612extern ABC_DLL void Abc_NodeFreeCuts( void * p, Abc_Obj_t * pObj );
613/*=== abcDar.c ============================================================*/
614extern ABC_DLL int Abc_NtkPhaseFrameNum( Abc_Ntk_t * pNtk );
615extern ABC_DLL int Abc_NtkDarPrintCone( Abc_Ntk_t * pNtk );
616extern ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor( Abc_Ntk_t * pNtk, int fUpdateLevel, int fVerbose );
617extern ABC_DLL Abc_Ntk_t * Abc_NtkDarLatchSweep( Abc_Ntk_t * pNtk, int fLatchConst, int fLatchEqual, int fSaveNames, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose );
618/*=== abcDelay.c ==========================================================*/
619extern ABC_DLL float Abc_NtkDelayTraceLut( Abc_Ntk_t * pNtk, int fUseLutLib );
620/*=== abcDfs.c ==========================================================*/
621extern ABC_DLL Vec_Ptr_t * Abc_NtkDfs( Abc_Ntk_t * pNtk, int fCollectAll );
622extern ABC_DLL Vec_Ptr_t * Abc_NtkDfs2( Abc_Ntk_t * pNtk );
623extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
625extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
626extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodesContained( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
627extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeq( Abc_Ntk_t * pNtk );
629extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsIter( Abc_Ntk_t * pNtk, int fCollectAll );
630extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsIterNodes( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots );
631extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsHie( Abc_Ntk_t * pNtk, int fCollectAll );
632extern ABC_DLL int Abc_NtkIsDfsOrdered( Abc_Ntk_t * pNtk );
634extern ABC_DLL Vec_Ptr_t * Abc_NtkSupport( Abc_Ntk_t * pNtk );
635extern ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
636extern ABC_DLL Vec_Int_t * Abc_NtkNodeSupportInt( Abc_Ntk_t * pNtk, int iCo );
637extern ABC_DLL int Abc_NtkFunctionalIso( Abc_Ntk_t * pNtk, int iCo1, int iCo2, int fCommon );
638extern ABC_DLL Vec_Ptr_t * Abc_AigDfs( Abc_Ntk_t * pNtk, int fCollectAll, int fCollectCos );
639extern ABC_DLL Vec_Ptr_t * Abc_AigDfsMap( Abc_Ntk_t * pNtk );
640extern ABC_DLL Vec_Vec_t * Abc_DfsLevelized( Abc_Obj_t * pNode, int fTfi );
641extern ABC_DLL Vec_Vec_t * Abc_NtkLevelize( Abc_Ntk_t * pNtk );
642extern ABC_DLL int Abc_NtkLevel( Abc_Ntk_t * pNtk );
643extern ABC_DLL int Abc_NtkLevelR( Abc_Ntk_t * pNtk );
644extern ABC_DLL int Abc_NtkLevelReverse( Abc_Ntk_t * pNtk );
645extern ABC_DLL int Abc_NtkIsAcyclic( Abc_Ntk_t * pNtk );
646extern ABC_DLL int Abc_NtkIsAcyclicWithBoxes( Abc_Ntk_t * pNtk );
647extern ABC_DLL Vec_Ptr_t * Abc_AigGetLevelizedOrder( Abc_Ntk_t * pNtk, int fCollectCis );
648/*=== abcExact.c ==========================================================*/
649extern ABC_DLL int Abc_ExactInputNum();
650extern ABC_DLL int Abc_ExactIsRunning();
651extern ABC_DLL Abc_Obj_t * Abc_ExactBuildNode( word * pTruth, int nVars, int * pArrTimeProfile, Abc_Obj_t ** pFanins, Abc_Ntk_t * pNtk );
652extern ABC_DLL Abc_Ntk_t * Abc_NtkFindExact( word * pTruth, int nVars, int nFunc, int nMaxDepth, int * pArrivalTimes, int nBTLimit, int nStartGates, int fVerbose );
653/*=== abcFanio.c ==========================================================*/
654extern ABC_DLL void Abc_ObjAddFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFanin );
655extern ABC_DLL void Abc_ObjDeleteFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFanin );
656extern ABC_DLL void Abc_ObjRemoveFanins( Abc_Obj_t * pObj );
657extern ABC_DLL void Abc_ObjPatchFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFaninOld, Abc_Obj_t * pFaninNew );
658extern ABC_DLL void Abc_ObjPatchFanoutFanin( Abc_Obj_t * pObj, int iObjNew );
659extern ABC_DLL Abc_Obj_t * Abc_ObjInsertBetween( Abc_Obj_t * pNodeIn, Abc_Obj_t * pNodeOut, Abc_ObjType_t Type );
660extern ABC_DLL void Abc_ObjTransferFanout( Abc_Obj_t * pObjOld, Abc_Obj_t * pObjNew );
661extern ABC_DLL void Abc_ObjReplace( Abc_Obj_t * pObjOld, Abc_Obj_t * pObjNew );
662extern ABC_DLL void Abc_ObjReplaceByConstant( Abc_Obj_t * pNode, int fConst1 );
663extern ABC_DLL int Abc_ObjFanoutFaninNum( Abc_Obj_t * pFanout, Abc_Obj_t * pFanin );
664/*=== abcFanOrder.c ==========================================================*/
665extern ABC_DLL int Abc_NtkMakeLegit( Abc_Ntk_t * pNtk );
666extern ABC_DLL void Abc_NtkSortSops( Abc_Ntk_t * pNtk );
667/*=== abcFraig.c ==========================================================*/
668extern ABC_DLL Abc_Ntk_t * Abc_NtkFraig( Abc_Ntk_t * pNtk, void * pParams, int fAllNodes, int fExdc );
669extern ABC_DLL void * Abc_NtkToFraig( Abc_Ntk_t * pNtk, void * pParams, int fAllNodes, int fExdc );
671extern ABC_DLL int Abc_NtkFraigStore( Abc_Ntk_t * pNtk );
672extern ABC_DLL Abc_Ntk_t * Abc_NtkFraigRestore( int nPatsRand, int nPatsDyna, int nBTLimit );
673extern ABC_DLL void Abc_NtkFraigStoreClean();
674/*=== abcFunc.c ==========================================================*/
675extern ABC_DLL int Abc_NtkSopToBdd( Abc_Ntk_t * pNtk );
676extern ABC_DLL int Abc_NtkBddToSop( Abc_Ntk_t * pNtk, int fMode, int nCubeLimit, int fCubeSort );
677extern ABC_DLL void Abc_NodeBddToCnf( Abc_Obj_t * pNode, Mem_Flex_t * pMmMan, Vec_Str_t * vCube, int fAllPrimes, char ** ppSop0, char ** ppSop1 );
678extern ABC_DLL void Abc_NtkLogicMakeDirectSops( Abc_Ntk_t * pNtk );
679extern ABC_DLL int Abc_NtkSopToAig( Abc_Ntk_t * pNtk );
680extern ABC_DLL int Abc_NtkAigToBdd( Abc_Ntk_t * pNtk );
681extern ABC_DLL Gia_Man_t * Abc_NtkAigToGia( Abc_Ntk_t * p, int fGiaSimple );
682extern ABC_DLL int Abc_NtkMapToSopUsingLibrary( Abc_Ntk_t * pNtk, void* library );
683extern ABC_DLL int Abc_NtkMapToSop( Abc_Ntk_t * pNtk );
684extern ABC_DLL int Abc_NtkToSop( Abc_Ntk_t * pNtk, int fMode, int nCubeLimit );
685extern ABC_DLL int Abc_NtkToBdd( Abc_Ntk_t * pNtk );
686extern ABC_DLL int Abc_NtkToAig( Abc_Ntk_t * pNtk );
687/*=== abcHaig.c ==========================================================*/
688extern ABC_DLL int Abc_NtkHaigStart( Abc_Ntk_t * pNtk );
689extern ABC_DLL int Abc_NtkHaigStop( Abc_Ntk_t * pNtk );
691/*=== abcHie.c ==========================================================*/
694extern ABC_DLL Abc_Ntk_t * Abc_NtkInsertNewLogic( Abc_Ntk_t * pNtkH, Abc_Ntk_t * pNtkL );
695extern ABC_DLL void Abc_NtkPrintBoxInfo( Abc_Ntk_t * pNtk );
696/*=== abcHieGia.c ==========================================================*/
697extern ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia( Abc_Ntk_t * pNtk, Vec_Ptr_t ** pvBuffers, int fVerbose );
698extern ABC_DLL void Abc_NtkInsertHierarchyGia( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNew, int fVerbose );
699/*=== abcLatch.c ==========================================================*/
700extern ABC_DLL int Abc_NtkLatchIsSelfFeed( Abc_Obj_t * pLatch );
704extern ABC_DLL char * Abc_NtkCollectLatchValuesStr( Abc_Ntk_t * pNtk );
705extern ABC_DLL void Abc_NtkInsertLatchValues( Abc_Ntk_t * pNtk, Vec_Int_t * vValues );
706extern ABC_DLL Abc_Obj_t * Abc_NtkAddLatch( Abc_Ntk_t * pNtk, Abc_Obj_t * pDriver, Abc_InitType_t Init );
707extern ABC_DLL void Abc_NtkConvertDcLatches( Abc_Ntk_t * pNtk );
709 /*=== abcLib.c ==========================================================*/
710extern ABC_DLL Abc_Des_t * Abc_DesCreate( char * pName );
711extern ABC_DLL void Abc_DesCleanManPointer( Abc_Des_t * p, void * pMan );
712extern ABC_DLL void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtk );
714extern ABC_DLL void Abc_DesPrint( Abc_Des_t * p );
715extern ABC_DLL int Abc_DesAddModel( Abc_Des_t * p, Abc_Ntk_t * pNtk );
716extern ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName( Abc_Des_t * p, char * pName );
719/*=== abcLog.c ==========================================================*/
720extern ABC_DLL void Abc_NtkWriteLogFile( char * pFileName, Abc_Cex_t * pSeqCex, int Status, int nFrames, char * pCommand );
721/*=== abcMap.c ==========================================================*/
723/*=== abcMiter.c ==========================================================*/
724extern ABC_DLL int Abc_NtkMinimumBase( Abc_Ntk_t * pNtk );
725extern ABC_DLL int Abc_NodeMinimumBase( Abc_Obj_t * pNode );
726extern ABC_DLL int Abc_NtkRemoveDupFanins( Abc_Ntk_t * pNtk );
728/*=== abcMiter.c ==========================================================*/
729extern ABC_DLL Abc_Ntk_t * Abc_NtkMiter( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fComb, int nPartSize, int fImplic, int fMulti );
730extern ABC_DLL void Abc_NtkMiterAddCone( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkMiter, Abc_Obj_t * pNode );
731extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterAnd( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fOr, int fCompl2 );
732extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterCofactor( Abc_Ntk_t * pNtk, Vec_Int_t * vPiValues );
733extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterForCofactors( Abc_Ntk_t * pNtk, int Out, int In1, int In2 );
734extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantify( Abc_Ntk_t * pNtk, int In, int fExist );
736extern ABC_DLL int Abc_NtkMiterIsConstant( Abc_Ntk_t * pMiter );
737extern ABC_DLL void Abc_NtkMiterReport( Abc_Ntk_t * pMiter );
738extern ABC_DLL Abc_Ntk_t * Abc_NtkFrames( Abc_Ntk_t * pNtk, int nFrames, int fInitial, int fVerbose );
739extern ABC_DLL int Abc_NtkCombinePos( Abc_Ntk_t * pNtk, int fAnd, int fXor );
740/*=== abcNames.c ====================================================*/
741extern ABC_DLL char * Abc_ObjName( Abc_Obj_t * pNode );
742extern ABC_DLL char * Abc_ObjAssignName( Abc_Obj_t * pObj, char * pName, char * pSuffix );
743extern ABC_DLL char * Abc_ObjNamePrefix( Abc_Obj_t * pObj, char * pPrefix );
744extern ABC_DLL char * Abc_ObjNameSuffix( Abc_Obj_t * pObj, char * pSuffix );
745extern ABC_DLL char * Abc_ObjNameDummy( char * pPrefix, int Num, int nDigits );
746extern ABC_DLL void Abc_NtkTrasferNames( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
747extern ABC_DLL void Abc_NtkTrasferNamesNoLatches( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
749extern ABC_DLL Vec_Ptr_t * Abc_NodeGetFakeNames( int nNames );
750extern ABC_DLL void Abc_NodeFreeNames( Vec_Ptr_t * vNames );
751extern ABC_DLL char ** Abc_NtkCollectCioNames( Abc_Ntk_t * pNtk, int fCollectCos );
752extern ABC_DLL int Abc_NodeCompareNames( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
753extern ABC_DLL void Abc_NtkOrderObjsByName( Abc_Ntk_t * pNtk, int fComb );
754extern ABC_DLL void Abc_NtkAddDummyPiNames( Abc_Ntk_t * pNtk );
755extern ABC_DLL void Abc_NtkAddDummyPoNames( Abc_Ntk_t * pNtk );
756extern ABC_DLL void Abc_NtkAddDummyBoxNames( Abc_Ntk_t * pNtk );
757extern ABC_DLL void Abc_NtkShortNames( Abc_Ntk_t * pNtk );
758extern ABC_DLL void Abc_NtkCharNames( Abc_Ntk_t * pNtk );
759extern ABC_DLL void Abc_NtkCleanNames( Abc_Ntk_t * pNtk );
760extern ABC_DLL void Abc_NtkStartNameIds( Abc_Ntk_t * p );
761extern ABC_DLL void Abc_NtkTransferNameIds( Abc_Ntk_t * p, Abc_Ntk_t * pNew );
762extern ABC_DLL void Abc_NtkUpdateNameIds( Abc_Ntk_t * p );
763/*=== abcNetlist.c ==========================================================*/
764extern ABC_DLL Abc_Ntk_t * Abc_NtkToLogic( Abc_Ntk_t * pNtk );
767/*=== abcNtbdd.c ==========================================================*/
768extern ABC_DLL Abc_Ntk_t * Abc_NtkDeriveFromBdd( void * dd, void * bFunc, char * pNamePo, Vec_Ptr_t * vNamesPi );
769extern ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes( Abc_Ntk_t * pNtk, int fGlobal, int Limit, int fUseAdd );
770extern ABC_DLL void * Abc_NtkBuildGlobalBdds( Abc_Ntk_t * pNtk, int fBddSizeMax, int fDropInternal, int fReorder, int fReverse, int fVerbose );
771extern ABC_DLL void * Abc_NtkFreeGlobalBdds( Abc_Ntk_t * pNtk, int fFreeMan );
773/*=== abcNtk.c ==========================================================*/
774extern ABC_DLL Abc_Ntk_t * Abc_NtkAlloc( Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan );
777extern ABC_DLL void Abc_NtkFinalize( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
778extern ABC_DLL Abc_Ntk_t * Abc_NtkStartRead( char * pName );
779extern ABC_DLL void Abc_NtkFinalizeRead( Abc_Ntk_t * pNtk );
780extern ABC_DLL Abc_Ntk_t * Abc_NtkDup( Abc_Ntk_t * pNtk );
781extern ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs( Abc_Ntk_t * pNtk );
784extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode, char * pNodeName, int fUseAllCis );
785extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateConeArray( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, int fUseAllCis );
786extern ABC_DLL void Abc_NtkAppendToCone( Abc_Ntk_t * pNtkNew, Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots );
787extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode, char * pNodeName );
788extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, Vec_Int_t * vValues );
789extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode );
791extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNode( char * pSop );
793extern ABC_DLL void Abc_NtkDelete( Abc_Ntk_t * pNtk );
794extern ABC_DLL void Abc_NtkFixNonDrivenNets( Abc_Ntk_t * pNtk );
795extern ABC_DLL void Abc_NtkMakeComb( Abc_Ntk_t * pNtk, int fRemoveLatches );
796extern ABC_DLL void Abc_NtkPermute( Abc_Ntk_t * pNtk, int fInputs, int fOutputs, int fFlops, char * pInPermFile, char * pOutPermFile, char * pFlopPermFile );
797extern ABC_DLL void Abc_NtkUnpermute( Abc_Ntk_t * pNtk );
798extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromSops( char * pName, Vec_Ptr_t * vSops );
799extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromGias( char * pName, Vec_Ptr_t * vGias, Gia_Man_t * pMulti );
800/*=== abcObj.c ==========================================================*/
801extern ABC_DLL Abc_Obj_t * Abc_ObjAlloc( Abc_Ntk_t * pNtk, Abc_ObjType_t Type );
802extern ABC_DLL void Abc_ObjRecycle( Abc_Obj_t * pObj );
804extern ABC_DLL void Abc_NtkDeleteObj( Abc_Obj_t * pObj );
805extern ABC_DLL void Abc_NtkDeleteObjPo( Abc_Obj_t * pObj );
806extern ABC_DLL void Abc_NtkDeleteObj_rec( Abc_Obj_t * pObj, int fOnlyNodes );
807extern ABC_DLL void Abc_NtkDeleteAll_rec( Abc_Obj_t * pObj );
808extern ABC_DLL Abc_Obj_t * Abc_NtkDupObj( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pObj, int fCopyName );
809extern ABC_DLL Abc_Obj_t * Abc_NtkDupBox( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pBox, int fCopyName );
810extern ABC_DLL Abc_Obj_t * Abc_NtkCloneObj( Abc_Obj_t * pNode );
811extern ABC_DLL Abc_Obj_t * Abc_NtkFindNode( Abc_Ntk_t * pNtk, char * pName );
812extern ABC_DLL Abc_Obj_t * Abc_NtkFindNet( Abc_Ntk_t * pNtk, char * pName );
813extern ABC_DLL Abc_Obj_t * Abc_NtkFindCi( Abc_Ntk_t * pNtk, char * pName );
814extern ABC_DLL Abc_Obj_t * Abc_NtkFindCo( Abc_Ntk_t * pNtk, char * pName );
815extern ABC_DLL Abc_Obj_t * Abc_NtkFindOrCreateNet( Abc_Ntk_t * pNtk, char * pName );
818extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv( Abc_Ntk_t * pNtk, Abc_Obj_t * pFanin );
819extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf( Abc_Ntk_t * pNtk, Abc_Obj_t * pFanin );
820extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeAnd( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
821extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeOr( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
822extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeExor( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
823extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeMux( Abc_Ntk_t * pNtk, Abc_Obj_t * pNodeC, Abc_Obj_t * pNode1, Abc_Obj_t * pNode0 );
824extern ABC_DLL int Abc_NodeIsConst( Abc_Obj_t * pNode );
825extern ABC_DLL int Abc_NodeIsConst0( Abc_Obj_t * pNode );
826extern ABC_DLL int Abc_NodeIsConst1( Abc_Obj_t * pNode );
827extern ABC_DLL int Abc_NodeIsBuf( Abc_Obj_t * pNode );
828extern ABC_DLL int Abc_NodeIsInv( Abc_Obj_t * pNode );
829extern ABC_DLL void Abc_NodeComplement( Abc_Obj_t * pNode );
830extern ABC_DLL void Abc_NodeComplementInput( Abc_Obj_t * pNode, Abc_Obj_t * pFanin );
831/*=== abcOdc.c ==========================================================*/
832typedef struct Odc_Man_t_ Odc_Man_t;
834extern ABC_DLL void Abc_NtkDontCareClear( Odc_Man_t * p );
835extern ABC_DLL void Abc_NtkDontCareFree( Odc_Man_t * p );
837/*=== abcPrint.c ==========================================================*/
838extern ABC_DLL float Abc_NtkMfsTotalSwitching( Abc_Ntk_t * pNtk );
839extern ABC_DLL float Abc_NtkMfsTotalGlitching( Abc_Ntk_t * pNtk, int nPats, int Prob, int fVerbose );
840extern ABC_DLL void Abc_NtkPrintStats( Abc_Ntk_t * pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf, int fSkipSmall, int fPrintMem );
841extern ABC_DLL void Abc_NtkPrintIo( FILE * pFile, Abc_Ntk_t * pNtk, int fPrintFlops );
842extern ABC_DLL void Abc_NtkPrintLatch( FILE * pFile, Abc_Ntk_t * pNtk );
843extern ABC_DLL void Abc_NtkPrintFanio( FILE * pFile, Abc_Ntk_t * pNtk, int fUseFanio, int fUsePio, int fUseSupp, int fUseCone );
844extern ABC_DLL void Abc_NtkPrintFanioNew( FILE * pFile, Abc_Ntk_t * pNtk, int fMffc );
845extern ABC_DLL void Abc_NodePrintFanio( FILE * pFile, Abc_Obj_t * pNode );
846extern ABC_DLL void Abc_NtkPrintFactor( FILE * pFile, Abc_Ntk_t * pNtk, int fUseRealNames );
847extern ABC_DLL void Abc_NodePrintFactor( FILE * pFile, Abc_Obj_t * pNode, int fUseRealNames );
848extern ABC_DLL void Abc_NtkPrintLevel( FILE * pFile, Abc_Ntk_t * pNtk, int fProfile, int fListNodes, int fOutputs, int fVerbose );
849extern ABC_DLL void Abc_NodePrintLevel( FILE * pFile, Abc_Obj_t * pNode );
850extern ABC_DLL void Abc_NtkPrintSkews( FILE * pFile, Abc_Ntk_t * pNtk, int fPrintAll );
851extern ABC_DLL void Abc_ObjPrint( FILE * pFile, Abc_Obj_t * pObj );
852extern ABC_DLL void Abc_NtkShow6VarFunc( char * pF0, char * pF1 );
853/*=== abcProve.c ==========================================================*/
854extern ABC_DLL int Abc_NtkMiterProve( Abc_Ntk_t ** ppNtk, void * pParams );
855extern ABC_DLL int Abc_NtkIvyProve( Abc_Ntk_t ** ppNtk, void * pPars );
856/*=== abcRec3.c ==========================================================*/
857extern ABC_DLL void Abc_NtkRecStart3( Gia_Man_t * p, int nVars, int nCuts, int fFuncOnly, int fVerbose );
858extern ABC_DLL void Abc_NtkRecStop3();
859extern ABC_DLL void Abc_NtkRecAdd3( Abc_Ntk_t * pNtk, int fUseSOPB );
860extern ABC_DLL void Abc_NtkRecPs3(int fPrintLib);
862extern ABC_DLL int Abc_NtkRecIsRunning3();
863extern ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t * pGia);
864extern ABC_DLL int Abc_NtkRecInputNum3();
865//extern ABC_DLL void Abc_NtkRecFilter3(int nLimit);
866/*=== abcReconv.c ==========================================================*/
867extern ABC_DLL Abc_ManCut_t * Abc_NtkManCutStart( int nNodeSizeMax, int nConeSizeMax, int nNodeFanStop, int nConeFanStop );
868extern ABC_DLL void Abc_NtkManCutStop( Abc_ManCut_t * p );
872extern ABC_DLL Vec_Ptr_t * Abc_NodeFindCut( Abc_ManCut_t * p, Abc_Obj_t * pRoot, int fContain );
873extern ABC_DLL void Abc_NodeConeCollect( Abc_Obj_t ** ppRoots, int nRoots, Vec_Ptr_t * vFanins, Vec_Ptr_t * vVisited, int fIncludeFanins );
874extern ABC_DLL Vec_Ptr_t * Abc_NodeCollectTfoCands( Abc_ManCut_t * p, Abc_Obj_t * pRoot, Vec_Ptr_t * vFanins, int LevelMax );
875/*=== abcRefs.c ==========================================================*/
880extern ABC_DLL int Abc_NodeMffcLabel( Abc_Obj_t * pNode, Vec_Ptr_t * vNodes );
881extern ABC_DLL void Abc_NodeMffcConeSupp( Abc_Obj_t * pNode, Vec_Ptr_t * vCone, Vec_Ptr_t * vSupp );
883extern ABC_DLL int Abc_NodeRef_rec( Abc_Obj_t * pNode );
884/*=== abcRefactor.c ==========================================================*/
885extern ABC_DLL int Abc_NtkRefactor( Abc_Ntk_t * pNtk, int nNodeSizeMax, int nMinSaved, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose );
886/*=== abcRewrite.c ==========================================================*/
887extern ABC_DLL int Abc_NtkRewrite( Abc_Ntk_t * pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable );
888/*=== abcSat.c ==========================================================*/
889extern ABC_DLL int Abc_NtkMiterSat( Abc_Ntk_t * pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T * pNumConfs, ABC_INT64_T * pNumInspects );
890extern ABC_DLL void * Abc_NtkMiterSatCreate( Abc_Ntk_t * pNtk, int fAllPrimes );
891/*=== abcSop.c ==========================================================*/
892extern ABC_DLL char * Abc_SopRegister( Mem_Flex_t * pMan, const char * pName );
893extern ABC_DLL char * Abc_SopStart( Mem_Flex_t * pMan, int nCubes, int nVars );
894extern ABC_DLL char * Abc_SopCreateConst0( Mem_Flex_t * pMan );
895extern ABC_DLL char * Abc_SopCreateConst1( Mem_Flex_t * pMan );
896extern ABC_DLL char * Abc_SopCreateAnd2( Mem_Flex_t * pMan, int fCompl0, int fCompl1 );
897extern ABC_DLL char * Abc_SopCreateAnd( Mem_Flex_t * pMan, int nVars, int * pfCompl );
898extern ABC_DLL char * Abc_SopCreateNand( Mem_Flex_t * pMan, int nVars );
899extern ABC_DLL char * Abc_SopCreateOr( Mem_Flex_t * pMan, int nVars, int * pfCompl );
900extern ABC_DLL char * Abc_SopCreateOrMultiCube( Mem_Flex_t * pMan, int nVars, int * pfCompl );
901extern ABC_DLL char * Abc_SopCreateNor( Mem_Flex_t * pMan, int nVars );
902extern ABC_DLL char * Abc_SopCreateXor( Mem_Flex_t * pMan, int nVars );
903extern ABC_DLL char * Abc_SopCreateXorSpecial( Mem_Flex_t * pMan, int nVars );
904extern ABC_DLL char * Abc_SopCreateNxor( Mem_Flex_t * pMan, int nVars );
905extern ABC_DLL char * Abc_SopCreateMux( Mem_Flex_t * pMan );
906extern ABC_DLL char * Abc_SopCreateInv( Mem_Flex_t * pMan );
907extern ABC_DLL char * Abc_SopCreateBuf( Mem_Flex_t * pMan );
908extern ABC_DLL char * Abc_SopCreateFromTruth( Mem_Flex_t * pMan, int nVars, unsigned * pTruth );
909extern ABC_DLL char * Abc_SopCreateFromIsop( Mem_Flex_t * pMan, int nVars, Vec_Int_t * vCover );
910extern ABC_DLL char * Abc_SopCreateFromTruthIsop( Mem_Flex_t * pMan, int nVars, word * pTruth, Vec_Int_t * vCover );
911extern ABC_DLL int Abc_SopGetCubeNum( char * pSop );
912extern ABC_DLL int Abc_SopGetLitNum( char * pSop );
913extern ABC_DLL int Abc_SopGetVarNum( char * pSop );
914extern ABC_DLL int Abc_SopGetPhase( char * pSop );
915extern ABC_DLL int Abc_SopGetIthCareLit( char * pSop, int i );
916extern ABC_DLL void Abc_SopComplement( char * pSop );
917extern ABC_DLL void Abc_SopComplementVar( char * pSop, int iVar );
918extern ABC_DLL int Abc_SopIsComplement( char * pSop );
919extern ABC_DLL int Abc_SopIsConst0( char * pSop );
920extern ABC_DLL int Abc_SopIsConst1( char * pSop );
921extern ABC_DLL int Abc_SopIsBuf( char * pSop );
922extern ABC_DLL int Abc_SopIsInv( char * pSop );
923extern ABC_DLL int Abc_SopIsAndType( char * pSop );
924extern ABC_DLL int Abc_SopIsOrType( char * pSop );
925extern ABC_DLL int Abc_SopIsExorType( char * pSop );
926extern ABC_DLL int Abc_SopCheck( char * pSop, int nFanins );
927extern ABC_DLL char * Abc_SopFromTruthBin( char * pTruth );
928extern ABC_DLL char * Abc_SopFromTruthHex( char * pTruth );
929extern ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsBin( char * pTruth );
930extern ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsHex( char * pTruth );
931extern ABC_DLL char * Abc_SopEncoderPos( Mem_Flex_t * pMan, int iValue, int nValues );
932extern ABC_DLL char * Abc_SopEncoderLog( Mem_Flex_t * pMan, int iBit, int nValues );
933extern ABC_DLL char * Abc_SopDecoderPos( Mem_Flex_t * pMan, int nValues );
934extern ABC_DLL char * Abc_SopDecoderLog( Mem_Flex_t * pMan, int nValues );
935extern ABC_DLL word Abc_SopToTruth( char * pSop, int nInputs );
936extern ABC_DLL void Abc_SopToTruth7( char * pSop, int nInputs, word r[2] );
937extern ABC_DLL void Abc_SopToTruthBig( char * pSop, int nInputs, word ** pVars, word * pCube, word * pRes );
938/*=== abcStrash.c ==========================================================*/
939extern ABC_DLL Abc_Ntk_t * Abc_NtkRestrash( Abc_Ntk_t * pNtk, int fCleanup );
940extern ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero( Abc_Ntk_t * pNtk, int fCleanup );
941extern ABC_DLL Abc_Ntk_t * Abc_NtkStrash( Abc_Ntk_t * pNtk, int fAllNodes, int fCleanup, int fRecord );
942extern ABC_DLL Abc_Obj_t * Abc_NodeStrash( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pNode, int fRecord );
943extern ABC_DLL int Abc_NtkAppend( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fAddPos );
944extern ABC_DLL Abc_Ntk_t * Abc_NtkTopmost( Abc_Ntk_t * pNtk, int nLevels );
945/*=== abcSweep.c ==========================================================*/
946extern ABC_DLL int Abc_NtkSweep( Abc_Ntk_t * pNtk, int fVerbose );
947extern ABC_DLL int Abc_NtkCleanup( Abc_Ntk_t * pNtk, int fVerbose );
948extern ABC_DLL int Abc_NtkCleanupNodes( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, int fVerbose );
949extern ABC_DLL int Abc_NtkCleanupSeq( Abc_Ntk_t * pNtk, int fLatchSweep, int fAutoSweep, int fVerbose );
950extern ABC_DLL int Abc_NtkSweepBufsInvs( Abc_Ntk_t * pNtk, int fVerbose );
951/*=== abcTiming.c ==========================================================*/
964extern ABC_DLL Abc_Time_t * Abc_NodeReadInputDrive( Abc_Ntk_t * pNtk, int iPi );
965extern ABC_DLL Abc_Time_t * Abc_NodeReadOutputLoad( Abc_Ntk_t * pNtk, int iPo );
966extern ABC_DLL float Abc_NodeReadInputDriveWorst( Abc_Ntk_t * pNtk, int iPi );
967extern ABC_DLL float Abc_NodeReadOutputLoadWorst( Abc_Ntk_t * pNtk, int iPo );
968extern ABC_DLL void Abc_NtkTimeSetDefaultArrival( Abc_Ntk_t * pNtk, float Rise, float Fall );
969extern ABC_DLL void Abc_NtkTimeSetDefaultRequired( Abc_Ntk_t * pNtk, float Rise, float Fall );
970extern ABC_DLL void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall );
971extern ABC_DLL void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall );
972extern ABC_DLL void Abc_NtkTimeSetDefaultInputDrive( Abc_Ntk_t * pNtk, float Rise, float Fall );
973extern ABC_DLL void Abc_NtkTimeSetDefaultOutputLoad( Abc_Ntk_t * pNtk, float Rise, float Fall );
974extern ABC_DLL void Abc_NtkTimeSetInputDrive( Abc_Ntk_t * pNtk, int PiNum, float Rise, float Fall );
975extern ABC_DLL void Abc_NtkTimeSetOutputLoad( Abc_Ntk_t * pNtk, int PoNum, float Rise, float Fall );
976extern ABC_DLL void Abc_NtkTimeInitialize( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkOld );
977extern ABC_DLL void Abc_ManTimeStop( Abc_ManTime_t * p );
978extern ABC_DLL void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew );
979extern ABC_DLL void Abc_NtkSetNodeLevelsArrival( Abc_Ntk_t * pNtk );
980extern ABC_DLL float * Abc_NtkGetCiArrivalFloats( Abc_Ntk_t * pNtk );
981extern ABC_DLL float * Abc_NtkGetCoRequiredFloats( Abc_Ntk_t * pNtk );
984extern ABC_DLL float Abc_NtkDelayTrace( Abc_Ntk_t * pNtk, Abc_Obj_t * pOut, Abc_Obj_t * pIn, int fPrint );
985extern ABC_DLL int Abc_ObjLevelNew( Abc_Obj_t * pObj );
986extern ABC_DLL int Abc_ObjReverseLevelNew( Abc_Obj_t * pObj );
987extern ABC_DLL int Abc_ObjRequiredLevel( Abc_Obj_t * pObj );
988extern ABC_DLL int Abc_ObjReverseLevel( Abc_Obj_t * pObj );
989extern ABC_DLL void Abc_ObjSetReverseLevel( Abc_Obj_t * pObj, int LevelR );
990extern ABC_DLL void Abc_NtkStartReverseLevels( Abc_Ntk_t * pNtk, int nMaxLevelIncrease );
991extern ABC_DLL void Abc_NtkStopReverseLevels( Abc_Ntk_t * pNtk );
992extern ABC_DLL void Abc_NtkUpdateLevel( Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
993extern ABC_DLL void Abc_NtkUpdateReverseLevel( Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
994extern ABC_DLL void Abc_NtkUpdate( Abc_Obj_t * pObj, Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
995/*=== abcUtil.c ==========================================================*/
996extern ABC_DLL void * Abc_NtkAttrFree( Abc_Ntk_t * pNtk, int Attr, int fFreeMan );
997extern ABC_DLL void Abc_NtkOrderCisCos( Abc_Ntk_t * pNtk );
998extern ABC_DLL int Abc_NtkGetCubeNum( Abc_Ntk_t * pNtk );
999extern ABC_DLL int Abc_NtkGetCubePairNum( Abc_Ntk_t * pNtk );
1000extern ABC_DLL int Abc_NtkGetLitNum( Abc_Ntk_t * pNtk );
1001extern ABC_DLL int Abc_NtkGetLitFactNum( Abc_Ntk_t * pNtk );
1002extern ABC_DLL int Abc_NtkGetBddNodeNum( Abc_Ntk_t * pNtk );
1003extern ABC_DLL int Abc_NtkGetAigNodeNum( Abc_Ntk_t * pNtk );
1004extern ABC_DLL int Abc_NtkGetClauseNum( Abc_Ntk_t * pNtk );
1005extern ABC_DLL double Abc_NtkGetMappedArea( Abc_Ntk_t * pNtk );
1006extern ABC_DLL int Abc_NtkGetExorNum( Abc_Ntk_t * pNtk );
1007extern ABC_DLL int Abc_NtkGetMuxNum( Abc_Ntk_t * pNtk );
1008extern ABC_DLL int Abc_NtkGetBufNum( Abc_Ntk_t * pNtk );
1009extern ABC_DLL int Abc_NtkGetLargeNodeNum( Abc_Ntk_t * pNtk );
1010extern ABC_DLL int Abc_NtkGetChoiceNum( Abc_Ntk_t * pNtk );
1011extern ABC_DLL int Abc_NtkGetFaninMax( Abc_Ntk_t * pNtk );
1012extern ABC_DLL int Abc_NtkGetFanoutMax( Abc_Ntk_t * pNtk );
1013extern ABC_DLL int Abc_NtkGetTotalFanins( Abc_Ntk_t * pNtk );
1014extern ABC_DLL void Abc_NtkCleanCopy( Abc_Ntk_t * pNtk );
1015extern ABC_DLL void Abc_NtkCleanCopy_rec( Abc_Ntk_t * pNtk );
1016extern ABC_DLL void Abc_NtkCleanData( Abc_Ntk_t * pNtk );
1017extern ABC_DLL void Abc_NtkFillTemp( Abc_Ntk_t * pNtk );
1018extern ABC_DLL int Abc_NtkCountCopy( Abc_Ntk_t * pNtk );
1019extern ABC_DLL Vec_Ptr_t * Abc_NtkSaveCopy( Abc_Ntk_t * pNtk );
1020extern ABC_DLL void Abc_NtkLoadCopy( Abc_Ntk_t * pNtk, Vec_Ptr_t * vCopies );
1021extern ABC_DLL void Abc_NtkCleanNext( Abc_Ntk_t * pNtk );
1022extern ABC_DLL void Abc_NtkCleanNext_rec( Abc_Ntk_t * pNtk );
1023extern ABC_DLL void Abc_NtkCleanMarkA( Abc_Ntk_t * pNtk );
1024extern ABC_DLL void Abc_NtkCleanMarkB( Abc_Ntk_t * pNtk );
1025extern ABC_DLL void Abc_NtkCleanMarkC( Abc_Ntk_t * pNtk );
1026extern ABC_DLL void Abc_NtkCleanMarkAB( Abc_Ntk_t * pNtk );
1027extern ABC_DLL void Abc_NtkCleanMarkABC( Abc_Ntk_t * pNtk );
1028extern ABC_DLL int Abc_NodeFindFanin( Abc_Obj_t * pNode, Abc_Obj_t * pFanin );
1032extern ABC_DLL int Abc_NtkLogicHasSimpleCos( Abc_Ntk_t * pNtk );
1033extern ABC_DLL int Abc_NtkLogicMakeSimpleCos( Abc_Ntk_t * pNtk, int fDuplicate );
1038extern ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux( Abc_Obj_t * pNode, Abc_Obj_t ** ppNodeT, Abc_Obj_t ** ppNodeE );
1039extern ABC_DLL int Abc_NtkPrepareTwoNtks( FILE * pErr, Abc_Ntk_t * pNtk, char ** argv, int argc, Abc_Ntk_t ** ppNtk1, Abc_Ntk_t ** ppNtk2, int * pfDelete1, int * pfDelete2, int fCheck );
1040extern ABC_DLL void Abc_NodeCollectFanins( Abc_Obj_t * pNode, Vec_Ptr_t * vNodes );
1041extern ABC_DLL void Abc_NodeCollectFanouts( Abc_Obj_t * pNode, Vec_Ptr_t * vNodes );
1043extern ABC_DLL int Abc_NodeCompareLevelsIncrease( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
1044extern ABC_DLL int Abc_NodeCompareLevelsDecrease( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
1047extern ABC_DLL Vec_Int_t * Abc_NtkGetCiIds( Abc_Ntk_t * pNtk );
1048extern ABC_DLL void Abc_NtkReassignIds( Abc_Ntk_t * pNtk );
1049extern ABC_DLL int Abc_ObjPointerCompare( void ** pp1, void ** pp2 );
1050extern ABC_DLL void Abc_NtkTransferCopy( Abc_Ntk_t * pNtk );
1051extern ABC_DLL void Abc_NtkInvertConstraints( Abc_Ntk_t * pNtk );
1052extern ABC_DLL void Abc_NtkPrintCiLevels( Abc_Ntk_t * pNtk );
1053extern ABC_DLL void Abc_NtkReverseTopoOrder( Abc_Ntk_t * pNtk );
1054extern ABC_DLL int Abc_NtkIsTopo( Abc_Ntk_t * pNtk );
1055extern ABC_DLL void Abc_NtkTransferPhases( Abc_Ntk_t * pNtkNew, Abc_Ntk_t * pNtk );
1056extern ABC_DLL Gia_Man_t * Abc_SopSynthesizeOne( char * pSop, int fClp );
1057
1058
1059
1060/*=== abcVerify.c ==========================================================*/
1061extern ABC_DLL int * Abc_NtkVerifyGetCleanModel( Abc_Ntk_t * pNtk, int nFrames );
1062extern ABC_DLL int * Abc_NtkVerifySimulatePattern( Abc_Ntk_t * pNtk, int * pModel );
1063extern ABC_DLL int Abc_NtkIsTrueCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex );
1064extern ABC_DLL int Abc_NtkIsValidCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex );
1065
1066
1067
1069
1070
1071
1072#endif
1073
int nWords
Definition abcNpn.c:127
ABC_DLL void Abc_NtkFreeMvVars(Abc_Ntk_t *pNtk)
Definition abcBlifMv.c:69
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
Definition abcSweep.c:692
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs(Abc_Ntk_t *pNtk)
Definition abcNtk.c:538
struct Abc_Obj_t_ Abc_Obj_t
Definition abc.h:116
struct Abc_ManTime_t_ Abc_ManTime_t
Definition abc.h:118
ABC_DLL Abc_Obj_t * Abc_NtkFindOrCreateNet(Abc_Ntk_t *pNtk, char *pName)
Definition abcObj.c:587
ABC_DLL void Abc_NtkCleanMarkA(Abc_Ntk_t *pNtk)
Definition abcUtil.c:696
ABC_DLL void Abc_NodeGetCutsSeq(void *p, Abc_Obj_t *pObj, int fFirst)
Definition abcCut.c:487
ABC_DLL void * Abc_NtkAttrFree(Abc_Ntk_t *pNtk, int Attr, int fFreeMan)
DECLARATIONS ///.
Definition abcUtil.c:55
ABC_DLL int Abc_NtkGetBufNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:423
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromGias(char *pName, Vec_Ptr_t *vGias, Gia_Man_t *pMulti)
Definition abcNtk.c:2550
ABC_DLL Abc_Obj_t * Abc_NtkFindNode(Abc_Ntk_t *pNtk, char *pName)
Definition abcObj.c:464
ABC_DLL int Abc_NtkGetLitNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:172
ABC_DLL int Abc_NtkFunctionalIso(Abc_Ntk_t *pNtk, int iCo1, int iCo2, int fCommon)
Definition abcDfs.c:1048
ABC_DLL float Abc_NtkMfsTotalSwitching(Abc_Ntk_t *pNtk)
Definition abcPrint.c:163
ABC_DLL void Abc_NtkCleanMarkC(Abc_Ntk_t *pNtk)
Definition abcUtil.c:734
ABC_DLL Vec_Ptr_t * Abc_AigDfs(Abc_Ntk_t *pNtk, int fCollectAll, int fCollectCos)
Definition abcDfs.c:1198
ABC_DLL int Abc_NtkIsDfsOrdered(Abc_Ntk_t *pNtk)
Definition abcDfs.c:698
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
Definition abcIvy.c:503
ABC_DLL int Abc_NtkGetLitFactNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:196
ABC_DLL char * Abc_SopFromTruthHex(char *pTruth)
Definition abcSop.c:1060
ABC_DLL char * Abc_SopStart(Mem_Flex_t *pMan, int nCubes, int nVars)
Definition abcSop.c:82
ABC_DLL char * Abc_SopDecoderPos(Mem_Flex_t *pMan, int nValues)
Definition abcSop.c:1244
ABC_DLL Abc_Obj_t * Abc_NtkFindCi(Abc_Ntk_t *pNtk, char *pName)
Definition abcObj.c:538
ABC_DLL int Abc_NtkCountSelfFeedLatches(Abc_Ntk_t *pNtk)
Definition abcLatch.c:92
ABC_DLL void Abc_ObjReplaceByConstant(Abc_Obj_t *pNode, int fConst1)
Definition abcFanio.c:349
ABC_DLL Abc_Ntk_t * Abc_NtkFromBarBufs(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
Definition abcBarBuf.c:263
ABC_DLL Abc_Obj_t * Abc_NodeStrash(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pNode, int fRecord)
Definition abcStrash.c:468
ABC_DLL Vec_Vec_t * Abc_NtkLevelize(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1423
ABC_DLL void Abc_NtkTimeSetDefaultOutputLoad(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition abcTiming.c:265
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
Definition abcUtil.c:486
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromRange(Abc_Ntk_t *pNtk)
Definition abcNtk.c:1298
ABC_DLL void Abc_NtkTimeSetDefaultArrival(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition abcTiming.c:173
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
Definition abcNtk.c:53
ABC_DLL void Abc_NtkOrderObjsByName(Abc_Ntk_t *pNtk, int fComb)
Definition abcNames.c:330
ABC_DLL Abc_Ntk_t * Abc_NtkToBarBufs(Abc_Ntk_t *pNtk)
Definition abcBarBuf.c:180
ABC_DLL void Abc_NtkCleanMarkABC(Abc_Ntk_t *pNtk)
Definition abcUtil.c:772
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlistBench(Abc_Ntk_t *pNtk)
Definition abcNetlist.c:125
ABC_DLL void * Abc_NodeGetCuts(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
Definition abcCut.c:433
ABC_DLL void Abc_NodeComplementInput(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
Definition abcObj.c:1039
ABC_DLL int Abc_ExactIsRunning()
Definition abcExact.c:2605
ABC_DLL float Abc_NtkDelayTrace(Abc_Ntk_t *pNtk, Abc_Obj_t *pOut, Abc_Obj_t *pIn, int fPrint)
Definition abcTiming.c:1031
ABC_DLL char * Abc_SopCreateXorSpecial(Mem_Flex_t *pMan, int nVars)
Definition abcSop.c:297
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition abcFanio.c:84
ABC_DLL void Abc_DesPrint(Abc_Des_t *p)
Definition abcLib.c:194
ABC_DLL void Abc_NtkReverseTopoOrder(Abc_Ntk_t *pNtk)
Definition abcUtil.c:2664
ABC_DLL Abc_Obj_t * Abc_AigXor(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
Definition abcAig.c:735
ABC_DLL float Abc_NtkReadDefaultRequiredWorst(Abc_Ntk_t *pNtk)
Definition abcTiming.c:99
ABC_DLL Vec_Ptr_t * Abc_NtkSupport(Abc_Ntk_t *pNtk)
Definition abcDfs.c:859
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
Definition abcObj.c:170
ABC_DLL int Abc_NtkCombinePos(Abc_Ntk_t *pNtk, int fAnd, int fXor)
Definition abcMiter.c:1155
ABC_DLL void Abc_NtkMiterReport(Abc_Ntk_t *pMiter)
Definition abcMiter.c:727
ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName, int fUseAllCis)
Definition abcNtk.c:925
ABC_DLL int Abc_NtkCleanupNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vNodes, int fVerbose)
Definition abcSweep.c:503
ABC_DLL void Abc_NtkCleanCopy_rec(Abc_Ntk_t *pNtk)
Definition abcUtil.c:547
ABC_DLL Abc_Ntk_t * Abc_DesDeriveRoot(Abc_Des_t *p)
Definition abcLib.c:269
ABC_DLL Vec_Ptr_t * Abc_NtkDfsWithBoxes(Abc_Ntk_t *pNtk)
Definition abcDfs.c:799
ABC_DLL char * Abc_SopEncoderPos(Mem_Flex_t *pMan, int iValue, int nValues)
Definition abcSop.c:1181
ABC_DLL int Abc_NtkCountCopy(Abc_Ntk_t *pNtk)
Definition abcUtil.c:605
ABC_DLL Gia_Man_t * Abc_SopSynthesizeOne(char *pSop, int fClp)
Definition abcUtil.c:3244
ABC_DLL void Abc_NtkWriteLogFile(char *pFileName, Abc_Cex_t *pSeqCex, int Status, int nFrames, char *pCommand)
DECLARATIONS ///.
Definition abcLog.c:68
ABC_DLL void Abc_NtkTrasferNames(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition abcNames.c:146
ABC_DLL Abc_Time_t * Abc_NtkGetCiArrivalTimes(Abc_Ntk_t *pNtk)
Definition abcTiming.c:750
ABC_DLL void Abc_NtkRecStop3()
Definition abcRec3.c:1421
ABC_DLL int Abc_NtkIsTopo(Abc_Ntk_t *pNtk)
Definition abcUtil.c:2888
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
Definition abcObj.c:643
ABC_DLL Vec_Ptr_t * Abc_NodeGetFaninNames(Abc_Obj_t *pNode)
Definition abcNames.c:206
ABC_DLL Abc_Des_t * Abc_DesDup(Abc_Des_t *p)
Definition abcLib.c:133
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition abcDfs.c:294
ABC_DLL void Abc_AigRehash(Abc_Aig_t *pMan)
Definition abcAig.c:628
ABC_DLL int Abc_NodeIsBuf(Abc_Obj_t *pNode)
Definition abcObj.c:948
ABC_DLL Abc_Time_t * Abc_NodeReadArrival(Abc_Obj_t *pNode)
Definition abcTiming.c:85
ABC_DLL Vec_Ptr_t * Abc_NtkDfs2(Abc_Ntk_t *pNtk)
Definition abcDfs.c:127
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantify(Abc_Ntk_t *pNtk, int In, int fExist)
Definition abcMiter.c:585
ABC_DLL int Abc_SopIsConst0(char *pSop)
Definition abcSop.c:724
ABC_DLL Abc_Time_t * Abc_NodeReadOutputLoad(Abc_Ntk_t *pNtk, int iPo)
Definition abcTiming.c:146
ABC_DLL int Abc_NodeMffcSize(Abc_Obj_t *pNode)
FUNCTION DEFINITIONS ///.
Definition abcRefs.c:48
ABC_DLL int Abc_DesFindTopLevelModels(Abc_Des_t *p)
Definition abcLib.c:293
ABC_DLL Abc_Ntk_t * Abc_NtkToLogic(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition abcNetlist.c:52
ABC_DLL float Abc_NodeReadRequiredWorst(Abc_Obj_t *pNode)
Definition abcTiming.c:115
ABC_DLL void Abc_AigPrintNode(Abc_Obj_t *pNode)
Definition abcAig.c:1296
ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsBin(char *pTruth)
Definition abcSop.c:1033
ABC_DLL Abc_Ntk_t * Abc_NtkStrashBlifMv(Abc_Ntk_t *pNtk)
Definition abcBlifMv.c:383
ABC_DLL Abc_Ntk_t * Abc_NtkRestrash(Abc_Ntk_t *pNtk, int fCleanup)
FUNCTION DEFINITIONS ///.
Definition abcStrash.c:49
ABC_DLL void Abc_NtkConvertDcLatches(Abc_Ntk_t *pNtk)
Definition abcLatch.c:310
ABC_DLL void * Abc_NtkMiterSatCreate(Abc_Ntk_t *pNtk, int fAllPrimes)
Definition abcSat.c:664
ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes(Abc_Ntk_t *pNtk, int fGlobal, int Limit, int fUseAdd)
Definition abcNtbdd.c:687
ABC_DLL int Abc_AigNodeHasComplFanoutEdge(Abc_Obj_t *pNode)
Definition abcAig.c:1241
ABC_DLL void Abc_NtkCharNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:627
ABC_DLL char * Abc_SopEncoderLog(Mem_Flex_t *pMan, int iBit, int nValues)
Definition abcSop.c:1200
ABC_DLL Abc_Ntk_t * Abc_NtkDarLatchSweep(Abc_Ntk_t *pNtk, int fLatchConst, int fLatchEqual, int fSaveNames, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose)
Definition abcDar.c:3317
ABC_DLL void Abc_NtkCleanData(Abc_Ntk_t *pNtk)
Definition abcUtil.c:567
ABC_DLL int Abc_NtkCheckRead(Abc_Ntk_t *pNtk)
Definition abcCheck.c:80
ABC_DLL Abc_Obj_t * Abc_NtkFetchTwinNode(Abc_Obj_t *pNode)
Definition abcMap.c:804
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
Definition abcObj.c:342
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
Definition abcObj.c:706
ABC_DLL void Abc_NtkSetMvVarValues(Abc_Obj_t *pObj, int nValues)
Definition abcBlifMv.c:87
ABC_DLL void Abc_VecObjPushUniqueOrderByLevel(Vec_Ptr_t *p, Abc_Obj_t *pNode)
Definition abcUtil.c:1269
ABC_DLL Vec_Ptr_t * Abc_AigGetLevelizedOrder(Abc_Ntk_t *pNtk, int fCollectCis)
Definition abcDfs.c:1841
ABC_DLL Odc_Man_t * Abc_NtkDontCareAlloc(int nVarsMax, int nLevels, int fVerbose, int fVeryVerbose)
FUNCTION DEFINITIONS ///.
Definition abcOdc.c:163
ABC_DLL Abc_Time_t * Abc_NodeReadInputDrive(Abc_Ntk_t *pNtk, int iPi)
Definition abcTiming.c:141
ABC_DLL int Abc_ObjReverseLevelNew(Abc_Obj_t *pObj)
Definition abcTiming.c:1190
ABC_DLL int Abc_NodeMffcSizeStop(Abc_Obj_t *pNode)
Definition abcRefs.c:74
ABC_DLL void Abc_NtkAddDummyBoxNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:547
ABC_DLL int Abc_NtkCleanup(Abc_Ntk_t *pNtk, int fVerbose)
Definition abcSweep.c:478
ABC_DLL void Abc_DesFree(Abc_Des_t *p, Abc_Ntk_t *pNtk)
Definition abcLib.c:94
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsToBuffers(Abc_Ntk_t *pNtk)
Definition abcBarBuf.c:424
ABC_DLL Abc_Obj_t * Abc_NtkAddLatch(Abc_Ntk_t *pNtk, Abc_Obj_t *pDriver, Abc_InitType_t Init)
Definition abcLatch.c:254
ABC_DLL void Abc_NtkTransferPhases(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk)
Definition abcUtil.c:2924
ABC_DLL void Abc_NtkPrintCiLevels(Abc_Ntk_t *pNtk)
Definition abcUtil.c:2268
ABC_DLL float Abc_NtkReadDefaultArrivalWorst(Abc_Ntk_t *pNtk)
Definition abcTiming.c:95
ABC_DLL int Abc_NodeEvalMvCost(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
Definition abcBlifMv.c:1140
ABC_DLL int Abc_ObjRequiredLevel(Abc_Obj_t *pObj)
Definition abcTiming.c:1214
ABC_DLL int Abc_NtkSopToBdd(Abc_Ntk_t *pNtk)
Definition abcFunc.c:865
ABC_DLL char * Abc_SopFromTruthBin(char *pTruth)
Definition abcSop.c:964
ABC_DLL void Abc_ObjRecycle(Abc_Obj_t *pObj)
Definition abcObj.c:77
ABC_DLL Gia_Man_t * Abc_NtkClpGia(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t *pGia)
Definition abcRec3.c:567
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodesContained(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition abcDfs.c:329
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfsNoBarBufs(Abc_Ntk_t *pNtk)
Definition abcNtk.c:578
ABC_DLL void Abc_NtkCleanMarkB(Abc_Ntk_t *pNtk)
Definition abcUtil.c:715
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:463
ABC_DLL void Abc_AigUpdateReset(Abc_Aig_t *pMan)
Definition abcAig.c:1477
ABC_DLL Abc_Obj_t * Abc_ObjInsertBetween(Abc_Obj_t *pNodeIn, Abc_Obj_t *pNodeOut, Abc_ObjType_t Type)
Definition abcFanio.c:251
ABC_DLL void Abc_NtkLogicMakeDirectSops(Abc_Ntk_t *pNtk)
Definition abcFunc.c:868
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
Definition abcDfs.c:82
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition abcCheck.c:64
ABC_DLL Abc_Obj_t * Abc_AigMux(Abc_Aig_t *pMan, Abc_Obj_t *pC, Abc_Obj_t *p1, Abc_Obj_t *p0)
Definition abcAig.c:752
ABC_DLL int Abc_NtkDontCareCompute(Odc_Man_t *p, Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves, unsigned *puTruth)
Definition abcOdc.c:1042
ABC_DLL int Abc_NodeMffcLabelAig(Abc_Obj_t *pNode)
Definition abcRefs.c:100
ABC_DLL int Abc_NtkGetMuxNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:403
ABC_DLL char * Abc_SopCreateNxor(Mem_Flex_t *pMan, int nVars)
Definition abcSop.c:317
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIterNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
Definition abcDfs.c:611
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
Definition abcObj.c:612
ABC_DLL void Abc_NodePrintFanio(FILE *pFile, Abc_Obj_t *pNode)
Definition abcPrint.c:1048
ABC_DLL char * Abc_SopCreateFromTruthIsop(Mem_Flex_t *pMan, int nVars, word *pTruth, Vec_Int_t *vCover)
Definition abcSop.c:462
ABC_DLL float Abc_NodeReadArrivalAve(Abc_Obj_t *pNode)
Definition abcTiming.c:103
ABC_DLL void Abc_NodeFreeNames(Vec_Ptr_t *vNames)
Definition abcNames.c:264
ABC_DLL double Abc_NtkGetMappedArea(Abc_Ntk_t *pNtk)
Definition abcUtil.c:347
ABC_DLL void Abc_NtkPrintFanioNew(FILE *pFile, Abc_Ntk_t *pNtk, int fMffc)
Definition abcPrint.c:921
ABC_DLL int Abc_NtkToBdd(Abc_Ntk_t *pNtk)
Definition abcFunc.c:1299
ABC_DLL Abc_Ntk_t * Abc_NtkStartFromNoLatches(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition abcNtk.c:301
ABC_DLL int Abc_SopCheck(char *pSop, int nFanins)
Definition abcSop.c:871
ABC_DLL void Abc_NtkUnpermute(Abc_Ntk_t *pNtk)
Definition abcNtk.c:2409
Abc_ObjType_t
Definition abc.h:86
@ ABC_OBJ_NET
Definition abc.h:93
@ ABC_OBJ_NONE
Definition abc.h:87
@ ABC_OBJ_NODE
Definition abc.h:94
@ ABC_OBJ_BLACKBOX
Definition abc.h:97
@ ABC_OBJ_BI
Definition abc.h:91
@ ABC_OBJ_NUMBER
Definition abc.h:98
@ ABC_OBJ_BO
Definition abc.h:92
@ ABC_OBJ_WHITEBOX
Definition abc.h:96
@ ABC_OBJ_PI
Definition abc.h:89
@ ABC_OBJ_LATCH
Definition abc.h:95
@ ABC_OBJ_PO
Definition abc.h:90
@ ABC_OBJ_CONST1
Definition abc.h:88
struct Abc_ManCut_t_ Abc_ManCut_t
Definition abc.h:119
ABC_DLL int Abc_ObjFanoutFaninNum(Abc_Obj_t *pFanout, Abc_Obj_t *pFanin)
Definition abcFanio.c:373
ABC_DLL void Abc_ObjPrint(FILE *pFile, Abc_Obj_t *pObj)
Definition abcPrint.c:1674
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultOutputLoad(Abc_Ntk_t *pNtk)
Definition abcTiming.c:136
ABC_DLL void Abc_AigUpdateStop(Abc_Aig_t *pMan)
Definition abcAig.c:1457
ABC_DLL int Abc_NtkLevelReverse(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1499
ABC_DLL Abc_Ntk_t * Abc_NtkCollapse(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fReverse, int fDumpOrder, int fVerbose)
DECLARATIONS ///.
ABC_DLL char * Abc_SopCreateInv(Mem_Flex_t *pMan)
Definition abcSop.c:351
ABC_DLL Abc_Ntk_t * Abc_NtkDeriveFromBdd(void *dd, void *bFunc, char *pNamePo, Vec_Ptr_t *vNamesPi)
ABC_DLL int Abc_NtkCheckUniqueCoNames(Abc_Ntk_t *pNtk)
Definition abcCheck.c:893
ABC_DLL char * Abc_SopCreateOrMultiCube(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition abcSop.c:234
ABC_DLL char * Abc_SopCreateOr(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition abcSop.c:212
struct Odc_Man_t_ Odc_Man_t
Definition abc.h:832
ABC_DLL int Abc_SopGetPhase(char *pSop)
Definition abcSop.c:604
ABC_DLL void Abc_NtkRecAdd3(Abc_Ntk_t *pNtk, int fUseSOPB)
Definition abcRec3.c:833
ABC_DLL char * Abc_NodeConvertSopToMvSop(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
Definition abcBlifMv.c:1033
ABC_DLL int Abc_NtkRecIsRunning3()
Definition abcRec3.c:1395
ABC_DLL void Abc_NodePrintLevel(FILE *pFile, Abc_Obj_t *pNode)
Definition abcPrint.c:1358
ABC_DLL void Abc_SopComplement(char *pSop)
Definition abcSop.c:648
ABC_DLL int Abc_NodeIsInv(Abc_Obj_t *pNode)
Definition abcObj.c:980
ABC_DLL void Abc_ManTimeDup(Abc_Ntk_t *pNtkOld, Abc_Ntk_t *pNtkNew)
Definition abcTiming.c:573
ABC_DLL int Abc_NtkPhaseFrameNum(Abc_Ntk_t *pNtk)
Definition abcDar.c:4145
ABC_DLL Abc_Ntk_t * Abc_NtkMiterCofactor(Abc_Ntk_t *pNtk, Vec_Int_t *vPiValues)
Definition abcMiter.c:450
ABC_DLL void Abc_NodeConeCollect(Abc_Obj_t **ppRoots, int nRoots, Vec_Ptr_t *vFanins, Vec_Ptr_t *vVisited, int fIncludeFanins)
Definition abcReconv.c:444
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeOr(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition abcObj.c:770
ABC_DLL char * Abc_SopCreateConst1(Mem_Flex_t *pMan)
Definition abcSop.c:113
ABC_DLL void Abc_NodeComplement(Abc_Obj_t *pNode)
Definition abcObj.c:1012
ABC_DLL void Abc_NtkDontCareClear(Odc_Man_t *p)
Definition abcOdc.c:244
ABC_DLL int Abc_NodeMffcLabel(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
Definition abcRefs.c:439
ABC_DLL Vec_Vec_t * Abc_DfsLevelized(Abc_Obj_t *pNode, int fTfi)
Definition abcDfs.c:1313
ABC_DLL Gia_Man_t * Abc_NtkAigToGia(Abc_Ntk_t *p, int fGiaSimple)
Definition abcFunc.c:1050
ABC_DLL Abc_Ntk_t * Abc_NtkStartRead(char *pName)
Definition abcNtk.c:386
struct Abc_Aig_t_ Abc_Aig_t
Definition abc.h:117
ABC_DLL void Abc_NtkPrintFanio(FILE *pFile, Abc_Ntk_t *pNtk, int fUseFanio, int fUsePio, int fUseSupp, int fUseCone)
Definition abcPrint.c:876
ABC_DLL void Abc_NtkInsertHierarchyGia(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNew, int fVerbose)
Definition abcHieGia.c:535
ABC_DLL void Abc_NtkManCutStop(Abc_ManCut_t *p)
Definition abcReconv.c:623
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeq(Abc_Ntk_t *pNtk)
Definition abcDfs.c:428
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsFromBuffers(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
Definition abcBarBuf.c:462
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
Definition abcNames.c:49
ABC_DLL void Abc_NtkDeleteObj_rec(Abc_Obj_t *pObj, int fOnlyNodes)
Definition abcObj.c:278
ABC_DLL void Abc_NodeCollectFanouts(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
Definition abcUtil.c:1647
ABC_DLL Abc_Ntk_t * Abc_NtkFindExact(word *pTruth, int nVars, int nFunc, int nMaxDepth, int *pArrivalTimes, int nBTLimit, int nStartGates, int fVerbose)
Definition abcExact.c:2414
ABC_DLL int Abc_NtkMiterProve(Abc_Ntk_t **ppNtk, void *pParams)
FUNCTION DEFINITIONS ///.
Definition abcProve.c:62
ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName)
Definition abcNtk.c:1128
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
Definition abcFunc.c:1228
ABC_DLL void Abc_NtkUpdate(Abc_Obj_t *pObj, Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition abcTiming.c:1423
ABC_DLL Abc_Ntk_t * Abc_NtkHaigUse(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetExorNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:383
ABC_DLL int Abc_NtkSopToAig(Abc_Ntk_t *pNtk)
Definition abcFunc.c:884
struct Abc_Ntk_t_ Abc_Ntk_t
Definition abc.h:115
ABC_DLL void * Abc_NodeGetCutsRecursive(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
Definition abcCut.c:412
ABC_DLL int Abc_NtkRemoveDupFanins(Abc_Ntk_t *pNtk)
Definition abcMinBase.c:894
Abc_InitType_t
Definition abc.h:102
@ ABC_INIT_OTHER
Definition abc.h:107
@ ABC_INIT_ZERO
Definition abc.h:104
@ ABC_INIT_ONE
Definition abc.h:105
@ ABC_INIT_DC
Definition abc.h:106
@ ABC_INIT_NONE
Definition abc.h:103
ABC_DLL float Abc_NodeReadRequiredAve(Abc_Obj_t *pNode)
Definition abcTiming.c:107
ABC_DLL void Abc_NtkPrintStats(Abc_Ntk_t *pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf, int fSkipSmall, int fPrintMem)
Definition abcPrint.c:269
ABC_DLL int Abc_NtkMapToSopUsingLibrary(Abc_Ntk_t *pNtk, void *library)
Definition abcFunc.c:1194
ABC_DLL void Abc_ObjReplace(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
Definition abcFanio.c:325
ABC_DLL Vec_Int_t * Abc_NtkGetCiIds(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1787
ABC_DLL int Abc_NtkConvertToBlifMv(Abc_Ntk_t *pNtk)
Definition abcBlifMv.c:957
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
Definition abcNames.c:69
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition abcNtk.c:355
ABC_DLL void Abc_NtkFinalizeRead(Abc_Ntk_t *pNtk)
Definition abcNtk.c:413
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultArrival(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition abcTiming.c:75
ABC_DLL Abc_Obj_t * Abc_AigAndLookup(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
Definition abcAig.c:403
ABC_DLL void Abc_NtkCleanNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:635
ABC_DLL char * Abc_SopCreateAnd2(Mem_Flex_t *pMan, int fCompl0, int fCompl1)
Definition abcSop.c:145
ABC_DLL int Abc_NtkGetCubePairNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:143
ABC_DLL int Abc_NodeIsConst0(Abc_Obj_t *pNode)
Definition abcObj.c:884
ABC_DLL int Abc_NtkDarPrintCone(Abc_Ntk_t *pNtk)
Definition abcDar.c:4054
ABC_DLL char * Abc_SopCreateFromTruth(Mem_Flex_t *pMan, int nVars, unsigned *pTruth)
Definition abcSop.c:383
ABC_DLL void Abc_NtkLoadCopy(Abc_Ntk_t *pNtk, Vec_Ptr_t *vCopies)
Definition abcUtil.c:650
ABC_DLL Abc_Aig_t * Abc_AigAlloc(Abc_Ntk_t *pNtk)
FUNCTION DECLARATIONS ///.
Definition abcAig.c:128
ABC_DLL int Abc_NtkFraigStore(Abc_Ntk_t *pNtk)
Definition abcFraig.c:654
ABC_DLL char * Abc_SopCreateNand(Mem_Flex_t *pMan, int nVars)
Definition abcSop.c:190
ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition abcDfs.c:890
ABC_DLL int Abc_NtkMiterSat(Abc_Ntk_t *pNtk, ABC_INT64_T nConfLimit, ABC_INT64_T nInsLimit, int fVerbose, ABC_INT64_T *pNumConfs, ABC_INT64_T *pNumInspects)
FUNCTION DEFINITIONS ///.
Definition abcSat.c:58
ABC_DLL int Abc_NodeRemoveDupFanins(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIter(Abc_Ntk_t *pNtk, int fCollectAll)
Definition abcDfs.c:573
ABC_DLL float Abc_NtkDelayTraceLut(Abc_Ntk_t *pNtk, int fUseLutLib)
Definition abcSpeedup.c:100
ABC_DLL Vec_Ptr_t * Abc_AigUpdateStart(Abc_Aig_t *pMan, Vec_Ptr_t **pvUpdatedNets)
Definition abcAig.c:1437
Abc_NtkType_t
INCLUDES ///.
Definition abc.h:54
@ ABC_NTK_NONE
Definition abc.h:55
@ ABC_NTK_LOGIC
Definition abc.h:57
@ ABC_NTK_STRASH
Definition abc.h:58
@ ABC_NTK_NETLIST
Definition abc.h:56
@ ABC_NTK_OTHER
Definition abc.h:59
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
Definition abcTiming.c:1302
ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1741
ABC_DLL void Abc_AigCheckFaninOrder(Abc_Aig_t *pMan)
Definition abcAig.c:1379
ABC_DLL void Abc_NtkTimeSetRequired(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
Definition abcTiming.c:224
ABC_DLL int Abc_NodeIsMuxControlType(Abc_Obj_t *pNode)
Definition abcUtil.c:1398
ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor(Abc_Ntk_t *pNtk, int fUpdateLevel, int fVerbose)
Definition abcDar.c:4078
ABC_DLL void Abc_ObjTransferFanout(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
Definition abcFanio.c:292
ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia(Abc_Ntk_t *pNtk, Vec_Ptr_t **pvBuffers, int fVerbose)
Definition abcHieGia.c:418
ABC_DLL int Abc_NtkAigToBdd(Abc_Ntk_t *pNtk)
Definition abcFunc.c:869
ABC_DLL Abc_Ntk_t * Abc_NtkMiterForCofactors(Abc_Ntk_t *pNtk, int Out, int In1, int In2)
Definition abcMiter.c:517
ABC_DLL void Abc_NtkPermute(Abc_Ntk_t *pNtk, int fInputs, int fOutputs, int fFlops, char *pInPermFile, char *pOutPermFile, char *pFlopPermFile)
Definition abcNtk.c:2206
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition abcSop.c:168
ABC_DLL Abc_Des_t * Abc_DesCreate(char *pName)
DECLARATIONS ///.
Definition abcLib.c:45
ABC_DLL Abc_Ntk_t * Abc_NtkMiterAnd(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOr, int fCompl2)
Definition abcMiter.c:387
ABC_DLL int Abc_SopGetLitNum(char *pSop)
Definition abcSop.c:559
ABC_DLL Abc_Ntk_t * Abc_NtkFlattenLogicHierarchy(Abc_Ntk_t *pNtk)
Definition abcHie.c:514
ABC_DLL Vec_Ptr_t * Abc_NodeCollectTfoCands(Abc_ManCut_t *p, Abc_Obj_t *pRoot, Vec_Ptr_t *vFanins, int LevelMax)
Definition abcReconv.c:699
ABC_DLL int Abc_NtkRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
Definition abcRewrite.c:61
ABC_DLL Abc_Ntk_t * Abc_NtkFraigTrust(Abc_Ntk_t *pNtk)
Definition abcFraig.c:485
ABC_DLL Abc_Ntk_t * Abc_NtkDupTransformMiter(Abc_Ntk_t *pNtk)
Definition abcNtk.c:669
struct Abc_Des_t_ Abc_Des_t
BASIC TYPES ///.
Definition abc.h:114
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:521
ABC_DLL void * Abc_NtkFreeGlobalBdds(Abc_Ntk_t *pNtk, int fFreeMan)
ABC_DLL int * Abc_NtkVerifySimulatePattern(Abc_Ntk_t *pNtk, int *pModel)
Definition abcVerify.c:696
ABC_DLL void Abc_NodePrintFactor(FILE *pFile, Abc_Obj_t *pNode, int fUseRealNames)
Definition abcPrint.c:1101
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantifyPis(Abc_Ntk_t *pNtk)
Definition abcMiter.c:648
ABC_DLL Abc_Obj_t * Abc_NodeHasUniqueCoFanout(Abc_Obj_t *pNode)
Definition abcUtil.c:856
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
Definition abcObj.c:867
ABC_DLL float * Abc_NtkGetCoRequiredFloats(Abc_Ntk_t *pNtk)
Definition abcTiming.c:802
ABC_DLL Gia_Man_t * Abc_NtkRecGetGia3()
Definition abcRec3.c:1399
ABC_DLL Abc_Obj_t * Abc_ExactBuildNode(word *pTruth, int nVars, int *pArrTimeProfile, Abc_Obj_t **pFanins, Abc_Ntk_t *pNtk)
Definition abcExact.c:2894
ABC_DLL int * Abc_NtkVerifyGetCleanModel(Abc_Ntk_t *pNtk, int nFrames)
Definition abcVerify.c:678
ABC_DLL void Abc_NtkUpdateLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition abcTiming.c:1322
ABC_DLL Abc_Time_t * Abc_NodeReadRequired(Abc_Obj_t *pNode)
Definition abcTiming.c:90
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultRequired(Abc_Ntk_t *pNtk)
Definition abcTiming.c:80
ABC_DLL int Abc_NtkLevelR(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1517
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromSops(char *pName, Vec_Ptr_t *vSops)
Definition abcNtk.c:2512
ABC_DLL void Abc_NtkTimeInitialize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkOld)
Definition abcTiming.c:343
ABC_DLL void Abc_NtkSortSops(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkHaigStart(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1449
ABC_DLL void Abc_NtkCleanNext(Abc_Ntk_t *pNtk)
Definition abcUtil.c:669
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeAnd(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition abcObj.c:738
ABC_DLL int Abc_NtkMakeLegit(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlist(Abc_Ntk_t *pNtk)
Definition abcNetlist.c:100
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Definition abcUtil.c:1080
ABC_DLL void Abc_SopToTruthBig(char *pSop, int nInputs, word **pVars, word *pCube, word *pRes)
Definition abcSop.c:1425
ABC_DLL void Abc_NtkShow6VarFunc(char *pF0, char *pF1)
Definition abcPrint.c:2089
ABC_DLL Vec_Ptr_t * Abc_NodeFindCut(Abc_ManCut_t *p, Abc_Obj_t *pRoot, int fContain)
Definition abcReconv.c:256
ABC_DLL void Abc_NtkInvertConstraints(Abc_Ntk_t *pNtk)
Definition abcUtil.c:2244
ABC_DLL int Abc_NodeCompareLevelsIncrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition abcUtil.c:1689
struct Abc_Time_t_ Abc_Time_t
Definition abc.h:120
ABC_DLL void Abc_NtkUpdateReverseLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition abcTiming.c:1374
ABC_DLL void Abc_ObjDeleteFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition abcFanio.c:111
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
Definition abcAig.c:194
ABC_DLL void Abc_SopComplementVar(char *pSop, int iVar)
Definition abcSop.c:678
ABC_DLL void Abc_NtkInsertLatchValues(Abc_Ntk_t *pNtk, Vec_Int_t *vValues)
Definition abcLatch.c:235
ABC_DLL void Abc_NtkMiterAddCone(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkMiter, Abc_Obj_t *pNode)
Definition abcMiter.c:254
ABC_DLL int Abc_NtkGetBddNodeNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:247
ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName(Abc_Des_t *p, char *pName)
Definition abcLib.c:249
ABC_DLL void Abc_NodeCollectFanins(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
Definition abcUtil.c:1627
ABC_DLL int Abc_AigCheck(Abc_Aig_t *pMan)
Definition abcAig.c:226
ABC_DLL char * Abc_ObjNameSuffix(Abc_Obj_t *pObj, char *pSuffix)
Definition abcNames.c:104
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
Definition abcTiming.c:1274
ABC_DLL Abc_Obj_t * Abc_AigAnd(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
Definition abcAig.c:700
ABC_DLL void Abc_NtkUpdateNameIds(Abc_Ntk_t *p)
Definition abcNames.c:793
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
Definition abcFunc.c:1333
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeMux(Abc_Ntk_t *pNtk, Abc_Obj_t *pNodeC, Abc_Obj_t *pNode1, Abc_Obj_t *pNode0)
Definition abcObj.c:834
ABC_DLL Abc_Ntk_t * Abc_NtkMiter(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fComb, int nPartSize, int fImplic, int fMulti)
FUNCTION DEFINITIONS ///.
Definition abcMiter.c:59
ABC_DLL void * Abc_NodeReadCuts(void *p, Abc_Obj_t *pObj)
Definition abcCut.c:511
ABC_DLL void Abc_NtkMakeComb(Abc_Ntk_t *pNtk, int fRemoveLatches)
Definition abcNtk.c:1637
ABC_DLL void Abc_NodeBddToCnf(Abc_Obj_t *pNode, Mem_Flex_t *pMmMan, Vec_Str_t *vCube, int fAllPrimes, char **ppSop0, char **ppSop1)
Definition abcFunc.c:867
ABC_DLL void Abc_NtkTransferNameIds(Abc_Ntk_t *p, Abc_Ntk_t *pNew)
Definition abcNames.c:761
ABC_DLL void Abc_NtkPrintSkews(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintAll)
ABC_DLL Abc_Obj_t * Abc_AigOr(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
Definition abcAig.c:719
ABC_DLL void Abc_SopToTruth7(char *pSop, int nInputs, word r[2])
Definition abcSop.c:1365
ABC_DLL int Abc_SopGetIthCareLit(char *pSop, int i)
Definition abcSop.c:626
ABC_DLL Vec_Ptr_t * Abc_NtkDfsHie(Abc_Ntk_t *pNtk, int fCollectAll)
Definition abcDfs.c:665
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit)
Definition abcFunc.c:1261
ABC_DLL Abc_Ntk_t * Abc_NtkFraigRestore(int nPatsRand, int nPatsDyna, int nBTLimit)
Definition abcFraig.c:698
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
Definition abcObj.c:674
ABC_DLL char * Abc_ObjNamePrefix(Abc_Obj_t *pObj, char *pPrefix)
Definition abcNames.c:86
ABC_DLL Abc_Obj_t * Abc_AigXorLookup(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1, int *pType)
Definition abcAig.c:474
ABC_DLL void Abc_ObjSetReverseLevel(Abc_Obj_t *pObj, int LevelR)
Definition abcTiming.c:1253
ABC_DLL char * Abc_ObjNameDummy(char *pPrefix, int Num, int nDigits)
Definition abcNames.c:122
ABC_DLL void Abc_NtkPrintFactor(FILE *pFile, Abc_Ntk_t *pNtk, int fUseRealNames)
Definition abcPrint.c:1129
ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero(Abc_Ntk_t *pNtk, int fCleanup)
Definition abcStrash.c:181
ABC_DLL int Abc_NtkCleanupSeq(Abc_Ntk_t *pNtk, int fLatchSweep, int fAutoSweep, int fVerbose)
Definition abcSweep.c:919
ABC_DLL void Abc_NtkRecStart3(Gia_Man_t *p, int nVars, int nCuts, int fFuncOnly, int fVerbose)
Definition abcRec3.c:1415
ABC_DLL int Abc_NtkIsAcyclicWithBoxes(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1702
ABC_DLL int Abc_NtkDoCheck(Abc_Ntk_t *pNtk)
Definition abcCheck.c:96
ABC_DLL int Abc_SopIsInv(char *pSop)
Definition abcSop.c:776
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
Definition abcStrash.c:265
ABC_DLL Vec_Ptr_t * Abc_NtkConverLatchNamesIntoNumbers(Abc_Ntk_t *pNtk)
Definition abcLatch.c:364
ABC_DLL void Abc_NtkTimeSetDefaultInputDrive(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition abcTiming.c:249
ABC_DLL int Abc_NtkCheckUniqueCioNames(Abc_Ntk_t *pNtk)
Definition abcCheck.c:927
ABC_DLL void Abc_NtkPrintBoxInfo(Abc_Ntk_t *pNtk)
Definition abcHie.c:431
ABC_DLL void Abc_NtkStartMvVars(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
Definition abcBlifMv.c:49
ABC_DLL int Abc_AigLevel(Abc_Ntk_t *pNtk)
Definition abcAig.c:292
ABC_DLL void * Abc_NtkBuildGlobalBdds(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDropInternal, int fReorder, int fReverse, int fVerbose)
ABC_DLL void Abc_NtkDeleteAll_rec(Abc_Obj_t *pObj)
Definition abcObj.c:315
ABC_DLL Abc_Obj_t * Abc_AigMuxLookup(Abc_Aig_t *pMan, Abc_Obj_t *pC, Abc_Obj_t *pT, Abc_Obj_t *pE, int *pType)
Definition abcAig.c:508
ABC_DLL void Abc_DesCleanManPointer(Abc_Des_t *p, void *pMan)
Definition abcLib.c:70
ABC_DLL Abc_Ntk_t * Abc_NtkConvertBlackboxes(Abc_Ntk_t *pNtk)
Definition abcHie.c:598
ABC_DLL void Abc_NtkDeleteObjPo(Abc_Obj_t *pObj)
Definition abcObj.c:249
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadVisited(Abc_ManCut_t *p)
Definition abcReconv.c:676
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeExor(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition abcObj.c:802
ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, Vec_Int_t *vValues)
Definition abcNtk.c:1200
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutLarge(Abc_ManCut_t *p)
Definition abcReconv.c:644
ABC_DLL int Abc_SopGetVarNum(char *pSop)
Definition abcSop.c:584
ABC_DLL char ** Abc_NtkCollectCioNames(Abc_Ntk_t *pNtk, int fCollectCos)
Definition abcNames.c:285
ABC_DLL int Abc_SopIsExorType(char *pSop)
Definition abcSop.c:850
ABC_DLL int Abc_ObjPointerCompare(void **pp1, void **pp2)
Definition abcUtil.c:1939
ABC_DLL int Abc_NtkGetAigNodeNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:276
ABC_DLL void Abc_NtkTransferCopy(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1962
ABC_DLL int Abc_NtkMinimumBase(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
Definition abcMinBase.c:892
ABC_DLL Vec_Int_t * Abc_NtkCollectLatchValues(Abc_Ntk_t *pNtk)
Definition abcLatch.c:181
ABC_DLL int Abc_NodeCompareNames(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition abcNames.c:316
ABC_DLL void Abc_ObjRemoveFanins(Abc_Obj_t *pObj)
Definition abcFanio.c:141
ABC_DLL int Abc_NtkAppend(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fAddPos)
Definition abcStrash.c:320
ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsHex(char *pTruth)
Definition abcSop.c:1127
ABC_DLL float Abc_NodeReadOutputLoadWorst(Abc_Ntk_t *pNtk, int iPo)
Definition abcTiming.c:155
ABC_DLL int Abc_NtkLatchIsSelfFeed(Abc_Obj_t *pLatch)
Definition abcLatch.c:71
ABC_DLL void Abc_NtkFraigStoreClean()
Definition abcFraig.c:766
ABC_DLL char * Abc_SopCreateFromIsop(Mem_Flex_t *pMan, int nVars, Vec_Int_t *vCover)
Definition abcSop.c:424
ABC_DLL void Abc_NtkTimeSetDefaultRequired(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition abcTiming.c:184
ABC_DLL void Abc_ObjPatchFanoutFanin(Abc_Obj_t *pObj, int iObjNew)
Definition abcFanio.c:223
ABC_DLL Abc_Ntk_t * Abc_NtkFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
FUNCTION DEFINITIONS ///.
Definition abcFraig.c:58
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition abcNtk.c:1421
ABC_DLL void Abc_NtkDontCareFree(Odc_Man_t *p)
Definition abcOdc.c:276
ABC_DLL Abc_Obj_t * Abc_NtkCreateObj(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
Definition abcObj.c:109
ABC_DLL void Abc_NtkTrasferNamesNoLatches(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition abcNames.c:175
ABC_DLL Abc_Ntk_t * Abc_NtkCreateConeArray(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, int fUseAllCis)
Definition abcNtk.c:995
ABC_DLL Vec_Ptr_t * Abc_NtkSaveCopy(Abc_Ntk_t *pNtk)
Definition abcUtil.c:628
ABC_DLL Abc_Obj_t * Abc_NtkCloneObj(Abc_Obj_t *pNode)
Definition abcObj.c:442
ABC_DLL char * Abc_NtkCollectLatchValuesStr(Abc_Ntk_t *pNtk)
Definition abcLatch.c:203
ABC_DLL int Abc_NtkRemoveSelfFeedLatches(Abc_Ntk_t *pNtk)
Definition abcLatch.c:117
ABC_DLL void Abc_NtkStartNameIds(Abc_Ntk_t *p)
Definition abcNames.c:711
ABC_DLL void Abc_AigSetNodePhases(Abc_Ntk_t *pNtk)
Definition abcAig.c:1406
ABC_DLL void Abc_NodeFreeCuts(void *p, Abc_Obj_t *pObj)
Definition abcCut.c:527
ABC_DLL int Abc_NtkPrepareTwoNtks(FILE *pErr, Abc_Ntk_t *pNtk, char **argv, int argc, Abc_Ntk_t **ppNtk1, Abc_Ntk_t **ppNtk2, int *pfDelete1, int *pfDelete2, int fCheck)
Definition abcUtil.c:1522
ABC_DLL char * Abc_SopDecoderLog(Mem_Flex_t *pMan, int nValues)
Definition abcSop.c:1280
ABC_DLL int Abc_NtkIsTrueCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
Definition abcVerify.c:1074
ABC_DLL int Abc_NtkRecInputNum3()
Definition abcRec3.c:1391
ABC_DLL int Abc_DesAddModel(Abc_Des_t *p, Abc_Ntk_t *pNtk)
Definition abcLib.c:226
ABC_DLL Abc_Obj_t * Abc_ObjAlloc(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
DECLARATIONS ///.
Definition abcObj.c:52
ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition abcDfs.c:151
ABC_DLL void Abc_AigDeleteNode(Abc_Aig_t *pMan, Abc_Obj_t *pOld)
Definition abcAig.c:989
ABC_DLL Abc_Ntk_t * Abc_NtkTopmost(Abc_Ntk_t *pNtk, int nLevels)
Definition abcStrash.c:548
ABC_DLL int Abc_AigNodeIsAcyclic(Abc_Obj_t *pNode, Abc_Obj_t *pRoot)
Definition abcAig.c:1330
ABC_DLL word Abc_SopToTruth(char *pSop, int nInputs)
Definition abcSop.c:1314
ABC_DLL Abc_Obj_t * Abc_AigMiter(Abc_Aig_t *pMan, Vec_Ptr_t *vPairs, int fImplic)
Definition abcAig.c:789
ABC_DLL Abc_Ntk_t * Abc_NtkCollapseSat(Abc_Ntk_t *pNtk, int nCubeLim, int nBTLimit, int nCostMax, int fCanon, int fReverse, int fCnfShared, int fVerbose)
ABC_DLL Vec_Int_t * Abc_NtkNodeSupportInt(Abc_Ntk_t *pNtk, int iCo)
Definition abcDfs.c:940
ABC_DLL int Abc_SopIsComplement(char *pSop)
Definition abcSop.c:703
ABC_DLL void Abc_NtkTimeSetOutputLoad(Abc_Ntk_t *pNtk, int PoNum, float Rise, float Fall)
Definition abcTiming.c:312
ABC_DLL int Abc_NtkSweepBufsInvs(Abc_Ntk_t *pNtk, int fVerbose)
Definition abcSweep.c:969
ABC_DLL void Abc_NtkFillTemp(Abc_Ntk_t *pNtk)
Definition abcUtil.c:586
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
Definition abcUtil.c:540
ABC_DLL int Abc_AigNodeHasComplFanoutEdgeTrav(Abc_Obj_t *pNode)
Definition abcAig.c:1268
ABC_DLL int Abc_SopIsAndType(char *pSop)
Definition abcSop.c:796
ABC_DLL Abc_Obj_t * Abc_NodeFindCoFanout(Abc_Obj_t *pNode)
Definition abcUtil.c:812
ABC_DLL Abc_Ntk_t * Abc_NtkBalance(Abc_Ntk_t *pNtk, int fDuplicate, int fSelective, int fUpdateLevel)
FUNCTION DEFINITIONS ///.
Definition abcBalance.c:53
ABC_DLL void Abc_ObjPatchFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFaninOld, Abc_Obj_t *pFaninNew)
Definition abcFanio.c:172
ABC_DLL char * Abc_SopCreateXor(Mem_Flex_t *pMan, int nVars)
Definition abcSop.c:280
ABC_DLL void Abc_NtkCleanNext_rec(Abc_Ntk_t *pNtk)
Definition abcUtil.c:676
ABC_DLL int Abc_NtkGetLargeNodeNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:443
Abc_NtkFunc_t
Definition abc.h:63
@ ABC_FUNC_OTHER
Definition abc.h:71
@ ABC_FUNC_NONE
Definition abc.h:64
@ ABC_FUNC_BLIFMV
Definition abc.h:69
@ ABC_FUNC_BLACKBOX
Definition abc.h:70
@ ABC_FUNC_SOP
Definition abc.h:65
@ ABC_FUNC_BDD
Definition abc.h:66
@ ABC_FUNC_AIG
Definition abc.h:67
@ ABC_FUNC_MAP
Definition abc.h:68
ABC_DLL void Abc_NtkTimeSetArrival(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
Definition abcTiming.c:208
ABC_DLL char * Abc_SopCreateNor(Mem_Flex_t *pMan, int nVars)
Definition abcSop.c:259
ABC_DLL int Abc_NtkGetFanoutMax(Abc_Ntk_t *pNtk)
Definition abcUtil.c:497
ABC_DLL Abc_Obj_t * Abc_NtkFindCo(Abc_Ntk_t *pNtk, char *pName)
Definition abcObj.c:562
ABC_DLL Vec_Ptr_t * Abc_NtkCollectLatches(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1667
ABC_DLL int Abc_NtkIsAcyclicHierarchy(Abc_Ntk_t *pNtk)
Definition abcCheck.c:817
ABC_DLL Vec_Ptr_t * Abc_NodeGetFakeNames(int nNames)
Definition abcNames.c:228
ABC_DLL int Abc_NtkAttach(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition abcAttach.c:60
ABC_DLL int Abc_NodeIsMuxType(Abc_Obj_t *pNode)
Definition abcUtil.c:1342
ABC_DLL Vec_Ptr_t * Abc_AigDfsMap(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1238
ABC_DLL void Abc_NtkAppendToCone(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
Definition abcNtk.c:1075
ABC_DLL int Abc_SopGetCubeNum(char *pSop)
Definition abcSop.c:537
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode)
Definition abcNtk.c:1260
ABC_DLL int Abc_NtkCompareSignals(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOnlyPis, int fComb)
Definition abcCheck.c:749
ABC_DLL int Abc_SopIsBuf(char *pSop)
Definition abcSop.c:756
ABC_DLL Abc_Ntk_t * Abc_NtkFrames(Abc_Ntk_t *pNtk, int nFrames, int fInitial, int fVerbose)
Definition abcMiter.c:775
ABC_DLL int Abc_NtkHaigStop(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCheckUniqueCiNames(Abc_Ntk_t *pNtk)
Definition abcCheck.c:862
ABC_DLL int Abc_NtkIsValidCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
Definition abcVerify.c:1106
ABC_DLL int Abc_NtkRefactor(Abc_Ntk_t *pNtk, int nNodeSizeMax, int nMinSaved, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose)
ABC_DLL float Abc_NodeReadInputDriveWorst(Abc_Ntk_t *pNtk, int iPi)
Definition abcTiming.c:151
ABC_DLL int Abc_SopIsConst1(char *pSop)
Definition abcSop.c:740
ABC_DLL void Abc_NtkTimeSetInputDrive(Abc_Ntk_t *pNtk, int PiNum, float Rise, float Fall)
Definition abcTiming.c:293
ABC_DLL int Abc_NtkGetCubeNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:117
ABC_DLL float Abc_NtkMfsTotalGlitching(Abc_Ntk_t *pNtk, int nPats, int Prob, int fVerbose)
Definition abcPrint.c:1942
ABC_DLL char * Abc_SopCreateConst0(Mem_Flex_t *pMan)
Definition abcSop.c:129
ABC_DLL void Abc_AigFree(Abc_Aig_t *pMan)
Definition abcAig.c:165
ABC_DLL Abc_Ntk_t * Abc_NtkInsertNewLogic(Abc_Ntk_t *pNtkH, Abc_Ntk_t *pNtkL)
Definition abcHie.c:691
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit, int fCubeSort)
Definition abcFunc.c:866
ABC_DLL int Abc_ObjLevelNew(Abc_Obj_t *pObj)
Definition abcTiming.c:1170
ABC_DLL void Abc_NtkPrintLatch(FILE *pFile, Abc_Ntk_t *pNtk)
Definition abcPrint.c:536
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, const char *pName)
DECLARATIONS ///.
Definition abcSop.c:62
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultInputDrive(Abc_Ntk_t *pNtk)
Definition abcTiming.c:131
ABC_DLL void Abc_NtkSetNodeLevelsArrival(Abc_Ntk_t *pNtk)
Definition abcTiming.c:722
ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux(Abc_Obj_t *pNode, Abc_Obj_t **ppNodeT, Abc_Obj_t **ppNodeE)
Definition abcUtil.c:1430
ABC_DLL Abc_Time_t * Abc_NtkGetCoRequiredTimes(Abc_Ntk_t *pNtk)
Definition abcTiming.c:763
ABC_DLL void Abc_NtkReassignIds(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1809
ABC_DLL void * Abc_NtkToFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
Definition abcFraig.c:103
ABC_DLL int Abc_ExactInputNum()
Definition abcExact.c:2611
ABC_DLL void Abc_NtkCleanMarkAB(Abc_Ntk_t *pNtk)
Definition abcUtil.c:753
ABC_DLL int Abc_ObjReverseLevel(Abc_Obj_t *pObj)
Definition abcTiming.c:1233
ABC_DLL int Abc_AigReplace(Abc_Aig_t *pMan, Abc_Obj_t *pOld, Abc_Obj_t *pNew, int fUpdateLevel)
Definition abcAig.c:850
ABC_DLL void Abc_ManTimeStop(Abc_ManTime_t *p)
Definition abcTiming.c:547
ABC_DLL void Abc_NtkFixNonDrivenNets(Abc_Ntk_t *pNtk)
Definition abcNtk.c:1557
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutSmall(Abc_ManCut_t *p)
Definition abcReconv.c:660
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition abcNtk.c:157
ABC_DLL int Abc_NtkGetClauseNum(Abc_Ntk_t *pNtk)
Definition abcUtil.c:303
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
Definition abcUtil.c:76
ABC_DLL int Abc_NodeRef_rec(Abc_Obj_t *pNode)
Definition abcRefs.c:241
ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNodes(Vec_Ptr_t *vSops)
Definition abcNtk.c:1374
ABC_DLL int Abc_NodeMffcSizeSupp(Abc_Obj_t *pNode)
ABC_DLL int Abc_NodeDeref_rec(Abc_Obj_t *pNode)
Definition abcRefs.c:215
ABC_DLL int Abc_NtkLogicHasSimpleCos(Abc_Ntk_t *pNtk)
Definition abcUtil.c:942
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
Definition abcNtk.c:472
ABC_DLL int Abc_NodeCompareLevelsDecrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition abcUtil.c:1715
ABC_DLL char * Abc_SopCreateBuf(Mem_Flex_t *pMan)
Definition abcSop.c:367
ABC_DLL void Abc_NtkPrintLevel(FILE *pFile, Abc_Ntk_t *pNtk, int fProfile, int fListNodes, int fOutputs, int fVerbose)
Definition abcPrint.c:1231
ABC_DLL Abc_Obj_t * Abc_NodeFindNonCoFanout(Abc_Obj_t *pNode)
Definition abcUtil.c:833
ABC_DLL void Abc_NtkPrintIo(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintFlops)
Definition abcPrint.c:499
ABC_DLL Abc_ManCut_t * Abc_NtkManCutStart(int nNodeSizeMax, int nConeSizeMax, int nNodeFanStop, int nConeFanStop)
Definition abcReconv.c:595
ABC_DLL float Abc_NodeReadArrivalWorst(Abc_Obj_t *pNode)
Definition abcTiming.c:111
ABC_DLL Vec_Ptr_t * Abc_NtkCollectObjects(Abc_Ntk_t *pNtk)
Definition abcUtil.c:1765
ABC_DLL void Abc_NtkShortNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:619
ABC_DLL int Abc_NtkSizeOfGlobalBdds(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkRecPs3(int fPrintLib)
Definition abcRec3.c:1411
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
Definition abcAig.c:683
ABC_DLL int Abc_NtkIsAcyclic(Abc_Ntk_t *pNtk)
Definition abcDfs.c:1614
ABC_DLL int Abc_NodeIsConst1(Abc_Obj_t *pNode)
Definition abcObj.c:916
ABC_DLL Abc_Obj_t * Abc_NtkFindNet(Abc_Ntk_t *pNtk, char *pName)
Definition abcObj.c:515
ABC_DLL Abc_Ntk_t * Abc_NtkInsertBlifMv(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtkLogic)
Definition abcBlifMv.c:912
ABC_DLL int Abc_NtkCheckObj(Abc_Ntk_t *pNtk, Abc_Obj_t *pObj)
Definition abcCheck.c:420
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
Definition abcNames.c:495
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverse(Abc_Ntk_t *pNtk)
Definition abcDfs.c:221
ABC_DLL int Abc_SopIsOrType(char *pSop)
Definition abcSop.c:820
ABC_DLL int Abc_NtkMiterIsConstant(Abc_Ntk_t *pMiter)
Definition abcMiter.c:682
ABC_DLL float * Abc_NtkGetCiArrivalFloats(Abc_Ntk_t *pNtk)
Definition abcTiming.c:789
ABC_DLL int Abc_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
Definition abcUtil.c:520
ABC_DLL int Abc_NodeFindFanin(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
Definition abcUtil.c:791
ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNode(char *pSop)
Definition abcNtk.c:1333
ABC_DLL int Abc_NodeMinimumBase(Abc_Obj_t *pNode)
Definition abcMinBase.c:893
ABC_DLL void Abc_NodeMffcConeSupp(Abc_Obj_t *pNode, Vec_Ptr_t *vCone, Vec_Ptr_t *vSupp)
Definition abcRefs.c:299
ABC_DLL int Abc_NodeIsExorType(Abc_Obj_t *pNode)
Definition abcUtil.c:1300
ABC_DLL Abc_Obj_t * Abc_NtkDupBox(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pBox, int fCopyName)
Definition abcObj.c:415
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeqReverse(Abc_Ntk_t *pNtk)
Definition abcDfs.c:485
ABC_DLL char * Abc_SopCreateMux(Mem_Flex_t *pMan)
Definition abcSop.c:335
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
#define ABC_DLL
Definition abcapis.h:57
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
struct Gia_Man_t_ Gia_Man_t
Definition gia.h:96
unsigned __int64 word
DECLARATIONS ///.
Definition kitPerm.c:36
struct Mem_Step_t_ Mem_Step_t
Definition mem.h:35
typedefABC_NAMESPACE_HEADER_START struct Mem_Fixed_t_ Mem_Fixed_t
DECLARATIONS ///.
Definition mem.h:33
struct Mem_Flex_t_ Mem_Flex_t
Definition mem.h:34
typedefABC_NAMESPACE_HEADER_START struct Nm_Man_t_ Nm_Man_t
INCLUDES ///.
Definition nm.h:63
DECLARATIONS ///.
Definition abcAig.c:53
Abc_Des_t * pLibrary
Definition abc.h:227
void * pGenlib
Definition abc.h:228
Vec_Ptr_t * vModules
Definition abc.h:225
Vec_Ptr_t * vTops
Definition abc.h:224
st__table * tModules
Definition abc.h:226
void * pManFunc
Definition abc.h:223
char * pName
Definition abc.h:222
DECLARATIONS ///.
Definition abcReconv.c:35
DECLARATIONS ///.
Definition abcTiming.c:37
Abc_NtkType_t ntkType
Definition abc.h:156
Vec_Ptr_t * vAttrs
Definition abc.h:214
Vec_Ptr_t * vCis
Definition abc.h:165
Vec_Int_t * vLevelsR
Definition abc.h:196
char * pName
Definition abc.h:158
int nBarBufs
Definition abc.h:174
Vec_Ptr_t * vCos
Definition abc.h:166
Abc_Cex_t * pSeqModel
Definition abc.h:199
int nTravIds
Definition abc.h:187
Abc_Ntk_t * pNetBackup
Definition abc.h:177
Abc_Des_t * pDesign
Definition abc.h:180
float * pLutTimes
Definition abc.h:210
char * pWLoadUsed
Definition abc.h:209
double dTemp
Definition abc.h:185
int nConstrs
Definition abc.h:173
Vec_Int_t * vGates
Definition abc.h:207
float AndGateDelay
Definition abc.h:194
Vec_Ptr_t * vPos
Definition abc.h:164
Vec_Ptr_t * vBoxes
Definition abc.h:168
int nObjs
Definition abc.h:172
Vec_Int_t * vOrigNodeIds
Definition abc.h:217
Mem_Step_t * pMmStep
Definition abc.h:190
Vec_Int_t * vNameIds
Definition abc.h:215
Abc_Ntk_t * pExdc
Definition abc.h:201
int nObjCounts[ABC_OBJ_NUMBER]
Definition abc.h:171
void * pSCLib
Definition abc.h:206
Vec_Int_t * vFins
Definition abc.h:216
Vec_Int_t * vTopo
Definition abc.h:213
Vec_Ptr_t * vPios
Definition abc.h:167
int fHieVisited
Definition abc.h:182
void * pManFunc
Definition abc.h:191
Mem_Fixed_t * pMmObj
Definition abc.h:189
void * pExcare
Definition abc.h:202
Vec_Ptr_t * vOnehots
Definition abc.h:211
int * pModel
Definition abc.h:198
int Id
Definition abc.h:184
Abc_ManTime_t * pManTime
Definition abc.h:192
Nm_Man_t * pManName
Definition abc.h:160
Abc_Ntk_t * pCopy
Definition abc.h:204
void * pData
Definition abc.h:203
char * pSpec
Definition abc.h:159
Abc_Ntk_t * pAltView
Definition abc.h:181
Vec_Ptr_t * vSupps
Definition abc.h:197
Vec_Int_t * vObjPerm
Definition abc.h:212
Vec_Ptr_t * vPis
Definition abc.h:163
void * pManCut
Definition abc.h:193
int LevelMax
Definition abc.h:195
Vec_Int_t vTravIds
Definition abc.h:188
int nBarBufs2
Definition abc.h:175
int iStep
Definition abc.h:178
Vec_Ptr_t * vObjs
Definition abc.h:162
Vec_Int_t * vPhases
Definition abc.h:208
void * pBSMan
Definition abc.h:205
Vec_Ptr_t * vSeqModelVec
Definition abc.h:200
int fHiePath
Definition abc.h:183
Vec_Ptr_t * vLtlProperties
Definition abc.h:169
Abc_NtkFunc_t ntkFunc
Definition abc.h:157
void * pData
Definition abc.h:145
unsigned fMarkC
Definition abc.h:136
float dTemp
Definition abc.h:150
Vec_Int_t vFanins
Definition abc.h:143
Abc_Ntk_t * pNtk
Definition abc.h:130
int Id
Definition abc.h:132
unsigned fMarkB
Definition abc.h:135
int iTemp
Definition abc.h:149
unsigned fExor
Definition abc.h:138
Vec_Int_t vFanouts
Definition abc.h:144
int iData
Definition abc.h:146
unsigned fCompl1
Definition abc.h:141
Abc_Obj_t * pCopy
Definition abc.h:148
unsigned fMarkA
Definition abc.h:134
unsigned Type
Definition abc.h:133
unsigned fPhase
Definition abc.h:137
Abc_Obj_t * pNext
Definition abc.h:131
void * pTemp
Definition abc.h:147
unsigned Level
Definition abc.h:142
unsigned fPersist
Definition abc.h:139
unsigned fCompl0
Definition abc.h:140
float Rise
Definition abc.h:124
float Fall
Definition abc.h:125
Abc_Obj_t * pNode
Definition abcOdc.c:56
unsigned * puTruth
Definition abcOdc.c:79
int nVarsMax
Definition abcOdc.c:48
int nLevels
Definition abcOdc.c:49
Vec_Ptr_t * vLeaves
Definition abcOdc.c:57
int fVerbose
Definition abcOdc.c:50
int fVeryVerbose
Definition abcOdc.c:51
Definition st.h:52
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition utilCex.h:39
#define assert(ex)
Definition util_old.h:213
char * memset()
@ VEC_ATTR_MVVAR
Definition vecAtt.h:52
@ VEC_ATTR_GLOBAL_BDD
Definition vecAtt.h:47
struct Vec_Att_t_ Vec_Att_t
BASIC TYPES ///.
Definition vecAtt.h:62
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