abc-master
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
abc.h
Go to the documentation of this file.
1 /**CFile****************************************************************
2 
3  FileName [abc.h]
4 
5  SystemName [ABC: Logic synthesis and verification system.]
6 
7  PackageName [Network and node package.]
8 
9  Synopsis [External declarations.]
10 
11  Author [Alan Mishchenko]
12 
13  Affiliation [UC Berkeley]
14 
15  Date [Ver. 1.0. Started - June 20, 2005.]
16 
17  Revision [$Id: abc.h,v 1.1 2008/05/14 22:13:11 wudenni Exp $]
18 
19 ***********************************************************************/
20 
21 #ifndef ABC__base__abc__abc_h
22 #define ABC__base__abc__abc_h
23 
24 
25 ////////////////////////////////////////////////////////////////////////
26 /// INCLUDES ///
27 ////////////////////////////////////////////////////////////////////////
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 
44 ////////////////////////////////////////////////////////////////////////
45 /// PARAMETERS ///
46 ////////////////////////////////////////////////////////////////////////
47 
48 
49 
51 
52 
53 // network types
54 typedef 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
63 typedef 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
86 typedef 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
102 typedef 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 
110 ////////////////////////////////////////////////////////////////////////
111 /// BASIC TYPES ///
112 ////////////////////////////////////////////////////////////////////////
113 
114 typedef struct Abc_Des_t_ Abc_Des_t;
115 typedef struct Abc_Ntk_t_ Abc_Ntk_t;
116 typedef struct Abc_Obj_t_ Abc_Obj_t;
117 typedef struct Abc_Aig_t_ Abc_Aig_t;
120 typedef struct Abc_Time_t_ Abc_Time_t;
121 
123 {
124  float Rise;
125  float Fall;
126 };
127 
128 struct 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 
153 struct Abc_Ntk_t_
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 };
217 
218 struct Abc_Des_t_
219 {
220  char * pName; // the name of the library
221  void * pManFunc; // functionality manager for the nodes
222  Vec_Ptr_t * vTops; // the array of top-level modules
223  Vec_Ptr_t * vModules; // the array of modules
224  st__table * tModules; // the table hashing module names into their networks
225  Abc_Des_t * pLibrary; // the library used to map this design
226  void * pGenlib; // the genlib library used to map this design
227 };
228 
229 ////////////////////////////////////////////////////////////////////////
230 /// MACRO DEFINITIONS ///
231 ////////////////////////////////////////////////////////////////////////
232 
233 // transforming floats into ints and back
234 static inline unsigned Abc_InfoRandomWord() { return ((((unsigned)rand()) << 24) ^ (((unsigned)rand()) << 12) ^ ((unsigned)rand())); } // #define RAND_MAX 0x7fff
235 static inline void Abc_InfoRandom( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = Abc_InfoRandomWord(); }
236 static inline void Abc_InfoClear( unsigned * p, int nWords ) { memset( p, 0, sizeof(unsigned) * nWords ); }
237 static inline void Abc_InfoFill( unsigned * p, int nWords ) { memset( p, 0xff, sizeof(unsigned) * nWords );}
238 static inline void Abc_InfoNot( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = ~p[i]; }
239 static inline int Abc_InfoIsZero( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) if ( p[i] ) return 0; return 1; }
240 static inline int Abc_InfoIsOne( unsigned * p, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) if ( ~p[i] ) return 0; return 1; }
241 static inline void Abc_InfoCopy( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] = q[i]; }
242 static inline void Abc_InfoAnd( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] &= q[i]; }
243 static inline void Abc_InfoOr( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] |= q[i]; }
244 static inline void Abc_InfoXor( unsigned * p, unsigned * q, int nWords ) { int i; for ( i = nWords - 1; i >= 0; i-- ) p[i] ^= q[i]; }
245 static 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; }
246 static 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; }
247 
248 // checking the network type
249 static inline int Abc_NtkIsNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_NETLIST; }
250 static inline int Abc_NtkIsLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_LOGIC; }
251 static inline int Abc_NtkIsStrash( Abc_Ntk_t * pNtk ) { return pNtk->ntkType == ABC_NTK_STRASH; }
252 
253 static inline int Abc_NtkHasSop( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP; }
254 static inline int Abc_NtkHasBdd( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD; }
255 static inline int Abc_NtkHasAig( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG; }
256 static inline int Abc_NtkHasMapping( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP; }
257 static inline int Abc_NtkHasBlifMv( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLIFMV; }
258 static inline int Abc_NtkHasBlackbox( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLACKBOX; }
259 
260 static inline int Abc_NtkIsSopNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_NETLIST; }
261 static inline int Abc_NtkIsAigNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG && pNtk->ntkType == ABC_NTK_NETLIST; }
262 static inline int Abc_NtkIsMappedNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_NETLIST; }
263 static inline int Abc_NtkIsBlifMvNetlist( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BLIFMV && pNtk->ntkType == ABC_NTK_NETLIST; }
264 static inline int Abc_NtkIsSopLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_SOP && pNtk->ntkType == ABC_NTK_LOGIC ; }
265 static inline int Abc_NtkIsBddLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_BDD && pNtk->ntkType == ABC_NTK_LOGIC ; }
266 static inline int Abc_NtkIsAigLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_AIG && pNtk->ntkType == ABC_NTK_LOGIC ; }
267 static inline int Abc_NtkIsMappedLogic( Abc_Ntk_t * pNtk ) { return pNtk->ntkFunc == ABC_FUNC_MAP && pNtk->ntkType == ABC_NTK_LOGIC ; }
268 
269 // reading data members of the network
270 static inline char * Abc_NtkName( Abc_Ntk_t * pNtk ) { return pNtk->pName; }
271 static inline char * Abc_NtkSpec( Abc_Ntk_t * pNtk ) { return pNtk->pSpec; }
272 static inline Abc_Ntk_t * Abc_NtkExdc( Abc_Ntk_t * pNtk ) { return pNtk->pExdc; }
273 static inline Abc_Ntk_t * Abc_NtkBackup( Abc_Ntk_t * pNtk ) { return pNtk->pNetBackup; }
274 static inline int Abc_NtkStep ( Abc_Ntk_t * pNtk ) { return pNtk->iStep; }
275 
276 // setting data members of the network
277 static inline void Abc_NtkSetName ( Abc_Ntk_t * pNtk, char * pName ) { pNtk->pName = pName; }
278 static inline void Abc_NtkSetSpec ( Abc_Ntk_t * pNtk, char * pName ) { pNtk->pSpec = pName; }
279 static inline void Abc_NtkSetBackup( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNetBackup ) { pNtk->pNetBackup = pNetBackup; }
280 static inline void Abc_NtkSetStep ( Abc_Ntk_t * pNtk, int iStep ) { pNtk->iStep = iStep; }
281 
282 // getting the number of objects
283 static inline int Abc_NtkObjNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjs; }
284 static inline int Abc_NtkObjNumMax( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vObjs); }
285 static inline int Abc_NtkPiNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vPis); }
286 static inline int Abc_NtkPoNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vPos); }
287 static inline int Abc_NtkCiNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vCis); }
288 static inline int Abc_NtkCoNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vCos); }
289 static inline int Abc_NtkBoxNum( Abc_Ntk_t * pNtk ) { return Vec_PtrSize(pNtk->vBoxes); }
290 static inline int Abc_NtkBiNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BI]; }
291 static inline int Abc_NtkBoNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BO]; }
292 static inline int Abc_NtkNetNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_NET]; }
293 static inline int Abc_NtkNodeNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_NODE]; }
294 static inline int Abc_NtkLatchNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_LATCH]; }
295 static inline int Abc_NtkWhiteboxNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_WHITEBOX]; }
296 static inline int Abc_NtkBlackboxNum( Abc_Ntk_t * pNtk ) { return pNtk->nObjCounts[ABC_OBJ_BLACKBOX]; }
297 static inline int Abc_NtkIsComb( Abc_Ntk_t * pNtk ) { return Abc_NtkLatchNum(pNtk) == 0; }
298 static inline int Abc_NtkHasOnlyLatchBoxes(Abc_Ntk_t * pNtk ){ return Abc_NtkLatchNum(pNtk) == Abc_NtkBoxNum(pNtk); }
299 static inline int Abc_NtkConstrNum( Abc_Ntk_t * pNtk ) { return pNtk->nConstrs; }
300 
301 // creating simple objects
302 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateObj( Abc_Ntk_t * pNtk, Abc_ObjType_t Type );
303 static inline Abc_Obj_t * Abc_NtkCreatePi( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_PI ); }
304 static inline Abc_Obj_t * Abc_NtkCreatePo( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_PO ); }
305 static inline Abc_Obj_t * Abc_NtkCreateBi( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BI ); }
306 static inline Abc_Obj_t * Abc_NtkCreateBo( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BO ); }
307 static inline Abc_Obj_t * Abc_NtkCreateNet( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_NET ); }
308 static inline Abc_Obj_t * Abc_NtkCreateNode( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_NODE ); }
309 static inline Abc_Obj_t * Abc_NtkCreateLatch( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_LATCH ); }
310 static inline Abc_Obj_t * Abc_NtkCreateWhitebox( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_WHITEBOX ); }
311 static inline Abc_Obj_t * Abc_NtkCreateBlackbox( Abc_Ntk_t * pNtk ) { return Abc_NtkCreateObj( pNtk, ABC_OBJ_BLACKBOX ); }
312 
313 // reading objects
314 static inline Abc_Obj_t * Abc_NtkObj( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vObjs, i ); }
315 static inline Abc_Obj_t * Abc_NtkPi( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vPis, i ); }
316 static inline Abc_Obj_t * Abc_NtkPo( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vPos, i ); }
317 static inline Abc_Obj_t * Abc_NtkCi( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vCis, i ); }
318 static inline Abc_Obj_t * Abc_NtkCo( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vCos, i ); }
319 static inline Abc_Obj_t * Abc_NtkBox( Abc_Ntk_t * pNtk, int i ) { return (Abc_Obj_t *)Vec_PtrEntry( pNtk->vBoxes, i ); }
320 
321 // working with complemented attributes of objects
322 static inline int Abc_ObjIsComplement( Abc_Obj_t * p ) { return (int )((ABC_PTRUINT_T)p & (ABC_PTRUINT_T)01); }
323 static inline Abc_Obj_t * Abc_ObjRegular( Abc_Obj_t * p ) { return (Abc_Obj_t *)((ABC_PTRUINT_T)p & ~(ABC_PTRUINT_T)01); }
324 static inline Abc_Obj_t * Abc_ObjNot( Abc_Obj_t * p ) { return (Abc_Obj_t *)((ABC_PTRUINT_T)p ^ (ABC_PTRUINT_T)01); }
325 static 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)); }
326 
327 // reading data members of the object
328 static inline unsigned Abc_ObjType( Abc_Obj_t * pObj ) { return pObj->Type; }
329 static inline unsigned Abc_ObjId( Abc_Obj_t * pObj ) { return pObj->Id; }
330 static inline int Abc_ObjLevel( Abc_Obj_t * pObj ) { return pObj->Level; }
331 static inline Vec_Int_t * Abc_ObjFaninVec( Abc_Obj_t * pObj ) { return &pObj->vFanins; }
332 static inline Vec_Int_t * Abc_ObjFanoutVec( Abc_Obj_t * pObj ) { return &pObj->vFanouts; }
333 static inline Abc_Obj_t * Abc_ObjCopy( Abc_Obj_t * pObj ) { return pObj->pCopy; }
334 static inline Abc_Ntk_t * Abc_ObjNtk( Abc_Obj_t * pObj ) { return pObj->pNtk; }
335 static inline Abc_Ntk_t * Abc_ObjModel( Abc_Obj_t * pObj ) { assert( pObj->Type == ABC_OBJ_WHITEBOX ); return (Abc_Ntk_t *)pObj->pData; }
336 static inline void * Abc_ObjData( Abc_Obj_t * pObj ) { return pObj->pData; }
337 static inline Abc_Obj_t * Abc_ObjEquiv( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pData; }
338 static 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; }
339 
340 // setting data members of the network
341 static inline void Abc_ObjSetLevel( Abc_Obj_t * pObj, int Level ) { pObj->Level = Level; }
342 static inline void Abc_ObjSetCopy( Abc_Obj_t * pObj, Abc_Obj_t * pCopy ) { pObj->pCopy = pCopy; }
343 static inline void Abc_ObjSetData( Abc_Obj_t * pObj, void * pData ) { pObj->pData = pData; }
344 
345 // checking the object type
346 static inline int Abc_ObjIsNone( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NONE; }
347 static inline int Abc_ObjIsPi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PI; }
348 static inline int Abc_ObjIsPo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PO; }
349 static inline int Abc_ObjIsBi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BI; }
350 static inline int Abc_ObjIsBo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BO; }
351 static inline int Abc_ObjIsCi( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PI || pObj->Type == ABC_OBJ_BO; }
352 static inline int Abc_ObjIsCo( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_PO || pObj->Type == ABC_OBJ_BI; }
353 static inline int Abc_ObjIsTerm( Abc_Obj_t * pObj ) { return Abc_ObjIsCi(pObj) || Abc_ObjIsCo(pObj); }
354 static inline int Abc_ObjIsNet( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NET; }
355 static inline int Abc_ObjIsNode( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_NODE; }
356 static inline int Abc_ObjIsLatch( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_LATCH; }
357 static inline int Abc_ObjIsBox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_LATCH || pObj->Type == ABC_OBJ_WHITEBOX || pObj->Type == ABC_OBJ_BLACKBOX; }
358 static inline int Abc_ObjIsWhitebox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_WHITEBOX;}
359 static inline int Abc_ObjIsBlackbox( Abc_Obj_t * pObj ) { return pObj->Type == ABC_OBJ_BLACKBOX;}
360 static inline int Abc_ObjIsBarBuf( Abc_Obj_t * pObj ) { return Abc_NtkIsLogic(pObj->pNtk) && Vec_IntSize(&pObj->vFanins) == 1 && pObj->pData == NULL; }
362 
363 // working with fanin/fanout edges
364 static inline int Abc_ObjFaninNum( Abc_Obj_t * pObj ) { return pObj->vFanins.nSize; }
365 static inline int Abc_ObjFanoutNum( Abc_Obj_t * pObj ) { return pObj->vFanouts.nSize; }
366 static inline int Abc_ObjFaninId( Abc_Obj_t * pObj, int i) { return pObj->vFanins.pArray[i]; }
367 static inline int Abc_ObjFaninId0( Abc_Obj_t * pObj ) { return pObj->vFanins.pArray[0]; }
368 static inline int Abc_ObjFaninId1( Abc_Obj_t * pObj ) { return pObj->vFanins.pArray[1]; }
369 static 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; }
370 static inline Abc_Obj_t * Abc_ObjFanout( Abc_Obj_t * pObj, int i ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanouts.pArray[i] ]; }
371 static inline Abc_Obj_t * Abc_ObjFanout0( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanouts.pArray[0] ]; }
372 static inline Abc_Obj_t * Abc_ObjFanin( Abc_Obj_t * pObj, int i ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[i] ]; }
373 static inline Abc_Obj_t * Abc_ObjFanin0( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[0] ]; }
374 static inline Abc_Obj_t * Abc_ObjFanin1( Abc_Obj_t * pObj ) { return (Abc_Obj_t *)pObj->pNtk->vObjs->pArray[ pObj->vFanins.pArray[1] ]; }
375 static inline Abc_Obj_t * Abc_ObjFanin0Ntk( Abc_Obj_t * pObj ) { return (Abc_NtkIsNetlist(pObj->pNtk)? Abc_ObjFanin0(pObj) : pObj); }
376 static inline Abc_Obj_t * Abc_ObjFanout0Ntk( Abc_Obj_t * pObj ) { return (Abc_NtkIsNetlist(pObj->pNtk)? Abc_ObjFanout0(pObj) : pObj); }
377 static inline int Abc_ObjFaninC0( Abc_Obj_t * pObj ) { return pObj->fCompl0; }
378 static inline int Abc_ObjFaninC1( Abc_Obj_t * pObj ) { return pObj->fCompl1; }
379 static inline int Abc_ObjFaninC( Abc_Obj_t * pObj, int i ) { assert( i >=0 && i < 2 ); return i? pObj->fCompl1 : pObj->fCompl0; }
380 static inline void Abc_ObjSetFaninC( Abc_Obj_t * pObj, int i ){ assert( i >=0 && i < 2 ); if ( i ) pObj->fCompl1 = 1; else pObj->fCompl0 = 1; }
381 static inline void Abc_ObjXorFaninC( Abc_Obj_t * pObj, int i ){ assert( i >=0 && i < 2 ); if ( i ) pObj->fCompl1^= 1; else pObj->fCompl0^= 1; }
382 static inline Abc_Obj_t * Abc_ObjChild( Abc_Obj_t * pObj, int i ) { return Abc_ObjNotCond( Abc_ObjFanin(pObj,i), Abc_ObjFaninC(pObj,i) );}
383 static inline Abc_Obj_t * Abc_ObjChild0( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin0(pObj), Abc_ObjFaninC0(pObj) ); }
384 static inline Abc_Obj_t * Abc_ObjChild1( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin1(pObj), Abc_ObjFaninC1(pObj) ); }
385 static inline Abc_Obj_t * Abc_ObjChildCopy( Abc_Obj_t * pObj, int i ){ return Abc_ObjNotCond( Abc_ObjFanin(pObj,i)->pCopy, Abc_ObjFaninC(pObj,i) ); }
386 static inline Abc_Obj_t * Abc_ObjChild0Copy( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin0(pObj)->pCopy, Abc_ObjFaninC0(pObj) ); }
387 static inline Abc_Obj_t * Abc_ObjChild1Copy( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( Abc_ObjFanin1(pObj)->pCopy, Abc_ObjFaninC1(pObj) ); }
388 static inline Abc_Obj_t * Abc_ObjChild0Data( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( (Abc_Obj_t *)Abc_ObjFanin0(pObj)->pData, Abc_ObjFaninC0(pObj) ); }
389 static inline Abc_Obj_t * Abc_ObjChild1Data( Abc_Obj_t * pObj ) { return Abc_ObjNotCond( (Abc_Obj_t *)Abc_ObjFanin1(pObj)->pData, Abc_ObjFaninC1(pObj) ); }
390 static inline Abc_Obj_t * Abc_ObjFromLit( Abc_Ntk_t * p, int iLit ) { return Abc_ObjNotCond( Abc_NtkObj(p, Abc_Lit2Var(iLit)), Abc_LitIsCompl(iLit) ); }
391 static inline int Abc_ObjToLit( Abc_Obj_t * p ) { return Abc_Var2Lit( Abc_ObjId(Abc_ObjRegular(p)), Abc_ObjIsComplement(p) ); }
392 static 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; }
393 static 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); }
394 
395 // checking the AIG node types
396 static inline int Abc_AigNodeIsConst( Abc_Obj_t * pNode ) { assert(Abc_NtkIsStrash(Abc_ObjRegular(pNode)->pNtk)); return Abc_ObjRegular(pNode)->Type == ABC_OBJ_CONST1; }
397 static inline int Abc_AigNodeIsAnd( Abc_Obj_t * pNode ) { assert(!Abc_ObjIsComplement(pNode)); assert(Abc_NtkIsStrash(pNode->pNtk)); return Abc_ObjFaninNum(pNode) == 2; }
398 static 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; }
399 
400 // handling persistent nodes
401 static inline int Abc_NodeIsPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); return pNode->fPersist; }
402 static inline void Abc_NodeSetPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); pNode->fPersist = 1; }
403 static inline void Abc_NodeClearPersistant( Abc_Obj_t * pNode ) { assert( Abc_AigNodeIsAnd(pNode) ); pNode->fPersist = 0; }
404 
405 // working with the traversal ID
406 static 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)); }
407 static inline int Abc_NodeTravId( Abc_Obj_t * p ) { return Vec_IntGetEntry(&Abc_ObjNtk(p)->vTravIds, Abc_ObjId(p)); }
408 static inline void Abc_NodeSetTravId( Abc_Obj_t * p, int TravId ) { Vec_IntSetEntry(&Abc_ObjNtk(p)->vTravIds, Abc_ObjId(p), TravId ); }
409 static inline void Abc_NodeSetTravIdCurrent( Abc_Obj_t * p ) { Abc_NodeSetTravId( p, Abc_ObjNtk(p)->nTravIds ); }
410 static inline void Abc_NodeSetTravIdPrevious( Abc_Obj_t * p ) { Abc_NodeSetTravId( p, Abc_ObjNtk(p)->nTravIds-1 ); }
411 static inline int Abc_NodeIsTravIdCurrent( Abc_Obj_t * p ) { return (Abc_NodeTravId(p) == Abc_ObjNtk(p)->nTravIds); }
412 static inline int Abc_NodeIsTravIdPrevious( Abc_Obj_t * p ) { return (Abc_NodeTravId(p) == Abc_ObjNtk(p)->nTravIds-1); }
413 static inline void Abc_NodeSetTravIdCurrentId( Abc_Ntk_t * p, int i) { Vec_IntSetEntry(&p->vTravIds, i, p->nTravIds ); }
414 static inline int Abc_NodeIsTravIdCurrentId( Abc_Ntk_t * p, int i) { return (Vec_IntGetEntry(&p->vTravIds, i) == p->nTravIds); }
415 
416 // checking initial state of the latches
417 static inline void Abc_LatchSetInitNone( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_NONE; }
418 static inline void Abc_LatchSetInit0( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_ZERO; }
419 static inline void Abc_LatchSetInit1( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_ONE; }
420 static inline void Abc_LatchSetInitDc( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); pLatch->pData = (void *)ABC_INIT_DC; }
421 static inline int Abc_LatchIsInitNone( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_NONE; }
422 static inline int Abc_LatchIsInit0( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_ZERO; }
423 static inline int Abc_LatchIsInit1( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_ONE; }
424 static inline int Abc_LatchIsInitDc( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return pLatch->pData == (void *)ABC_INIT_DC; }
425 static inline int Abc_LatchInit( Abc_Obj_t * pLatch ) { assert(Abc_ObjIsLatch(pLatch)); return (int)(ABC_PTRINT_T)pLatch->pData; }
426 
427 // global BDDs of the nodes
428 static inline void * Abc_NtkGlobalBdd( Abc_Ntk_t * pNtk ) { return Vec_PtrEntry(pNtk->vAttrs, VEC_ATTR_GLOBAL_BDD); }
429 static inline void * Abc_NtkGlobalBddMan( Abc_Ntk_t * pNtk ) { return Vec_AttMan( (Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
430 static inline void ** Abc_NtkGlobalBddArray( Abc_Ntk_t * pNtk ) { return Vec_AttArray( (Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
431 static inline void * Abc_ObjGlobalBdd( Abc_Obj_t * pObj ) { return Vec_AttEntry( (Vec_Att_t *)Abc_NtkGlobalBdd(pObj->pNtk), pObj->Id ); }
432 static inline void Abc_ObjSetGlobalBdd( Abc_Obj_t * pObj, void * bF ) { Vec_AttWriteEntry( (Vec_Att_t *)Abc_NtkGlobalBdd(pObj->pNtk), pObj->Id, bF ); }
433 
434 // MV variables of the nodes
435 static inline void * Abc_NtkMvVar( Abc_Ntk_t * pNtk ) { return Vec_PtrEntry(pNtk->vAttrs, VEC_ATTR_MVVAR); }
436 static inline void * Abc_NtkMvVarMan( Abc_Ntk_t * pNtk ) { return Abc_NtkMvVar(pNtk)? Vec_AttMan( (Vec_Att_t *)Abc_NtkMvVar(pNtk) ) : NULL; }
437 static 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; }
438 static inline int Abc_ObjMvVarNum( Abc_Obj_t * pObj ) { return (Abc_NtkMvVar(pObj->pNtk) && Abc_ObjMvVar(pObj))? *((int*)Abc_ObjMvVar(pObj)) : 2; }
439 static inline void Abc_ObjSetMvVar( Abc_Obj_t * pObj, void * pV) { Vec_AttWriteEntry( (Vec_Att_t *)Abc_NtkMvVar(pObj->pNtk), pObj->Id, pV ); }
440 
441 ////////////////////////////////////////////////////////////////////////
442 /// ITERATORS ///
443 ////////////////////////////////////////////////////////////////////////
444 
445 // objects of the network
446 #define Abc_NtkForEachObj( pNtk, pObj, i ) \
447  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pObj) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
448  if ( (pObj) == NULL ) {} else
449 #define Abc_NtkForEachObjReverse( pNtk, pNode, i ) \
450  for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
451  if ( (pNode) == NULL ) {} else
452 #define Abc_NtkForEachObjVec( vIds, pNtk, pObj, i ) \
453  for ( i = 0; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
454  if ( (pObj) == NULL ) {} else
455 #define Abc_NtkForEachObjVecStart( vIds, pNtk, pObj, i, Start ) \
456  for ( i = Start; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
457  if ( (pObj) == NULL ) {} else
458 #define Abc_NtkForEachNet( pNtk, pNet, i ) \
459  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNet) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
460  if ( (pNet) == NULL || !Abc_ObjIsNet(pNet) ) {} else
461 #define Abc_NtkForEachNode( pNtk, pNode, i ) \
462  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
463  if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
464 #define Abc_NtkForEachNodeNotBarBuf( 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) || Abc_ObjIsBarBuf(pNode) ) {} else
467 #define Abc_NtkForEachNode1( 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_ObjFaninNum(pNode) ) {} else
470 #define Abc_NtkForEachNodeNotBarBuf1( 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) || Abc_ObjIsBarBuf(pNode) ) {} else
473 #define Abc_NtkForEachNodeReverse( pNtk, pNode, i ) \
474  for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
475  if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
476 #define Abc_NtkForEachNodeReverse1( 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) || !Abc_ObjFaninNum(pNode) ) {} else
479 #define Abc_NtkForEachBarBuf( pNtk, pNode, i ) \
480  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
481  if ( (pNode) == NULL || !Abc_ObjIsBarBuf(pNode) ) {} else
482 #define Abc_NtkForEachGate( pNtk, pNode, i ) \
483  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
484  if ( (pNode) == NULL || !Abc_ObjIsGate(pNode) ) {} else
485 #define Abc_AigForEachAnd( pNtk, pNode, i ) \
486  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
487  if ( (pNode) == NULL || !Abc_AigNodeIsAnd(pNode) ) {} else
488 #define Abc_NtkForEachNodeCi( pNtk, pNode, i ) \
489  for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
490  if ( (pNode) == NULL || (!Abc_ObjIsNode(pNode) && !Abc_ObjIsCi(pNode)) ) {} else
491 #define Abc_NtkForEachNodeCo( 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_ObjIsCo(pNode)) ) {} else
494 // various boxes
495 #define Abc_NtkForEachBox( pNtk, pObj, i ) \
496  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ )
497 #define Abc_NtkForEachLatch( pNtk, pObj, i ) \
498  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
499  if ( !Abc_ObjIsLatch(pObj) ) {} else
500 #define Abc_NtkForEachLatchInput( pNtk, pObj, i ) \
501  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
502  if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanin0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
503 #define Abc_NtkForEachLatchOutput( pNtk, pObj, i ) \
504  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
505  if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanout0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
506 #define Abc_NtkForEachWhitebox( pNtk, pObj, i ) \
507  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
508  if ( !Abc_ObjIsWhitebox(pObj) ) {} else
509 #define Abc_NtkForEachBlackbox( pNtk, pObj, i ) \
510  for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
511  if ( !Abc_ObjIsBlackbox(pObj) ) {} else
512 // inputs and outputs
513 #define Abc_NtkForEachPi( pNtk, pPi, i ) \
514  for ( i = 0; (i < Abc_NtkPiNum(pNtk)) && (((pPi) = Abc_NtkPi(pNtk, i)), 1); i++ )
515 #define Abc_NtkForEachCi( pNtk, pCi, i ) \
516  for ( i = 0; (i < Abc_NtkCiNum(pNtk)) && (((pCi) = Abc_NtkCi(pNtk, i)), 1); i++ )
517 #define Abc_NtkForEachPo( pNtk, pPo, i ) \
518  for ( i = 0; (i < Abc_NtkPoNum(pNtk)) && (((pPo) = Abc_NtkPo(pNtk, i)), 1); i++ )
519 #define Abc_NtkForEachCo( pNtk, pCo, i ) \
520  for ( i = 0; (i < Abc_NtkCoNum(pNtk)) && (((pCo) = Abc_NtkCo(pNtk, i)), 1); i++ )
521 #define Abc_NtkForEachLiPo( pNtk, pCo, i ) \
522  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++ )
523 // fanin and fanouts
524 #define Abc_ObjForEachFanin( pObj, pFanin, i ) \
525  for ( i = 0; (i < Abc_ObjFaninNum(pObj)) && (((pFanin) = Abc_ObjFanin(pObj, i)), 1); i++ )
526 #define Abc_ObjForEachFanout( pObj, pFanout, i ) \
527  for ( i = 0; (i < Abc_ObjFanoutNum(pObj)) && (((pFanout) = Abc_ObjFanout(pObj, i)), 1); i++ )
528 // cubes and literals
529 #define Abc_CubeForEachVar( pCube, Value, i ) \
530  for ( i = 0; (pCube[i] != ' ') && (Value = pCube[i]); i++ )
531 #define Abc_SopForEachCube( pSop, nFanins, pCube ) \
532  for ( pCube = (pSop); *pCube; pCube += (nFanins) + 3 )
533 #define Abc_SopForEachCubePair( pSop, nFanins, pCube, pCube2 ) \
534  Abc_SopForEachCube( pSop, nFanins, pCube ) \
535  Abc_SopForEachCube( pCube + (nFanins) + 3, nFanins, pCube2 )
536 
537 ////////////////////////////////////////////////////////////////////////
538 /// FUNCTION DECLARATIONS ///
539 ////////////////////////////////////////////////////////////////////////
540 
541 /*=== abcAig.c ==========================================================*/
542 extern ABC_DLL Abc_Aig_t * Abc_AigAlloc( Abc_Ntk_t * pNtk );
543 extern ABC_DLL void Abc_AigFree( Abc_Aig_t * pMan );
544 extern ABC_DLL int Abc_AigCleanup( Abc_Aig_t * pMan );
545 extern ABC_DLL int Abc_AigCheck( Abc_Aig_t * pMan );
546 extern ABC_DLL int Abc_AigLevel( Abc_Ntk_t * pNtk );
547 extern ABC_DLL Abc_Obj_t * Abc_AigConst1( Abc_Ntk_t * pNtk );
548 extern ABC_DLL Abc_Obj_t * Abc_AigAnd( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
549 extern ABC_DLL Abc_Obj_t * Abc_AigAndLookup( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
550 extern ABC_DLL Abc_Obj_t * Abc_AigXorLookup( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1, int * pType );
551 extern 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 );
552 extern ABC_DLL Abc_Obj_t * Abc_AigOr( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
553 extern ABC_DLL Abc_Obj_t * Abc_AigXor( Abc_Aig_t * pMan, Abc_Obj_t * p0, Abc_Obj_t * p1 );
554 extern ABC_DLL Abc_Obj_t * Abc_AigMux( Abc_Aig_t * pMan, Abc_Obj_t * pC, Abc_Obj_t * p1, Abc_Obj_t * p0 );
555 extern ABC_DLL Abc_Obj_t * Abc_AigMiter( Abc_Aig_t * pMan, Vec_Ptr_t * vPairs, int fImplic );
556 extern ABC_DLL void Abc_AigReplace( Abc_Aig_t * pMan, Abc_Obj_t * pOld, Abc_Obj_t * pNew, int fUpdateLevel );
557 extern ABC_DLL void Abc_AigDeleteNode( Abc_Aig_t * pMan, Abc_Obj_t * pOld );
558 extern ABC_DLL void Abc_AigRehash( Abc_Aig_t * pMan );
559 extern ABC_DLL int Abc_AigNodeHasComplFanoutEdge( Abc_Obj_t * pNode );
561 extern ABC_DLL void Abc_AigPrintNode( Abc_Obj_t * pNode );
562 extern ABC_DLL int Abc_AigNodeIsAcyclic( Abc_Obj_t * pNode, Abc_Obj_t * pRoot );
563 extern ABC_DLL void Abc_AigCheckFaninOrder( Abc_Aig_t * pMan );
564 extern ABC_DLL void Abc_AigSetNodePhases( Abc_Ntk_t * pNtk );
565 extern ABC_DLL Vec_Ptr_t * Abc_AigUpdateStart( Abc_Aig_t * pMan, Vec_Ptr_t ** pvUpdatedNets );
566 extern ABC_DLL void Abc_AigUpdateStop( Abc_Aig_t * pMan );
567 extern ABC_DLL void Abc_AigUpdateReset( Abc_Aig_t * pMan );
568 /*=== abcAttach.c ==========================================================*/
569 extern ABC_DLL int Abc_NtkAttach( Abc_Ntk_t * pNtk );
570 /*=== abcBarBuf.c ==========================================================*/
571 extern ABC_DLL Abc_Ntk_t * Abc_NtkToBarBufs( Abc_Ntk_t * pNtk );
572 extern ABC_DLL Abc_Ntk_t * Abc_NtkFromBarBufs( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtk );
574 extern ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsFromBuffers( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtk );
575 /*=== abcBlifMv.c ==========================================================*/
576 extern ABC_DLL void Abc_NtkStartMvVars( Abc_Ntk_t * pNtk );
577 extern ABC_DLL void Abc_NtkFreeMvVars( Abc_Ntk_t * pNtk );
578 extern ABC_DLL void Abc_NtkSetMvVarValues( Abc_Obj_t * pObj, int nValues );
580 extern ABC_DLL Abc_Ntk_t * Abc_NtkInsertBlifMv( Abc_Ntk_t * pNtkBase, Abc_Ntk_t * pNtkLogic );
581 extern ABC_DLL int Abc_NtkConvertToBlifMv( Abc_Ntk_t * pNtk );
582 extern ABC_DLL char * Abc_NodeConvertSopToMvSop( int nVars, Vec_Int_t * vSop0, Vec_Int_t * vSop1 );
583 extern ABC_DLL int Abc_NodeEvalMvCost( int nVars, Vec_Int_t * vSop0, Vec_Int_t * vSop1 );
584 /*=== abcBalance.c ==========================================================*/
585 extern ABC_DLL Abc_Ntk_t * Abc_NtkBalance( Abc_Ntk_t * pNtk, int fDuplicate, int fSelective, int fUpdateLevel );
586 /*=== abcCheck.c ==========================================================*/
587 extern ABC_DLL int Abc_NtkCheck( Abc_Ntk_t * pNtk );
588 extern ABC_DLL int Abc_NtkCheckRead( Abc_Ntk_t * pNtk );
589 extern ABC_DLL int Abc_NtkDoCheck( Abc_Ntk_t * pNtk );
590 extern ABC_DLL int Abc_NtkCheckObj( Abc_Ntk_t * pNtk, Abc_Obj_t * pObj );
591 extern ABC_DLL int Abc_NtkCompareSignals( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fOnlyPis, int fComb );
592 extern ABC_DLL int Abc_NtkIsAcyclicHierarchy( Abc_Ntk_t * pNtk );
593 extern ABC_DLL int Abc_NtkCheckUniqueCiNames( Abc_Ntk_t * pNtk );
594 extern ABC_DLL int Abc_NtkCheckUniqueCoNames( Abc_Ntk_t * pNtk );
595 extern ABC_DLL int Abc_NtkCheckUniqueCioNames( Abc_Ntk_t * pNtk );
596 /*=== abcCollapse.c ==========================================================*/
597 extern ABC_DLL Abc_Ntk_t * Abc_NtkCollapse( Abc_Ntk_t * pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fVerbose );
598 /*=== abcCut.c ==========================================================*/
599 extern ABC_DLL void * Abc_NodeGetCutsRecursive( void * p, Abc_Obj_t * pObj, int fDag, int fTree );
600 extern ABC_DLL void * Abc_NodeGetCuts( void * p, Abc_Obj_t * pObj, int fDag, int fTree );
601 extern ABC_DLL void Abc_NodeGetCutsSeq( void * p, Abc_Obj_t * pObj, int fFirst );
602 extern ABC_DLL void * Abc_NodeReadCuts( void * p, Abc_Obj_t * pObj );
603 extern ABC_DLL void Abc_NodeFreeCuts( void * p, Abc_Obj_t * pObj );
604 /*=== abcDar.c ============================================================*/
605 extern ABC_DLL int Abc_NtkPhaseFrameNum( Abc_Ntk_t * pNtk );
606 extern ABC_DLL int Abc_NtkDarPrintCone( Abc_Ntk_t * pNtk );
607 extern ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor( Abc_Ntk_t * pNtk, int fUpdateLevel, int fVerbose );
608 extern 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 );
609 /*=== abcDelay.c ==========================================================*/
610 extern ABC_DLL float Abc_NtkDelayTraceLut( Abc_Ntk_t * pNtk, int fUseLutLib );
611 /*=== abcDfs.c ==========================================================*/
612 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfs( Abc_Ntk_t * pNtk, int fCollectAll );
613 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
614 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverse( Abc_Ntk_t * pNtk );
615 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
616 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodesContained( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
617 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeq( Abc_Ntk_t * pNtk );
619 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsIter( Abc_Ntk_t * pNtk, int fCollectAll );
620 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsIterNodes( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots );
621 extern ABC_DLL Vec_Ptr_t * Abc_NtkDfsHie( Abc_Ntk_t * pNtk, int fCollectAll );
622 extern ABC_DLL int Abc_NtkIsDfsOrdered( Abc_Ntk_t * pNtk );
624 extern ABC_DLL Vec_Ptr_t * Abc_NtkSupport( Abc_Ntk_t * pNtk );
625 extern ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport( Abc_Ntk_t * pNtk, Abc_Obj_t ** ppNodes, int nNodes );
626 extern ABC_DLL Vec_Ptr_t * Abc_AigDfs( Abc_Ntk_t * pNtk, int fCollectAll, int fCollectCos );
627 extern ABC_DLL Vec_Ptr_t * Abc_AigDfsMap( Abc_Ntk_t * pNtk );
628 extern ABC_DLL Vec_Vec_t * Abc_DfsLevelized( Abc_Obj_t * pNode, int fTfi );
629 extern ABC_DLL Vec_Vec_t * Abc_NtkLevelize( Abc_Ntk_t * pNtk );
630 extern ABC_DLL int Abc_NtkLevel( Abc_Ntk_t * pNtk );
631 extern ABC_DLL int Abc_NtkLevelReverse( Abc_Ntk_t * pNtk );
632 extern ABC_DLL int Abc_NtkIsAcyclic( Abc_Ntk_t * pNtk );
633 extern ABC_DLL int Abc_NtkIsAcyclicWithBoxes( Abc_Ntk_t * pNtk );
634 extern ABC_DLL Vec_Ptr_t * Abc_AigGetLevelizedOrder( Abc_Ntk_t * pNtk, int fCollectCis );
635 /*=== abcFanio.c ==========================================================*/
636 extern ABC_DLL void Abc_ObjAddFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFanin );
637 extern ABC_DLL void Abc_ObjDeleteFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFanin );
638 extern ABC_DLL void Abc_ObjRemoveFanins( Abc_Obj_t * pObj );
639 extern ABC_DLL void Abc_ObjPatchFanin( Abc_Obj_t * pObj, Abc_Obj_t * pFaninOld, Abc_Obj_t * pFaninNew );
640 extern ABC_DLL Abc_Obj_t * Abc_ObjInsertBetween( Abc_Obj_t * pNodeIn, Abc_Obj_t * pNodeOut, Abc_ObjType_t Type );
641 extern ABC_DLL void Abc_ObjTransferFanout( Abc_Obj_t * pObjOld, Abc_Obj_t * pObjNew );
642 extern ABC_DLL void Abc_ObjReplace( Abc_Obj_t * pObjOld, Abc_Obj_t * pObjNew );
643 extern ABC_DLL int Abc_ObjFanoutFaninNum( Abc_Obj_t * pFanout, Abc_Obj_t * pFanin );
644 /*=== abcFanOrder.c ==========================================================*/
645 extern ABC_DLL int Abc_NtkMakeLegit( Abc_Ntk_t * pNtk );
646 /*=== abcFraig.c ==========================================================*/
647 extern ABC_DLL Abc_Ntk_t * Abc_NtkFraig( Abc_Ntk_t * pNtk, void * pParams, int fAllNodes, int fExdc );
648 extern ABC_DLL void * Abc_NtkToFraig( Abc_Ntk_t * pNtk, void * pParams, int fAllNodes, int fExdc );
649 extern ABC_DLL Abc_Ntk_t * Abc_NtkFraigTrust( Abc_Ntk_t * pNtk );
650 extern ABC_DLL int Abc_NtkFraigStore( Abc_Ntk_t * pNtk );
652 extern ABC_DLL void Abc_NtkFraigStoreClean();
653 /*=== abcFunc.c ==========================================================*/
654 extern ABC_DLL int Abc_NtkSopToBdd( Abc_Ntk_t * pNtk );
655 extern ABC_DLL int Abc_NtkBddToSop( Abc_Ntk_t * pNtk, int fDirect );
656 extern ABC_DLL void Abc_NodeBddToCnf( Abc_Obj_t * pNode, Mem_Flex_t * pMmMan, Vec_Str_t * vCube, int fAllPrimes, char ** ppSop0, char ** ppSop1 );
657 extern ABC_DLL void Abc_NtkLogicMakeDirectSops( Abc_Ntk_t * pNtk );
658 extern ABC_DLL int Abc_NtkSopToAig( Abc_Ntk_t * pNtk );
659 extern ABC_DLL int Abc_NtkAigToBdd( Abc_Ntk_t * pNtk );
661 extern ABC_DLL int Abc_NtkMapToSop( Abc_Ntk_t * pNtk );
662 extern ABC_DLL int Abc_NtkToSop( Abc_Ntk_t * pNtk, int fDirect );
663 extern ABC_DLL int Abc_NtkToBdd( Abc_Ntk_t * pNtk );
664 extern ABC_DLL int Abc_NtkToAig( Abc_Ntk_t * pNtk );
665 /*=== abcHaig.c ==========================================================*/
666 extern ABC_DLL int Abc_NtkHaigStart( Abc_Ntk_t * pNtk );
667 extern ABC_DLL int Abc_NtkHaigStop( Abc_Ntk_t * pNtk );
668 extern ABC_DLL Abc_Ntk_t * Abc_NtkHaigUse( Abc_Ntk_t * pNtk );
669 /*=== abcHie.c ==========================================================*/
672 extern ABC_DLL Abc_Ntk_t * Abc_NtkInsertNewLogic( Abc_Ntk_t * pNtkH, Abc_Ntk_t * pNtkL );
673 extern ABC_DLL void Abc_NtkPrintBoxInfo( Abc_Ntk_t * pNtk );
674 /*=== abcHieGia.c ==========================================================*/
675 extern ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia( Abc_Ntk_t * pNtk, Vec_Ptr_t ** pvBuffers, int fVerbose );
676 extern ABC_DLL void Abc_NtkInsertHierarchyGia( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNew, int fVerbose );
677 /*=== abcLatch.c ==========================================================*/
678 extern ABC_DLL int Abc_NtkLatchIsSelfFeed( Abc_Obj_t * pLatch );
679 extern ABC_DLL int Abc_NtkCountSelfFeedLatches( Abc_Ntk_t * pNtk );
680 extern ABC_DLL int Abc_NtkRemoveSelfFeedLatches( Abc_Ntk_t * pNtk );
682 extern ABC_DLL char * Abc_NtkCollectLatchValuesStr( Abc_Ntk_t * pNtk );
683 extern ABC_DLL void Abc_NtkInsertLatchValues( Abc_Ntk_t * pNtk, Vec_Int_t * vValues );
684 extern ABC_DLL Abc_Obj_t * Abc_NtkAddLatch( Abc_Ntk_t * pNtk, Abc_Obj_t * pDriver, Abc_InitType_t Init );
685 extern ABC_DLL void Abc_NtkConvertDcLatches( Abc_Ntk_t * pNtk );
687  /*=== abcLib.c ==========================================================*/
688 extern ABC_DLL Abc_Des_t * Abc_DesCreate( char * pName );
689 extern ABC_DLL void Abc_DesCleanManPointer( Abc_Des_t * p, void * pMan );
690 extern ABC_DLL void Abc_DesFree( Abc_Des_t * p, Abc_Ntk_t * pNtk );
691 extern ABC_DLL Abc_Des_t * Abc_DesDup( Abc_Des_t * p );
692 extern ABC_DLL void Abc_DesPrint( Abc_Des_t * p );
693 extern ABC_DLL int Abc_DesAddModel( Abc_Des_t * p, Abc_Ntk_t * pNtk );
694 extern ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName( Abc_Des_t * p, char * pName );
697 /*=== abcLog.c ==========================================================*/
698 extern ABC_DLL void Abc_NtkWriteLogFile( char * pFileName, Abc_Cex_t * pSeqCex, int Status, int nFrames, char * pCommand );
699 /*=== abcMap.c ==========================================================*/
700 extern ABC_DLL Abc_Obj_t * Abc_NtkFetchTwinNode( Abc_Obj_t * pNode );
701 /*=== abcMiter.c ==========================================================*/
702 extern ABC_DLL int Abc_NtkMinimumBase( Abc_Ntk_t * pNtk );
703 extern ABC_DLL int Abc_NodeMinimumBase( Abc_Obj_t * pNode );
704 extern ABC_DLL int Abc_NtkRemoveDupFanins( Abc_Ntk_t * pNtk );
705 extern ABC_DLL int Abc_NodeRemoveDupFanins( Abc_Obj_t * pNode );
706 /*=== abcMiter.c ==========================================================*/
707 extern ABC_DLL Abc_Ntk_t * Abc_NtkMiter( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fComb, int nPartSize, int fImplic, int fMulti );
708 extern ABC_DLL void Abc_NtkMiterAddCone( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkMiter, Abc_Obj_t * pNode );
709 extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterAnd( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fOr, int fCompl2 );
710 extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterCofactor( Abc_Ntk_t * pNtk, Vec_Int_t * vPiValues );
711 extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterForCofactors( Abc_Ntk_t * pNtk, int Out, int In1, int In2 );
712 extern ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantify( Abc_Ntk_t * pNtk, int In, int fExist );
714 extern ABC_DLL int Abc_NtkMiterIsConstant( Abc_Ntk_t * pMiter );
715 extern ABC_DLL void Abc_NtkMiterReport( Abc_Ntk_t * pMiter );
716 extern ABC_DLL Abc_Ntk_t * Abc_NtkFrames( Abc_Ntk_t * pNtk, int nFrames, int fInitial, int fVerbose );
717 extern ABC_DLL int Abc_NtkCombinePos( Abc_Ntk_t * pNtk, int fAnd, int fXor );
718 /*=== abcNames.c ====================================================*/
719 extern ABC_DLL char * Abc_ObjName( Abc_Obj_t * pNode );
720 extern ABC_DLL char * Abc_ObjAssignName( Abc_Obj_t * pObj, char * pName, char * pSuffix );
721 extern ABC_DLL char * Abc_ObjNamePrefix( Abc_Obj_t * pObj, char * pPrefix );
722 extern ABC_DLL char * Abc_ObjNameSuffix( Abc_Obj_t * pObj, char * pSuffix );
723 extern ABC_DLL char * Abc_ObjNameDummy( char * pPrefix, int Num, int nDigits );
724 extern ABC_DLL void Abc_NtkTrasferNames( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
725 extern ABC_DLL void Abc_NtkTrasferNamesNoLatches( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
727 extern ABC_DLL Vec_Ptr_t * Abc_NodeGetFakeNames( int nNames );
728 extern ABC_DLL void Abc_NodeFreeNames( Vec_Ptr_t * vNames );
729 extern ABC_DLL char ** Abc_NtkCollectCioNames( Abc_Ntk_t * pNtk, int fCollectCos );
730 extern ABC_DLL int Abc_NodeCompareNames( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
731 extern ABC_DLL void Abc_NtkOrderObjsByName( Abc_Ntk_t * pNtk, int fComb );
732 extern ABC_DLL void Abc_NtkAddDummyPiNames( Abc_Ntk_t * pNtk );
733 extern ABC_DLL void Abc_NtkAddDummyPoNames( Abc_Ntk_t * pNtk );
734 extern ABC_DLL void Abc_NtkAddDummyBoxNames( Abc_Ntk_t * pNtk );
735 extern ABC_DLL void Abc_NtkShortNames( Abc_Ntk_t * pNtk );
736 extern ABC_DLL void Abc_NtkStartNameIds( Abc_Ntk_t * p );
737 extern ABC_DLL void Abc_NtkTransferNameIds( Abc_Ntk_t * p, Abc_Ntk_t * pNew );
738 extern ABC_DLL void Abc_NtkUpdateNameIds( Abc_Ntk_t * p );
739 /*=== abcNetlist.c ==========================================================*/
740 extern ABC_DLL Abc_Ntk_t * Abc_NtkToLogic( Abc_Ntk_t * pNtk );
741 extern ABC_DLL Abc_Ntk_t * Abc_NtkToNetlist( Abc_Ntk_t * pNtk );
743 /*=== abcNtbdd.c ==========================================================*/
744 extern ABC_DLL Abc_Ntk_t * Abc_NtkDeriveFromBdd( void * dd, void * bFunc, char * pNamePo, Vec_Ptr_t * vNamesPi );
745 extern ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes( Abc_Ntk_t * pNtk );
746 extern ABC_DLL void * Abc_NtkBuildGlobalBdds( Abc_Ntk_t * pNtk, int fBddSizeMax, int fDropInternal, int fReorder, int fVerbose );
747 extern ABC_DLL void * Abc_NtkFreeGlobalBdds( Abc_Ntk_t * pNtk, int fFreeMan );
748 extern ABC_DLL int Abc_NtkSizeOfGlobalBdds( Abc_Ntk_t * pNtk );
749 /*=== abcNtk.c ==========================================================*/
750 extern ABC_DLL Abc_Ntk_t * Abc_NtkAlloc( Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan );
753 extern ABC_DLL void Abc_NtkFinalize( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkNew );
754 extern ABC_DLL Abc_Ntk_t * Abc_NtkStartRead( char * pName );
755 extern ABC_DLL void Abc_NtkFinalizeRead( Abc_Ntk_t * pNtk );
756 extern ABC_DLL Abc_Ntk_t * Abc_NtkDup( Abc_Ntk_t * pNtk );
757 extern ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs( Abc_Ntk_t * pNtk );
759 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode, char * pNodeName, int fUseAllCis );
760 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateConeArray( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, int fUseAllCis );
761 extern ABC_DLL void Abc_NtkAppendToCone( Abc_Ntk_t * pNtkNew, Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots );
762 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode, char * pNodeName );
763 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget( Abc_Ntk_t * pNtk, Vec_Ptr_t * vRoots, Vec_Int_t * vValues );
764 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode( Abc_Ntk_t * pNtk, Abc_Obj_t * pNode );
765 extern ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNode( char * pSop );
766 extern ABC_DLL void Abc_NtkDelete( Abc_Ntk_t * pNtk );
767 extern ABC_DLL void Abc_NtkFixNonDrivenNets( Abc_Ntk_t * pNtk );
768 extern ABC_DLL void Abc_NtkMakeComb( Abc_Ntk_t * pNtk, int fRemoveLatches );
769 extern ABC_DLL void Abc_NtkPermute( Abc_Ntk_t * pNtk, int fInputs, int fOutputs, int fFlops, char * pFlopPermFile );
770 extern ABC_DLL void Abc_NtkUnpermute( Abc_Ntk_t * pNtk );
771 /*=== abcObj.c ==========================================================*/
772 extern ABC_DLL Abc_Obj_t * Abc_ObjAlloc( Abc_Ntk_t * pNtk, Abc_ObjType_t Type );
773 extern ABC_DLL void Abc_ObjRecycle( Abc_Obj_t * pObj );
774 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateObj( Abc_Ntk_t * pNtk, Abc_ObjType_t Type );
775 extern ABC_DLL void Abc_NtkDeleteObj( Abc_Obj_t * pObj );
776 extern ABC_DLL void Abc_NtkDeleteObjPo( Abc_Obj_t * pObj );
777 extern ABC_DLL void Abc_NtkDeleteObj_rec( Abc_Obj_t * pObj, int fOnlyNodes );
778 extern ABC_DLL void Abc_NtkDeleteAll_rec( Abc_Obj_t * pObj );
779 extern ABC_DLL Abc_Obj_t * Abc_NtkDupObj( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pObj, int fCopyName );
780 extern ABC_DLL Abc_Obj_t * Abc_NtkDupBox( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pBox, int fCopyName );
781 extern ABC_DLL Abc_Obj_t * Abc_NtkCloneObj( Abc_Obj_t * pNode );
782 extern ABC_DLL Abc_Obj_t * Abc_NtkFindNode( Abc_Ntk_t * pNtk, char * pName );
783 extern ABC_DLL Abc_Obj_t * Abc_NtkFindNet( Abc_Ntk_t * pNtk, char * pName );
784 extern ABC_DLL Abc_Obj_t * Abc_NtkFindCi( Abc_Ntk_t * pNtk, char * pName );
785 extern ABC_DLL Abc_Obj_t * Abc_NtkFindCo( Abc_Ntk_t * pNtk, char * pName );
786 extern ABC_DLL Abc_Obj_t * Abc_NtkFindOrCreateNet( Abc_Ntk_t * pNtk, char * pName );
789 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv( Abc_Ntk_t * pNtk, Abc_Obj_t * pFanin );
790 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf( Abc_Ntk_t * pNtk, Abc_Obj_t * pFanin );
791 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeAnd( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
792 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeOr( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
793 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeExor( Abc_Ntk_t * pNtk, Vec_Ptr_t * vFanins );
794 extern ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeMux( Abc_Ntk_t * pNtk, Abc_Obj_t * pNodeC, Abc_Obj_t * pNode1, Abc_Obj_t * pNode0 );
795 extern ABC_DLL int Abc_NodeIsConst( Abc_Obj_t * pNode );
796 extern ABC_DLL int Abc_NodeIsConst0( Abc_Obj_t * pNode );
797 extern ABC_DLL int Abc_NodeIsConst1( Abc_Obj_t * pNode );
798 extern ABC_DLL int Abc_NodeIsBuf( Abc_Obj_t * pNode );
799 extern ABC_DLL int Abc_NodeIsInv( Abc_Obj_t * pNode );
800 extern ABC_DLL void Abc_NodeComplement( Abc_Obj_t * pNode );
801 extern ABC_DLL void Abc_NodeComplementInput( Abc_Obj_t * pNode, Abc_Obj_t * pFanin );
802 /*=== abcOdc.c ==========================================================*/
803 typedef struct Odc_Man_t_ Odc_Man_t;
805 extern ABC_DLL void Abc_NtkDontCareClear( Odc_Man_t * p );
806 extern ABC_DLL void Abc_NtkDontCareFree( Odc_Man_t * p );
808 /*=== abcPrint.c ==========================================================*/
809 extern ABC_DLL float Abc_NtkMfsTotalSwitching( Abc_Ntk_t * pNtk );
810 extern 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 );
811 extern ABC_DLL void Abc_NtkPrintIo( FILE * pFile, Abc_Ntk_t * pNtk, int fPrintFlops );
812 extern ABC_DLL void Abc_NtkPrintLatch( FILE * pFile, Abc_Ntk_t * pNtk );
813 extern ABC_DLL void Abc_NtkPrintFanio( FILE * pFile, Abc_Ntk_t * pNtk, int fUsePis );
814 extern ABC_DLL void Abc_NtkPrintFanioNew( FILE * pFile, Abc_Ntk_t * pNtk, int fMffc );
815 extern ABC_DLL void Abc_NodePrintFanio( FILE * pFile, Abc_Obj_t * pNode );
816 extern ABC_DLL void Abc_NtkPrintFactor( FILE * pFile, Abc_Ntk_t * pNtk, int fUseRealNames );
817 extern ABC_DLL void Abc_NodePrintFactor( FILE * pFile, Abc_Obj_t * pNode, int fUseRealNames );
818 extern ABC_DLL void Abc_NtkPrintLevel( FILE * pFile, Abc_Ntk_t * pNtk, int fProfile, int fListNodes, int fVerbose );
819 extern ABC_DLL void Abc_NodePrintLevel( FILE * pFile, Abc_Obj_t * pNode );
820 extern ABC_DLL void Abc_NtkPrintSkews( FILE * pFile, Abc_Ntk_t * pNtk, int fPrintAll );
821 extern ABC_DLL void Abc_ObjPrint( FILE * pFile, Abc_Obj_t * pObj );
822 extern ABC_DLL void Abc_NtkShow6VarFunc( char * pF0, char * pF1 );
823 /*=== abcProve.c ==========================================================*/
824 extern ABC_DLL int Abc_NtkMiterProve( Abc_Ntk_t ** ppNtk, void * pParams );
825 extern ABC_DLL int Abc_NtkIvyProve( Abc_Ntk_t ** ppNtk, void * pPars );
826 /*=== abcRec3.c ==========================================================*/
827 extern ABC_DLL void Abc_NtkRecStart3( Gia_Man_t * p, int nVars, int nCuts, int fFuncOnly, int fVerbose );
828 extern ABC_DLL void Abc_NtkRecStop3();
829 extern ABC_DLL void Abc_NtkRecAdd3( Abc_Ntk_t * pNtk, int fUseSOPB );
830 extern ABC_DLL void Abc_NtkRecPs3(int fPrintLib);
832 extern ABC_DLL int Abc_NtkRecIsRunning3();
833 extern ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t * pGia);
834 extern ABC_DLL int Abc_NtkRecInputNum3();
835 //extern ABC_DLL void Abc_NtkRecFilter3(int nLimit);
836 /*=== abcReconv.c ==========================================================*/
837 extern ABC_DLL Abc_ManCut_t * Abc_NtkManCutStart( int nNodeSizeMax, int nConeSizeMax, int nNodeFanStop, int nConeFanStop );
838 extern ABC_DLL void Abc_NtkManCutStop( Abc_ManCut_t * p );
842 extern ABC_DLL Vec_Ptr_t * Abc_NodeFindCut( Abc_ManCut_t * p, Abc_Obj_t * pRoot, int fContain );
843 extern ABC_DLL void Abc_NodeConeCollect( Abc_Obj_t ** ppRoots, int nRoots, Vec_Ptr_t * vFanins, Vec_Ptr_t * vVisited, int fIncludeFanins );
844 extern ABC_DLL Vec_Ptr_t * Abc_NodeCollectTfoCands( Abc_ManCut_t * p, Abc_Obj_t * pRoot, Vec_Ptr_t * vFanins, int LevelMax );
845 /*=== abcRefs.c ==========================================================*/
846 extern ABC_DLL int Abc_NodeMffcSize( Abc_Obj_t * pNode );
850 extern ABC_DLL int Abc_NodeMffcLabel( Abc_Obj_t * pNode );
851 extern ABC_DLL void Abc_NodeMffcConeSupp( Abc_Obj_t * pNode, Vec_Ptr_t * vCone, Vec_Ptr_t * vSupp );
852 extern ABC_DLL int Abc_NodeDeref_rec( Abc_Obj_t * pNode );
853 extern ABC_DLL int Abc_NodeRef_rec( Abc_Obj_t * pNode );
854 /*=== abcRefactor.c ==========================================================*/
855 extern ABC_DLL int Abc_NtkRefactor( Abc_Ntk_t * pNtk, int nNodeSizeMax, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose );
856 /*=== abcRewrite.c ==========================================================*/
857 extern ABC_DLL int Abc_NtkRewrite( Abc_Ntk_t * pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable );
858 /*=== abcSat.c ==========================================================*/
859 extern 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 );
860 extern ABC_DLL void * Abc_NtkMiterSatCreate( Abc_Ntk_t * pNtk, int fAllPrimes );
861 /*=== abcSop.c ==========================================================*/
862 extern ABC_DLL char * Abc_SopRegister( Mem_Flex_t * pMan, char * pName );
863 extern ABC_DLL char * Abc_SopStart( Mem_Flex_t * pMan, int nCubes, int nVars );
864 extern ABC_DLL char * Abc_SopCreateConst0( Mem_Flex_t * pMan );
865 extern ABC_DLL char * Abc_SopCreateConst1( Mem_Flex_t * pMan );
866 extern ABC_DLL char * Abc_SopCreateAnd2( Mem_Flex_t * pMan, int fCompl0, int fCompl1 );
867 extern ABC_DLL char * Abc_SopCreateAnd( Mem_Flex_t * pMan, int nVars, int * pfCompl );
868 extern ABC_DLL char * Abc_SopCreateNand( Mem_Flex_t * pMan, int nVars );
869 extern ABC_DLL char * Abc_SopCreateOr( Mem_Flex_t * pMan, int nVars, int * pfCompl );
870 extern ABC_DLL char * Abc_SopCreateOrMultiCube( Mem_Flex_t * pMan, int nVars, int * pfCompl );
871 extern ABC_DLL char * Abc_SopCreateNor( Mem_Flex_t * pMan, int nVars );
872 extern ABC_DLL char * Abc_SopCreateXor( Mem_Flex_t * pMan, int nVars );
873 extern ABC_DLL char * Abc_SopCreateXorSpecial( Mem_Flex_t * pMan, int nVars );
874 extern ABC_DLL char * Abc_SopCreateNxor( Mem_Flex_t * pMan, int nVars );
875 extern ABC_DLL char * Abc_SopCreateMux( Mem_Flex_t * pMan );
876 extern ABC_DLL char * Abc_SopCreateInv( Mem_Flex_t * pMan );
877 extern ABC_DLL char * Abc_SopCreateBuf( Mem_Flex_t * pMan );
878 extern ABC_DLL char * Abc_SopCreateFromTruth( Mem_Flex_t * pMan, int nVars, unsigned * pTruth );
879 extern ABC_DLL char * Abc_SopCreateFromIsop( Mem_Flex_t * pMan, int nVars, Vec_Int_t * vCover );
880 extern ABC_DLL int Abc_SopGetCubeNum( char * pSop );
881 extern ABC_DLL int Abc_SopGetLitNum( char * pSop );
882 extern ABC_DLL int Abc_SopGetVarNum( char * pSop );
883 extern ABC_DLL int Abc_SopGetPhase( char * pSop );
884 extern ABC_DLL int Abc_SopGetIthCareLit( char * pSop, int i );
885 extern ABC_DLL void Abc_SopComplement( char * pSop );
886 extern ABC_DLL void Abc_SopComplementVar( char * pSop, int iVar );
887 extern ABC_DLL int Abc_SopIsComplement( char * pSop );
888 extern ABC_DLL int Abc_SopIsConst0( char * pSop );
889 extern ABC_DLL int Abc_SopIsConst1( char * pSop );
890 extern ABC_DLL int Abc_SopIsBuf( char * pSop );
891 extern ABC_DLL int Abc_SopIsInv( char * pSop );
892 extern ABC_DLL int Abc_SopIsAndType( char * pSop );
893 extern ABC_DLL int Abc_SopIsOrType( char * pSop );
894 extern ABC_DLL int Abc_SopIsExorType( char * pSop );
895 extern ABC_DLL int Abc_SopCheck( char * pSop, int nFanins );
896 extern ABC_DLL char * Abc_SopFromTruthBin( char * pTruth );
897 extern ABC_DLL char * Abc_SopFromTruthHex( char * pTruth );
898 extern ABC_DLL char * Abc_SopEncoderPos( Mem_Flex_t * pMan, int iValue, int nValues );
899 extern ABC_DLL char * Abc_SopEncoderLog( Mem_Flex_t * pMan, int iBit, int nValues );
900 extern ABC_DLL char * Abc_SopDecoderPos( Mem_Flex_t * pMan, int nValues );
901 extern ABC_DLL char * Abc_SopDecoderLog( Mem_Flex_t * pMan, int nValues );
902 extern ABC_DLL word Abc_SopToTruth( char * pSop, int nInputs );
903 extern ABC_DLL void Abc_SopToTruth7( char * pSop, int nInputs, word r[2] );
904 extern ABC_DLL void Abc_SopToTruthBig( char * pSop, int nInputs, word ** pVars, word * pCube, word * pRes );
905 /*=== abcStrash.c ==========================================================*/
906 extern ABC_DLL Abc_Ntk_t * Abc_NtkRestrash( Abc_Ntk_t * pNtk, int fCleanup );
907 extern ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero( Abc_Ntk_t * pNtk, int fCleanup );
908 extern ABC_DLL Abc_Ntk_t * Abc_NtkStrash( Abc_Ntk_t * pNtk, int fAllNodes, int fCleanup, int fRecord );
909 extern ABC_DLL Abc_Obj_t * Abc_NodeStrash( Abc_Ntk_t * pNtkNew, Abc_Obj_t * pNode, int fRecord );
910 extern ABC_DLL int Abc_NtkAppend( Abc_Ntk_t * pNtk1, Abc_Ntk_t * pNtk2, int fAddPos );
911 extern ABC_DLL Abc_Ntk_t * Abc_NtkTopmost( Abc_Ntk_t * pNtk, int nLevels );
912 /*=== abcSweep.c ==========================================================*/
913 extern ABC_DLL int Abc_NtkSweep( Abc_Ntk_t * pNtk, int fVerbose );
914 extern ABC_DLL int Abc_NtkCleanup( Abc_Ntk_t * pNtk, int fVerbose );
915 extern ABC_DLL int Abc_NtkCleanupNodes( Abc_Ntk_t * pNtk, Vec_Ptr_t * vNodes, int fVerbose );
916 extern ABC_DLL int Abc_NtkCleanupSeq( Abc_Ntk_t * pNtk, int fLatchSweep, int fAutoSweep, int fVerbose );
917 extern ABC_DLL int Abc_NtkSweepBufsInvs( Abc_Ntk_t * pNtk, int fVerbose );
918 /*=== abcTiming.c ==========================================================*/
929 extern ABC_DLL Abc_Time_t * Abc_NodeReadInputDrive( Abc_Ntk_t * pNtk, int iPi );
930 extern ABC_DLL Abc_Time_t * Abc_NodeReadOutputLoad( Abc_Ntk_t * pNtk, int iPo );
931 extern ABC_DLL float Abc_NodeReadInputDriveWorst( Abc_Ntk_t * pNtk, int iPi );
932 extern ABC_DLL float Abc_NodeReadOutputLoadWorst( Abc_Ntk_t * pNtk, int iPo );
933 extern ABC_DLL void Abc_NtkTimeSetDefaultArrival( Abc_Ntk_t * pNtk, float Rise, float Fall );
934 extern ABC_DLL void Abc_NtkTimeSetDefaultRequired( Abc_Ntk_t * pNtk, float Rise, float Fall );
935 extern ABC_DLL void Abc_NtkTimeSetArrival( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall );
936 extern ABC_DLL void Abc_NtkTimeSetRequired( Abc_Ntk_t * pNtk, int ObjId, float Rise, float Fall );
937 extern ABC_DLL void Abc_NtkTimeSetDefaultInputDrive( Abc_Ntk_t * pNtk, float Rise, float Fall );
938 extern ABC_DLL void Abc_NtkTimeSetDefaultOutputLoad( Abc_Ntk_t * pNtk, float Rise, float Fall );
939 extern ABC_DLL void Abc_NtkTimeSetInputDrive( Abc_Ntk_t * pNtk, int PiNum, float Rise, float Fall );
940 extern ABC_DLL void Abc_NtkTimeSetOutputLoad( Abc_Ntk_t * pNtk, int PoNum, float Rise, float Fall );
941 extern ABC_DLL void Abc_NtkTimeInitialize( Abc_Ntk_t * pNtk, Abc_Ntk_t * pNtkOld );
942 extern ABC_DLL void Abc_ManTimeStop( Abc_ManTime_t * p );
943 extern ABC_DLL void Abc_ManTimeDup( Abc_Ntk_t * pNtkOld, Abc_Ntk_t * pNtkNew );
944 extern ABC_DLL void Abc_NtkSetNodeLevelsArrival( Abc_Ntk_t * pNtk );
945 extern ABC_DLL float * Abc_NtkGetCiArrivalFloats( Abc_Ntk_t * pNtk );
946 extern ABC_DLL float * Abc_NtkGetCoRequiredFloats( Abc_Ntk_t * pNtk );
949 extern ABC_DLL float Abc_NtkDelayTrace( Abc_Ntk_t * pNtk, Abc_Obj_t * pOut, Abc_Obj_t * pIn, int fPrint );
950 extern ABC_DLL int Abc_ObjLevelNew( Abc_Obj_t * pObj );
951 extern ABC_DLL int Abc_ObjReverseLevelNew( Abc_Obj_t * pObj );
952 extern ABC_DLL int Abc_ObjRequiredLevel( Abc_Obj_t * pObj );
953 extern ABC_DLL int Abc_ObjReverseLevel( Abc_Obj_t * pObj );
954 extern ABC_DLL void Abc_ObjSetReverseLevel( Abc_Obj_t * pObj, int LevelR );
955 extern ABC_DLL void Abc_NtkStartReverseLevels( Abc_Ntk_t * pNtk, int nMaxLevelIncrease );
956 extern ABC_DLL void Abc_NtkStopReverseLevels( Abc_Ntk_t * pNtk );
957 extern ABC_DLL void Abc_NtkUpdateLevel( Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
958 extern ABC_DLL void Abc_NtkUpdateReverseLevel( Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
959 extern ABC_DLL void Abc_NtkUpdate( Abc_Obj_t * pObj, Abc_Obj_t * pObjNew, Vec_Vec_t * vLevels );
960 /*=== abcUtil.c ==========================================================*/
961 extern ABC_DLL void * Abc_NtkAttrFree( Abc_Ntk_t * pNtk, int Attr, int fFreeMan );
962 extern ABC_DLL void Abc_NtkOrderCisCos( Abc_Ntk_t * pNtk );
963 extern ABC_DLL int Abc_NtkGetCubeNum( Abc_Ntk_t * pNtk );
964 extern ABC_DLL int Abc_NtkGetCubePairNum( Abc_Ntk_t * pNtk );
965 extern ABC_DLL int Abc_NtkGetLitNum( Abc_Ntk_t * pNtk );
966 extern ABC_DLL int Abc_NtkGetLitFactNum( Abc_Ntk_t * pNtk );
967 extern ABC_DLL int Abc_NtkGetBddNodeNum( Abc_Ntk_t * pNtk );
968 extern ABC_DLL int Abc_NtkGetAigNodeNum( Abc_Ntk_t * pNtk );
969 extern ABC_DLL int Abc_NtkGetClauseNum( Abc_Ntk_t * pNtk );
970 extern ABC_DLL double Abc_NtkGetMappedArea( Abc_Ntk_t * pNtk );
971 extern ABC_DLL int Abc_NtkGetExorNum( Abc_Ntk_t * pNtk );
972 extern ABC_DLL int Abc_NtkGetMuxNum( Abc_Ntk_t * pNtk );
973 extern ABC_DLL int Abc_NtkGetBufNum( Abc_Ntk_t * pNtk );
974 extern ABC_DLL int Abc_NtkGetChoiceNum( Abc_Ntk_t * pNtk );
975 extern ABC_DLL int Abc_NtkGetFaninMax( Abc_Ntk_t * pNtk );
976 extern ABC_DLL int Abc_NtkGetFanoutMax( Abc_Ntk_t * pNtk );
977 extern ABC_DLL int Abc_NtkGetTotalFanins( Abc_Ntk_t * pNtk );
978 extern ABC_DLL void Abc_NtkCleanCopy( Abc_Ntk_t * pNtk );
979 extern ABC_DLL void Abc_NtkCleanCopy_rec( Abc_Ntk_t * pNtk );
980 extern ABC_DLL void Abc_NtkCleanData( Abc_Ntk_t * pNtk );
981 extern ABC_DLL void Abc_NtkFillTemp( Abc_Ntk_t * pNtk );
982 extern ABC_DLL int Abc_NtkCountCopy( Abc_Ntk_t * pNtk );
983 extern ABC_DLL Vec_Ptr_t * Abc_NtkSaveCopy( Abc_Ntk_t * pNtk );
984 extern ABC_DLL void Abc_NtkLoadCopy( Abc_Ntk_t * pNtk, Vec_Ptr_t * vCopies );
985 extern ABC_DLL void Abc_NtkCleanNext( Abc_Ntk_t * pNtk );
986 extern ABC_DLL void Abc_NtkCleanNext_rec( Abc_Ntk_t * pNtk );
987 extern ABC_DLL void Abc_NtkCleanMarkA( Abc_Ntk_t * pNtk );
988 extern ABC_DLL void Abc_NtkCleanMarkB( Abc_Ntk_t * pNtk );
989 extern ABC_DLL void Abc_NtkCleanMarkC( Abc_Ntk_t * pNtk );
990 extern ABC_DLL void Abc_NtkCleanMarkAB( Abc_Ntk_t * pNtk );
991 extern ABC_DLL void Abc_NtkCleanMarkABC( Abc_Ntk_t * pNtk );
992 extern ABC_DLL int Abc_NodeFindFanin( Abc_Obj_t * pNode, Abc_Obj_t * pFanin );
996 extern ABC_DLL int Abc_NtkLogicHasSimpleCos( Abc_Ntk_t * pNtk );
997 extern ABC_DLL int Abc_NtkLogicMakeSimpleCos( Abc_Ntk_t * pNtk, int fDuplicate );
999 extern ABC_DLL int Abc_NodeIsExorType( Abc_Obj_t * pNode );
1000 extern ABC_DLL int Abc_NodeIsMuxType( Abc_Obj_t * pNode );
1002 extern ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux( Abc_Obj_t * pNode, Abc_Obj_t ** ppNodeT, Abc_Obj_t ** ppNodeE );
1003 extern 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 );
1004 extern ABC_DLL void Abc_NodeCollectFanins( Abc_Obj_t * pNode, Vec_Ptr_t * vNodes );
1005 extern ABC_DLL void Abc_NodeCollectFanouts( Abc_Obj_t * pNode, Vec_Ptr_t * vNodes );
1007 extern ABC_DLL int Abc_NodeCompareLevelsIncrease( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
1008 extern ABC_DLL int Abc_NodeCompareLevelsDecrease( Abc_Obj_t ** pp1, Abc_Obj_t ** pp2 );
1009 extern ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts( Abc_Ntk_t * pNtk );
1011 extern ABC_DLL Vec_Int_t * Abc_NtkGetCiIds( Abc_Ntk_t * pNtk );
1012 extern ABC_DLL void Abc_NtkReassignIds( Abc_Ntk_t * pNtk );
1013 extern ABC_DLL int Abc_ObjPointerCompare( void ** pp1, void ** pp2 );
1014 extern ABC_DLL void Abc_NtkTransferCopy( Abc_Ntk_t * pNtk );
1015 extern ABC_DLL void Abc_NtkInvertConstraints( Abc_Ntk_t * pNtk );
1016 extern ABC_DLL void Abc_NtkPrintCiLevels( Abc_Ntk_t * pNtk );
1017 extern ABC_DLL void Abc_NtkReverseTopoOrder( Abc_Ntk_t * pNtk );
1018 extern ABC_DLL int Abc_NtkIsTopo( Abc_Ntk_t * pNtk );
1019 extern ABC_DLL void Abc_NtkTransferPhases( Abc_Ntk_t * pNtkNew, Abc_Ntk_t * pNtk );
1020 
1021 
1022 /*=== abcVerify.c ==========================================================*/
1023 extern ABC_DLL int * Abc_NtkVerifyGetCleanModel( Abc_Ntk_t * pNtk, int nFrames );
1024 extern ABC_DLL int * Abc_NtkVerifySimulatePattern( Abc_Ntk_t * pNtk, int * pModel );
1025 extern ABC_DLL int Abc_NtkIsTrueCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex );
1026 extern ABC_DLL int Abc_NtkIsValidCex( Abc_Ntk_t * pNtk, Abc_Cex_t * pCex );
1027 
1028 
1029 
1031 
1032 
1033 
1034 #endif
1035 
1036 ////////////////////////////////////////////////////////////////////////
1037 /// END OF FILE ///
1038 ////////////////////////////////////////////////////////////////////////
char * memset()
ABC_DLL int Abc_NtkGetBufNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:410
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:3203
ABC_DLL void Abc_NtkStartNameIds(Abc_Ntk_t *p)
Definition: abcNames.c:538
ABC_DLL int Abc_NtkRemoveSelfFeedLatches(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:114
int iTemp
Definition: abc.h:149
ABC_DLL void Abc_NodeGetCutsSeq(void *p, Abc_Obj_t *pObj, int fFirst)
ABC_DLL Vec_Vec_t * Abc_NtkLevelize(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1239
static unsigned Abc_ObjId(Abc_Obj_t *pObj)
Definition: abc.h:329
static Abc_Obj_t * Abc_ObjCopyCond(Abc_Obj_t *pObj)
Definition: abc.h:338
ABC_DLL void Abc_NtkInvertConstraints(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:2204
ABC_DLL int Abc_NtkMakeLegit(Abc_Ntk_t *pNtk)
Definition: abcFanOrder.c:461
static void Abc_NtkSetStep(Abc_Ntk_t *pNtk, int iStep)
Definition: abc.h:280
ABC_DLL char * Abc_SopStart(Mem_Flex_t *pMan, int nCubes, int nVars)
Definition: abcSop.c:76
static void Abc_NodeSetTravId(Abc_Obj_t *p, int TravId)
Definition: abc.h:408
ABC_DLL int Abc_NtkLatchIsSelfFeed(Abc_Obj_t *pLatch)
Definition: abcLatch.c:68
ABC_DLL int Abc_ObjPointerCompare(void **pp1, void **pp2)
Definition: abcUtil.c:1899
ABC_DLL int Abc_NodeCompareNames(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition: abcNames.c:309
Vec_Ptr_t * vAttrs
Definition: abc.h:214
ABC_DLL Abc_Ntk_t * Abc_NtkFrames(Abc_Ntk_t *pNtk, int nFrames, int fInitial, int fVerbose)
Definition: abcMiter.c:772
ABC_DLL void Abc_NtkRecAdd3(Abc_Ntk_t *pNtk, int fUseSOPB)
Definition: abcRec3.c:833
int nObjCounts[ABC_OBJ_NUMBER]
Definition: abc.h:171
ABC_DLL int Abc_NtkGetMuxNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:390
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
Definition: abc.h:251
ABC_DLL void Abc_NtkPrintLevel(FILE *pFile, Abc_Ntk_t *pNtk, int fProfile, int fListNodes, int fVerbose)
Definition: abcPrint.c:866
static Abc_Obj_t * Abc_ObjFromLit(Abc_Ntk_t *p, int iLit)
Definition: abc.h:390
static int Abc_NtkIsLogic(Abc_Ntk_t *pNtk)
Definition: abc.h:250
ABC_DLL Abc_Ntk_t * Abc_NtkTopmost(Abc_Ntk_t *pNtk, int nLevels)
Definition: abcStrash.c:548
Definition: abc.h:91
Vec_Ptr_t * vLtlProperties
Definition: abc.h:169
static int Abc_LatchInit(Abc_Obj_t *pLatch)
Definition: abc.h:425
Vec_Int_t * vLevelsR
Definition: abc.h:196
ABC_DLL void Abc_NtkCleanMarkB(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:682
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Definition: vecPtr.h:42
ABC_DLL int Abc_NtkDarPrintCone(Abc_Ntk_t *pNtk)
Definition: abcDar.c:3911
ABC_DLL int Abc_ObjReverseLevelNew(Abc_Obj_t *pObj)
Definition: abcTiming.c:1078
ABC_DLL void Abc_NtkPrintIo(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintFlops)
Definition: abcPrint.c:436
static int Abc_NtkHasBdd(Abc_Ntk_t *pNtk)
Definition: abc.h:254
static Abc_Obj_t * Abc_ObjFanin1(Abc_Obj_t *pObj)
Definition: abc.h:374
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultArrival(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcTiming.c:67
static int Abc_NtkIsComb(Abc_Ntk_t *pNtk)
Definition: abc.h:297
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_NtkUnpermute(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:2021
ABC_DLL void Abc_NtkMakeComb(Abc_Ntk_t *pNtk, int fRemoveLatches)
Definition: abcNtk.c:1422
ABC_DLL void Abc_NtkCleanMarkABC(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:739
void * pSCLib
Definition: abc.h:206
ABC_DLL Gia_Man_t * Abc_NtkRecGetGia3()
Definition: abcRec3.c:1399
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 int Abc_NtkIsAcyclic(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1422
ABC_DLL Vec_Ptr_t * Abc_AigDfsMap(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1054
static int Abc_NtkHasSop(Abc_Ntk_t *pNtk)
Definition: abc.h:253
ABC_DLL int Abc_NtkGetExorNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:370
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsFromBuffers(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
Definition: abcBarBuf.c:462
ABC_DLL int Abc_SopCheck(char *pSop, int nFanins)
Definition: abcSop.c:823
static int Abc_ObjIsCi(Abc_Obj_t *pObj)
Definition: abc.h:351
unsigned fMarkA
Definition: abc.h:134
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
Definition: abcObj.c:843
Nm_Man_t * pManName
Definition: abc.h:160
ABC_DLL float Abc_NtkDelayTrace(Abc_Ntk_t *pNtk, Abc_Obj_t *pOut, Abc_Obj_t *pIn, int fPrint)
Definition: abcTiming.c:919
ABC_DLL int Abc_NtkDontCareCompute(Odc_Man_t *p, Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves, unsigned *puTruth)
Definition: abcOdc.c:1033
static Abc_Obj_t * Abc_NtkCreateWhitebox(Abc_Ntk_t *pNtk)
Definition: abc.h:310
ABC_DLL int Abc_NtkIsTrueCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
Definition: abcVerify.c:1061
Vec_Int_t * vNameIds
Definition: abc.h:215
ABC_DLL void Abc_NtkAppendToCone(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
Definition: abcNtk.c:969
ABC_DLL Abc_Obj_t * Abc_ObjAlloc(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
DECLARATIONS ///.
Definition: abcObj.c:49
ABC_DLL void Abc_NtkInsertLatchValues(Abc_Ntk_t *pNtk, Vec_Int_t *vValues)
Definition: abcLatch.c:241
Vec_Int_t * vTopo
Definition: abc.h:213
Vec_Ptr_t * vSeqModelVec
Definition: abc.h:200
static int Abc_LatchIsInitNone(Abc_Obj_t *pLatch)
Definition: abc.h:421
ABC_DLL float Abc_NodeReadRequiredAve(Abc_Obj_t *pNode)
Definition: abcTiming.c:91
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
Definition: abc.h:284
static Abc_Ntk_t * Abc_NtkExdc(Abc_Ntk_t *pNtk)
Definition: abc.h:272
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
Definition: vecVec.h:42
int iData
Definition: abc.h:146
ABC_DLL int Abc_NtkGetClauseNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:293
ABC_DLL int * Abc_NtkVerifyGetCleanModel(Abc_Ntk_t *pNtk, int nFrames)
Definition: abcVerify.c:668
ABC_DLL double Abc_NtkGetMappedArea(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:334
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
Definition: abcAig.c:683
static int Abc_ObjIsBo(Abc_Obj_t *pObj)
Definition: abc.h:350
ABC_DLL int Abc_NtkMinimumBase(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcMinBase.c:48
static void * Vec_AttEntry(Vec_Att_t *p, int i)
Definition: vecAtt.h:247
unsigned fCompl0
Definition: abc.h:140
static Llb_Mgr_t * p
Definition: llb3Image.c:950
ABC_DLL void Abc_AigUpdateStop(Abc_Aig_t *pMan)
Definition: abcAig.c:1440
ABC_DLL int Abc_NtkLogicHasSimpleCos(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:909
Abc_Ntk_t * pExdc
Definition: abc.h:201
int nVarsMax
Definition: abcOdc.c:48
static int Abc_ObjFaninC1(Abc_Obj_t *pObj)
Definition: abc.h:378
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Definition: bblif.c:37
Vec_Ptr_t * vBoxes
Definition: abc.h:168
ABC_DLL void Abc_NtkStartMvVars(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
Definition: abcBlifMv.c:46
float AndGateDelay
Definition: abc.h:194
static int Abc_NtkIsNetlist(Abc_Ntk_t *pNtk)
Definition: abc.h:249
int LevelMax
Definition: abc.h:195
ABC_DLL int Abc_AigCheck(Abc_Aig_t *pMan)
Definition: abcAig.c:226
ABC_DLL void Abc_NtkRecPs3(int fPrintLib)
Definition: abcRec3.c:1411
ABC_DLL int Abc_SopIsOrType(char *pSop)
Definition: abcSop.c:772
ABC_DLL Odc_Man_t * Abc_NtkDontCareAlloc(int nVarsMax, int nLevels, int fVerbose, int fVeryVerbose)
FUNCTION DEFINITIONS ///.
Definition: abcOdc.c:162
ABC_DLL char * Abc_SopCreateAnd2(Mem_Flex_t *pMan, int fCompl0, int fCompl1)
Definition: abcSop.c:139
static int Abc_ObjIsLatch(Abc_Obj_t *pObj)
Definition: abc.h:356
static int Abc_InfoIsZero(unsigned *p, int nWords)
Definition: abc.h:239
ABC_DLL void Abc_NtkFillTemp(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:553
ABC_DLL Abc_Des_t * Abc_DesCreate(char *pName)
DECLARATIONS ///.
Definition: abcLib.c:45
Abc_Obj_t * pNode
Definition: abcOdc.c:55
ABC_DLL void Abc_NtkFixNonDrivenNets(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1360
ABC_DLL int Abc_NodeIsConst0(Abc_Obj_t *pNode)
Definition: abcObj.c:860
ABC_DLL Abc_Ntk_t * Abc_NtkCreateConeArray(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, int fUseAllCis)
Definition: abcNtk.c:889
ABC_DLL void Abc_SopToTruthBig(char *pSop, int nInputs, word **pVars, word *pCube, word *pRes)
Definition: abcSop.c:1274
ABC_DLL void Abc_DesCleanManPointer(Abc_Des_t *p, void *pMan)
Definition: abcLib.c:70
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
Definition: abc.h:365
ABC_DLL int Abc_NtkCountCopy(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:572
static int Abc_NtkBoxNum(Abc_Ntk_t *pNtk)
Definition: abc.h:289
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutLarge(Abc_ManCut_t *p)
Definition: abcReconv.c:637
ABC_DLL int Abc_NtkRecInputNum3()
Definition: abcRec3.c:1391
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
Definition: abcStrash.c:265
ABC_DLL void Abc_ObjPrint(FILE *pFile, Abc_Obj_t *pObj)
Definition: abcPrint.c:1287
ABC_DLL void Abc_NtkUpdateLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition: abcTiming.c:1210
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultRequired(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:72
ABC_DLL int Abc_SopGetCubeNum(char *pSop)
Definition: abcSop.c:489
ABC_DLL int Abc_NodeFindFanin(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
Definition: abcUtil.c:758
static Abc_Obj_t * Abc_ObjFanin0Ntk(Abc_Obj_t *pObj)
Definition: abc.h:375
st__table * tModules
Definition: abc.h:224
Vec_Ptr_t * vPios
Definition: abc.h:167
static void * Abc_NtkMvVar(Abc_Ntk_t *pNtk)
Definition: abc.h:435
int nBarBufs2
Definition: abc.h:175
ABC_DLL void Abc_NtkMiterReport(Abc_Ntk_t *pMiter)
Definition: abcMiter.c:724
ABC_DLL int Abc_DesAddModel(Abc_Des_t *p, Abc_Ntk_t *pNtk)
Definition: abcLib.c:226
ABC_DLL void Abc_NtkTimeSetArrival(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
Definition: abcTiming.c:185
static void Abc_NodeSetTravIdPrevious(Abc_Obj_t *p)
Definition: abc.h:410
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition: abcSop.c:162
static void Abc_InfoFill(unsigned *p, int nWords)
Definition: abc.h:237
static int Abc_Var2Lit(int Var, int fCompl)
Definition: abc_global.h:263
static Vec_Int_t * Abc_ObjFanoutVec(Abc_Obj_t *pObj)
Definition: abc.h:332
ABC_DLL char ** Abc_NtkCollectCioNames(Abc_Ntk_t *pNtk, int fCollectCos)
Definition: abcNames.c:278
ABC_DLL char * Abc_SopCreateInv(Mem_Flex_t *pMan)
Definition: abcSop.c:345
ABC_DLL void Abc_NtkCleanMarkC(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:701
static Abc_Obj_t * Abc_ObjChild1Copy(Abc_Obj_t *pObj)
Definition: abc.h:387
ABC_DLL Abc_Ntk_t * Abc_NtkMiterForCofactors(Abc_Ntk_t *pNtk, int Out, int In1, int In2)
Definition: abcMiter.c:514
static int Abc_ObjFaninNum(Abc_Obj_t *pObj)
Definition: abc.h:364
static int Abc_ObjIsBarBuf(Abc_Obj_t *pObj)
Definition: abc.h:360
ABC_DLL void Abc_NtkCleanMarkAB(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:720
static int Abc_NtkHasMapping(Abc_Ntk_t *pNtk)
Definition: abc.h:256
ABC_DLL char * Abc_SopCreateFromIsop(Mem_Flex_t *pMan, int nVars, Vec_Int_t *vCover)
Definition: abcSop.c:416
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:453
static void * Abc_NtkGlobalBdd(Abc_Ntk_t *pNtk)
Definition: abc.h:428
ABC_DLL void Abc_NtkInsertHierarchyGia(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNew, int fVerbose)
Definition: abcHieGia.c:390
static void Abc_ObjSetMvVar(Abc_Obj_t *pObj, void *pV)
Definition: abc.h:439
ABC_DLL void Abc_NtkConvertDcLatches(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:314
ABC_DLL int Abc_SopIsInv(char *pSop)
Definition: abcSop.c:728
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
Definition: abcObj.c:337
Abc_NtkType_t
INCLUDES ///.
Definition: abc.h:54
Vec_Ptr_t * vLeaves
Definition: abcOdc.c:56
ABC_DLL void Abc_NtkShortNames(Abc_Ntk_t *pNtk)
Definition: abcNames.c:490
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
Definition: abc.h:294
ABC_DLL void Abc_NtkTimeSetDefaultArrival(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition: abcTiming.c:155
ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor(Abc_Ntk_t *pNtk, int fUpdateLevel, int fVerbose)
Definition: abcDar.c:3935
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
Definition: abcObj.c:633
ABC_DLL void Abc_AigFree(Abc_Aig_t *pMan)
Definition: abcAig.c:165
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
Definition: abc.h:377
static int Abc_ObjIsPi(Abc_Obj_t *pObj)
Definition: abc.h:347
Vec_Int_t * vGates
Definition: abc.h:207
ABC_DLL void Abc_NtkDeleteObj_rec(Abc_Obj_t *pObj, int fOnlyNodes)
Definition: abcObj.c:273
ABC_DLL int Abc_SopGetLitNum(char *pSop)
Definition: abcSop.c:511
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 Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:419
Vec_Int_t vFanins
Definition: abc.h:143
ABC_DLL float * Abc_NtkGetCoRequiredFloats(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:676
static int Abc_AigNodeIsConst(Abc_Obj_t *pNode)
Definition: abc.h:396
void * pTemp
Definition: abc.h:147
static void Vec_IntSetEntry(Vec_Int_t *p, int i, int Entry)
Definition: bblif.c:418
int fVerbose
Definition: abcOdc.c:50
ABC_DLL int Abc_NtkRemoveDupFanins(Abc_Ntk_t *pNtk)
Definition: abcMinBase.c:116
ABC_DLL Vec_Ptr_t * Abc_AigGetLevelizedOrder(Abc_Ntk_t *pNtk, int fCollectCis)
Definition: abcDfs.c:1649
static Vec_Int_t * Abc_ObjFaninVec(Abc_Obj_t *pObj)
Definition: abc.h:331
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:812
void * pBSMan
Definition: abc.h:205
ABC_DLL Abc_Obj_t * Abc_NtkCloneObj(Abc_Obj_t *pNode)
Definition: abcObj.c:434
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
Definition: abc.h:287
ABC_DLL Abc_Ntk_t * Abc_NtkFlattenLogicHierarchy(Abc_Ntk_t *pNtk)
Definition: abcHie.c:514
static int Abc_LatchIsInit0(Abc_Obj_t *pLatch)
Definition: abc.h:422
int fVeryVerbose
Definition: abcOdc.c:51
static void Abc_LatchSetInitNone(Abc_Obj_t *pLatch)
Definition: abc.h:417
float dTemp
Definition: abc.h:150
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadVisited(Abc_ManCut_t *p)
Definition: abcReconv.c:669
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlist(Abc_Ntk_t *pNtk)
Definition: abcNetlist.c:97
ABC_DLL void Abc_NtkShow6VarFunc(char *pF0, char *pF1)
Definition: abcPrint.c:1590
Vec_Ptr_t * vObjs
Definition: abc.h:162
static int Vec_IntGetEntry(Vec_Int_t *p, int i)
Definition: bblif.c:401
ABC_DLL int Abc_NodeMffcLabelAig(Abc_Obj_t *pNode)
Definition: abcRefs.c:100
static int Abc_ObjIsWhitebox(Abc_Obj_t *pObj)
Definition: abc.h:358
ABC_DLL char * Abc_SopDecoderPos(Mem_Flex_t *pMan, int nValues)
Definition: abcSop.c:1093
static void * Abc_NtkMvVarMan(Abc_Ntk_t *pNtk)
Definition: abc.h:436
ABC_DLL int Abc_NtkCompareSignals(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOnlyPis, int fComb)
Definition: abcCheck.c:741
static Abc_Obj_t * Abc_NtkCi(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:317
static void Abc_NodeSetPersistant(Abc_Obj_t *pNode)
Definition: abc.h:402
char * pName
Definition: abc.h:220
static int Abc_NtkBiNum(Abc_Ntk_t *pNtk)
Definition: abc.h:290
ABC_DLL int Abc_NtkCheckUniqueCioNames(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:919
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcCheck.c:61
static int Abc_NtkIsSopLogic(Abc_Ntk_t *pNtk)
Definition: abc.h:264
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlistBench(Abc_Ntk_t *pNtk)
Definition: abcNetlist.c:122
Abc_Ntk_t * pNetBackup
Definition: abc.h:177
ABC_DLL char * Abc_NtkCollectLatchValuesStr(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:209
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
Definition: abcNames.c:68
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
Definition: abcDfs.c:81
double dTemp
Definition: abc.h:185
Vec_Ptr_t * vPis
Definition: abc.h:163
ABC_DLL int Abc_SopIsExorType(char *pSop)
Definition: abcSop.c:802
ABC_DLL int Abc_NtkCleanup(Abc_Ntk_t *pNtk, int fVerbose)
Definition: abcSweep.c:476
ABC_DLL Vec_Ptr_t * Abc_NodeGetFaninNames(Abc_Obj_t *pNode)
Definition: abcNames.c:199
ABC_DLL int Abc_NtkMiterProve(Abc_Ntk_t **ppNtk, void *pParams)
FUNCTION DEFINITIONS ///.
Definition: abcProve.c:59
ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero(Abc_Ntk_t *pNtk, int fCleanup)
Definition: abcStrash.c:181
static int Abc_NtkHasBlifMv(Abc_Ntk_t *pNtk)
Definition: abc.h:257
static unsigned Abc_InfoRandomWord()
MACRO DEFINITIONS ///.
Definition: abc.h:234
ABC_DLL void Abc_AigRehash(Abc_Aig_t *pMan)
Definition: abcAig.c:628
ABC_DLL Abc_Time_t * Abc_NodeReadRequired(Abc_Obj_t *pNode)
Definition: abcTiming.c:82
static int Abc_NodeIsTravIdPrevious(Abc_Obj_t *p)
Definition: abc.h:412
ABC_DLL Abc_Obj_t * Abc_NtkCreateObj(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
Definition: abcObj.c:106
ABC_DLL void Abc_NtkPrintCiLevels(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:2228
ABC_DLL int Abc_NtkGetCubeNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:112
int Id
Definition: abc.h:184
static int Abc_NtkWhiteboxNum(Abc_Ntk_t *pNtk)
Definition: abc.h:295
ABC_DLL int Abc_NodeRef_rec(Abc_Obj_t *pNode)
Definition: abcRefs.c:241
ABC_DLL void Abc_NtkFinalizeRead(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:360
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIterNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
Definition: abcDfs.c:580
static Abc_Obj_t * Abc_NtkObj(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:314
static int Vec_PtrSize(Vec_Ptr_t *p)
Definition: vecPtr.h:295
ABC_DLL void Abc_NtkPrintFanio(FILE *pFile, Abc_Ntk_t *pNtk, int fUsePis)
Definition: abcPrint.c:546
unsigned Type
Definition: abc.h:133
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_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:487
ABC_DLL float Abc_NtkDelayTraceLut(Abc_Ntk_t *pNtk, int fUseLutLib)
Definition: abcSpeedup.c:100
ABC_DLL int Abc_NtkLevelReverse(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1315
static void Abc_LatchSetInitDc(Abc_Obj_t *pLatch)
Definition: abc.h:420
static void Abc_ObjSetLevel(Abc_Obj_t *pObj, int Level)
Definition: abc.h:341
unsigned fCompl1
Definition: abc.h:141
static int Abc_NtkIsAigLogic(Abc_Ntk_t *pNtk)
Definition: abc.h:266
int nWords
Definition: abcNpn.c:127
ABC_DLL void * Abc_NtkMiterSatCreate(Abc_Ntk_t *pNtk, int fAllPrimes)
Definition: abcSat.c:629
ABC_DLL int Abc_DesFindTopLevelModels(Abc_Des_t *p)
Definition: abcLib.c:293
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
Definition: abc.h:373
ABC_DLL char * Abc_SopFromTruthHex(char *pTruth)
Definition: abcSop.c:948
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:430
ABC_DLL Abc_Ntk_t * Abc_NtkDupTransformMiter(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:563
static int Abc_ObjFaninId0(Abc_Obj_t *pObj)
Definition: abc.h:367
ABC_DLL char * Abc_SopCreateConst0(Mem_Flex_t *pMan)
Definition: abcSop.c:123
ABC_DLL int Abc_NtkRecIsRunning3()
Definition: abcRec3.c:1395
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeq(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:397
ABC_DLL int Abc_NtkConvertToBlifMv(Abc_Ntk_t *pNtk)
Definition: abcBlifMv.c:954
DECLARATIONS ///.
Definition: abcTiming.c:32
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
Definition: abc.h:288
DECLARATIONS ///.
Definition: abcAig.c:52
ABC_DLL char * Abc_SopCreateNand(Mem_Flex_t *pMan, int nVars)
Definition: abcSop.c:184
Vec_Int_t * vObjPerm
Definition: abc.h:212
ABC_DLL int Abc_SopIsBuf(char *pSop)
Definition: abcSop.c:708
ABC_DLL void Abc_NtkPrintLatch(FILE *pFile, Abc_Ntk_t *pNtk)
Definition: abcPrint.c:473
ABC_DLL float Abc_NtkMfsTotalSwitching(Abc_Ntk_t *pNtk)
Definition: abcPrint.c:132
ABC_DLL Abc_Ntk_t * Abc_NtkFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
FUNCTION DEFINITIONS ///.
Definition: abcFraig.c:58
static int Abc_ObjIsNone(Abc_Obj_t *pObj)
Definition: abc.h:346
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:1190
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:1233
#define ABC_DLL
Definition: abc_global.h:53
ABC_DLL Abc_Ntk_t * Abc_NtkInsertBlifMv(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtkLogic)
Definition: abcBlifMv.c:909
static void Abc_ObjSetData(Abc_Obj_t *pObj, void *pData)
Definition: abc.h:343
unsigned Level
Definition: abc.h:142
static int Abc_ObjIsCo(Abc_Obj_t *pObj)
Definition: abc.h:352
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverse(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:190
ABC_DLL int Abc_NodeIsMuxControlType(Abc_Obj_t *pNode)
Definition: abcUtil.c:1357
ABC_DLL Vec_Ptr_t * Abc_NodeFindCut(Abc_ManCut_t *p, Abc_Obj_t *pRoot, int fContain)
Definition: abcReconv.c:253
ABC_DLL Abc_Obj_t * Abc_NtkFindCi(Abc_Ntk_t *pNtk, char *pName)
Definition: abcObj.c:530
static Abc_Ntk_t * Abc_ObjModel(Abc_Obj_t *pObj)
Definition: abc.h:335
static Abc_Obj_t * Abc_NtkCo(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:318
ABC_DLL Abc_Time_t * Abc_NodeReadArrival(Abc_Obj_t *pNode)
Definition: abcTiming.c:77
ABC_DLL char * Abc_SopCreateConst1(Mem_Flex_t *pMan)
Definition: abcSop.c:107
int nObjs
Definition: abc.h:172
static Abc_Obj_t * Abc_ObjChild1Data(Abc_Obj_t *pObj)
Definition: abc.h:389
static void * Abc_ObjGlobalBdd(Abc_Obj_t *pObj)
Definition: abc.h:431
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition: abcFanio.c:84
ABC_DLL char * Abc_SopCreateBuf(Mem_Flex_t *pMan)
Definition: abcSop.c:361
int * pModel
Definition: abc.h:198
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
Definition: abcNtk.c:50
ABC_DLL void Abc_NtkPrintFanioNew(FILE *pFile, Abc_Ntk_t *pNtk, int fMffc)
Definition: abcPrint.c:625
void * pManFunc
Definition: abc.h:221
ABC_DLL int Abc_NtkGetBddNodeNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:240
ABC_DLL void Abc_NtkReassignIds(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1769
ABC_DLL void Abc_ObjRecycle(Abc_Obj_t *pObj)
Definition: abcObj.c:74
ABC_DLL int Abc_NodeIsBuf(Abc_Obj_t *pNode)
Definition: abcObj.c:920
void * pData
Definition: abc.h:203
ABC_DLL int Abc_NtkIsAcyclicWithBoxes(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1510
Vec_Ptr_t * vCis
Definition: abc.h:165
int iStep
Definition: abc.h:178
ABC_DLL void Abc_SopComplementVar(char *pSop, int iVar)
Definition: abcSop.c:630
ABC_DLL Abc_Ntk_t * Abc_NtkToLogic(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcNetlist.c:52
ABC_DLL Abc_Obj_t * Abc_AigXor(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
Definition: abcAig.c:735
Abc_NtkFunc_t
Definition: abc.h:63
static void Abc_InfoNot(unsigned *p, int nWords)
Definition: abc.h:238
static Abc_Obj_t * Abc_NtkCreateBo(Abc_Ntk_t *pNtk)
Definition: abc.h:306
ABC_DLL Abc_Ntk_t * Abc_NtkStrashBlifMv(Abc_Ntk_t *pNtk)
Definition: abcBlifMv.c:380
ABC_DLL Abc_Ntk_t * Abc_NtkFromBarBufs(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
Definition: abcBarBuf.c:263
ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName)
Definition: abcNtk.c:1022
static Abc_Obj_t * Abc_ObjChild0(Abc_Obj_t *pObj)
Definition: abc.h:383
ABC_DLL Abc_Ntk_t * Abc_NtkCollapse(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fVerbose)
FUNCTION DEFINITIONS ///.
Definition: abcCollapse.c:49
ABC_DLL void Abc_ObjPatchFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFaninOld, Abc_Obj_t *pFaninNew)
Definition: abcFanio.c:172
ABC_DLL void Abc_NodeFreeNames(Vec_Ptr_t *vNames)
Definition: abcNames.c:257
ABC_DLL Abc_Obj_t * Abc_NodeFindNonCoFanout(Abc_Obj_t *pNode)
Definition: abcUtil.c:800
ABC_DLL void * Abc_NtkFreeGlobalBdds(Abc_Ntk_t *pNtk, int fFreeMan)
Definition: abcNtbdd.c:476
void * pManFunc
Definition: abc.h:191
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
Definition: abc.h:355
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
Definition: abc.h:293
static void Abc_NodeSetTravIdCurrentId(Abc_Ntk_t *p, int i)
Definition: abc.h:413
ABC_DLL void Abc_NtkCleanMarkA(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:663
ABC_DLL void * Abc_NodeReadCuts(void *p, Abc_Obj_t *pObj)
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_NodePrintFanio(FILE *pFile, Abc_Obj_t *pNode)
Definition: abcPrint.c:752
ABC_DLL int Abc_NodeCompareLevelsIncrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition: abcUtil.c:1649
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
Definition: abcNames.c:398
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)
Definition: abcPrint.c:207
static int Abc_LitIsCompl(int Lit)
Definition: abc_global.h:265
ABC_DLL void * Abc_NodeGetCuts(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
static int Abc_NtkIsBlifMvNetlist(Abc_Ntk_t *pNtk)
Definition: abc.h:263
ABC_DLL void Abc_DesFree(Abc_Des_t *p, Abc_Ntk_t *pNtk)
Definition: abcLib.c:94
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, char *pName)
DECLARATIONS ///.
Definition: abcSop.c:56
ABC_DLL void Abc_NtkTransferPhases(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk)
Definition: abcUtil.c:2875
static Abc_Obj_t * Abc_ObjChild0Copy(Abc_Obj_t *pObj)
Definition: abc.h:386
ABC_DLL char * Abc_SopDecoderLog(Mem_Flex_t *pMan, int nValues)
Definition: abcSop.c:1129
Abc_Des_t * pLibrary
Definition: abc.h:225
ABC_DLL char * Abc_SopEncoderLog(Mem_Flex_t *pMan, int iBit, int nValues)
Definition: abcSop.c:1049
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition: abcNtk.c:106
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:1073
ABC_DLL Vec_Ptr_t * Abc_NtkCollectObjects(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1725
static void Abc_ObjSetFaninC(Abc_Obj_t *pObj, int i)
Definition: abc.h:380
ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, Vec_Int_t *vValues)
Definition: abcNtk.c:1094
Abc_Obj_t * pCopy
Definition: abc.h:148
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
Definition: abcObj.c:167
ABC_DLL Abc_Ntk_t * Abc_NtkDeriveFromBdd(void *dd, void *bFunc, char *pNamePo, Vec_Ptr_t *vNamesPi)
FUNCTION DEFINITIONS ///.
Definition: abcNtbdd.c:56
ABC_DLL int Abc_NodeIsMuxType(Abc_Obj_t *pNode)
Definition: abcUtil.c:1301
Mem_Fixed_t * pMmObj
Definition: abc.h:189
ABC_DLL void Abc_NodeFreeCuts(void *p, Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkGetAigNodeNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:266
Vec_Ptr_t * vPos
Definition: abc.h:164
ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t *pGia)
Definition: abcRec3.c:567
Vec_Ptr_t * vCos
Definition: abc.h:166
ABC_DLL int Abc_NtkSopToAig(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:612
ABC_DLL int Abc_NodeMffcSizeSupp(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NtkDupBox(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pBox, int fCopyName)
Definition: abcObj.c:407
ABC_DLL int Abc_ObjRequiredLevel(Abc_Obj_t *pObj)
Definition: abcTiming.c:1102
ABC_DLL Abc_Ntk_t * Abc_NtkStartRead(char *pName)
Definition: abcNtk.c:333
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
Definition: abcAig.c:194
static void Abc_InfoCopy(unsigned *p, unsigned *q, int nWords)
Definition: abc.h:241
ABC_DLL void Abc_NtkTrasferNamesNoLatches(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition: abcNames.c:168
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
Definition: abcObj.c:662
static int Abc_NtkHasBlackbox(Abc_Ntk_t *pNtk)
Definition: abc.h:258
static int Abc_ObjLevel(Abc_Obj_t *pObj)
Definition: abc.h:330
Definition: st.h:52
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fDirect)
Definition: abcFunc.c:1124
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_NtkMiter(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fComb, int nPartSize, int fImplic, int fMulti)
FUNCTION DEFINITIONS ///.
Definition: abcMiter.c:56
void * pExcare
Definition: abc.h:202
ABC_DLL int Abc_AigLevel(Abc_Ntk_t *pNtk)
Definition: abcAig.c:292
ABC_DLL int Abc_NtkCleanupNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vNodes, int fVerbose)
Definition: abcSweep.c:501
ABC_DLL int Abc_NtkSopToBdd(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:113
ABC_DLL Abc_Obj_t * Abc_NtkFindNode(Abc_Ntk_t *pNtk, char *pName)
Definition: abcObj.c:456
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)
Definition: abcUtil.c:1481
static void Abc_InfoAnd(unsigned *p, unsigned *q, int nWords)
Definition: abc.h:242
ABC_DLL Vec_Ptr_t * Abc_NodeGetFakeNames(int nNames)
Definition: abcNames.c:221
ABC_DLL Abc_Obj_t * Abc_NtkFindCo(Abc_Ntk_t *pNtk, char *pName)
Definition: abcObj.c:554
static int Abc_NtkIsAigNetlist(Abc_Ntk_t *pNtk)
Definition: abc.h:261
static unsigned Abc_ObjType(Abc_Obj_t *pObj)
Definition: abc.h:328
ABC_DLL char * Abc_SopCreateNxor(Mem_Flex_t *pMan, int nVars)
Definition: abcSop.c:311
unsigned fMarkC
Definition: abc.h:136
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutSmall(Abc_ManCut_t *p)
Definition: abcReconv.c:653
ABC_DLL int Abc_NtkCheckUniqueCoNames(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:885
static int Abc_NodeIsTravIdCurrentId(Abc_Ntk_t *p, int i)
Definition: abc.h:414
ABC_DLL int Abc_NtkCheckRead(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:77
ABC_DLL Abc_Aig_t * Abc_AigAlloc(Abc_Ntk_t *pNtk)
FUNCTION DECLARATIONS ///.
Definition: abcAig.c:128
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
Definition: abcIvy.c:498
void * pGenlib
Definition: abc.h:226
ABC_DLL Abc_Obj_t * Abc_NodeStrash(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pNode, int fRecord)
Definition: abcStrash.c:468
ABC_DLL int Abc_NtkIsAcyclicHierarchy(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:809
static int Abc_NtkBoNum(Abc_Ntk_t *pNtk)
Definition: abc.h:291
static int Abc_ObjFanoutEdgeNum(Abc_Obj_t *pObj, Abc_Obj_t *pFanout)
Definition: abc.h:369
ABC_DLL Abc_Obj_t * Abc_NodeHasUniqueCoFanout(Abc_Obj_t *pNode)
Definition: abcUtil.c:823
static int Vec_IntEntry(Vec_Int_t *p, int i)
Definition: bblif.c:268
ABC_DLL Abc_Obj_t * Abc_AigMiter(Abc_Aig_t *pMan, Vec_Ptr_t *vPairs, int fImplic)
Definition: abcAig.c:789
unsigned __int64 word
DECLARATIONS ///.
Definition: kitPerm.c:36
ABC_DLL char * Abc_SopFromTruthBin(char *pTruth)
Definition: abcSop.c:879
ABC_DLL void Abc_NodePrintFactor(FILE *pFile, Abc_Obj_t *pNode, int fUseRealNames)
Definition: abcPrint.c:825
ABC_DLL int Abc_NtkIsTopo(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:2839
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsToBuffers(Abc_Ntk_t *pNtk)
Definition: abcBarBuf.c:424
ABC_DLL char * Abc_ObjNamePrefix(Abc_Obj_t *pObj, char *pPrefix)
Definition: abcNames.c:85
ABC_DLL Vec_Ptr_t * Abc_NtkConverLatchNamesIntoNumbers(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:368
static void * Vec_AttMan(Vec_Att_t *p)
Definition: vecAtt.h:268
ABC_DLL int Abc_NodeMffcSize(Abc_Obj_t *pNode)
FUNCTION DEFINITIONS ///.
Definition: abcRefs.c:48
ABC_DLL int Abc_NtkRefactor(Abc_Ntk_t *pNtk, int nNodeSizeMax, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose)
FUNCTION DEFINITIONS ///.
Definition: abcRefactor.c:89
ABC_DLL void Abc_NtkDontCareFree(Odc_Man_t *p)
Definition: abcOdc.c:274
ABC_DLL Abc_Obj_t * Abc_NtkFindNet(Abc_Ntk_t *pNtk, char *pName)
Definition: abcObj.c:507
static void Vec_IntFill(Vec_Int_t *p, int nSize, int Fill)
Definition: bblif.c:356
static int Abc_LatchIsInitDc(Abc_Obj_t *pLatch)
Definition: abc.h:424
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
Definition: abcObj.c:692
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeAnd(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition: abcObj.c:722
ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition: abcDfs.c:859
ABC_DLL void Abc_NtkUpdateNameIds(Abc_Ntk_t *p)
Definition: abcNames.c:620
ABC_DLL int Abc_NtkGetCubePairNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:138
ABC_DLL char * Abc_SopCreateXor(Mem_Flex_t *pMan, int nVars)
Definition: abcSop.c:274
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition: abcNtk.c:302
ABC_DLL Vec_Ptr_t * Abc_NtkCollectLatches(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1627
ABC_DLL char * Abc_ObjNameDummy(char *pPrefix, int Num, int nDigits)
Definition: abcNames.c:121
ABC_DLL int Abc_NtkCheckUniqueCiNames(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:854
static int Abc_AigNodeIsAnd(Abc_Obj_t *pNode)
Definition: abc.h:397
ABC_DLL int Abc_AigNodeHasComplFanoutEdgeTrav(Abc_Obj_t *pNode)
Definition: abcAig.c:1251
ABC_DLL void * Abc_NodeGetCutsRecursive(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
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:53
ABC_DLL void Abc_NodeMffcConeSupp(Abc_Obj_t *pNode, Vec_Ptr_t *vCone, Vec_Ptr_t *vSupp)
Definition: abcRefs.c:299
ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName, int fUseAllCis)
Definition: abcNtk.c:819
static void Abc_InfoXor(unsigned *p, unsigned *q, int nWords)
Definition: abc.h:244
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeOr(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition: abcObj.c:752
ABC_DLL void Abc_ObjReplace(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
Definition: abcFanio.c:297
ABC_DLL void Abc_NtkCleanCopy_rec(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:514
void * pManCut
Definition: abc.h:193
ABC_DLL void Abc_NtkTimeInitialize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkOld)
Definition: abcTiming.c:321
ABC_DLL int Abc_NtkSweepBufsInvs(Abc_Ntk_t *pNtk, int fVerbose)
Definition: abcSweep.c:959
ABC_DLL void Abc_NtkAddDummyBoxNames(Abc_Ntk_t *pNtk)
Definition: abcNames.c:418
Abc_Ntk_t * pAltView
Definition: abc.h:181
static Abc_Obj_t * Abc_NtkCreateLatch(Abc_Ntk_t *pNtk)
Definition: abc.h:309
ABC_DLL void Abc_NtkCleanNext(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:636
Abc_ObjType_t
Definition: abc.h:86
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode)
Definition: abcNtk.c:1154
ABC_DLL int Abc_NtkCheckObj(Abc_Ntk_t *pNtk, Abc_Obj_t *pObj)
Definition: abcCheck.c:414
Vec_Int_t * vPhases
Definition: abc.h:208
typedefABC_NAMESPACE_HEADER_START struct Nm_Man_t_ Nm_Man_t
INCLUDES ///.
Definition: nm.h:63
ABC_DLL int Abc_NtkToBdd(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:1160
ABC_DLL char * Abc_SopCreateMux(Mem_Flex_t *pMan)
Definition: abcSop.c:329
ABC_DLL int Abc_SopIsConst0(char *pSop)
Definition: abcSop.c:676
ABC_DLL int Abc_SopIsConst1(char *pSop)
Definition: abcSop.c:692
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeqReverse(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:454
static void Abc_NtkSetName(Abc_Ntk_t *pNtk, char *pName)
Definition: abc.h:277
ABC_DLL void Abc_VecObjPushUniqueOrderByLevel(Vec_Ptr_t *p, Abc_Obj_t *pNode)
Definition: abcUtil.c:1228
static void * Abc_ObjMvVar(Abc_Obj_t *pObj)
Definition: abc.h:437
ABC_DLL void Abc_NtkDontCareClear(Odc_Man_t *p)
Definition: abcOdc.c:242
ABC_DLL Abc_Ntk_t * Abc_NtkMiterCofactor(Abc_Ntk_t *pNtk, Vec_Int_t *vPiValues)
Definition: abcMiter.c:447
static Abc_Obj_t * Abc_NtkCreateBlackbox(Abc_Ntk_t *pNtk)
Definition: abc.h:311
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
Definition: abc_global.h:105
ABC_DLL Vec_Int_t * Abc_NtkCollectLatchValues(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:187
typedefABC_NAMESPACE_HEADER_START struct Mem_Fixed_t_ Mem_Fixed_t
DECLARATIONS ///.
Definition: mem.h:33
Vec_Ptr_t * vTops
Definition: abc.h:222
ABC_DLL int Abc_NtkGetLitFactNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:189
Abc_Cex_t * pSeqModel
Definition: abc.h:199
static int Abc_LatchIsInit1(Abc_Obj_t *pLatch)
Definition: abc.h:423
ABC_DLL void Abc_NtkTimeSetDefaultRequired(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition: abcTiming.c:164
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
Definition: abc.h:303
static Abc_Obj_t * Abc_ObjFanout0Ntk(Abc_Obj_t *pObj)
Definition: abc.h:376
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodesContained(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition: abcDfs.c:298
static void Abc_InfoClear(unsigned *p, int nWords)
Definition: abc.h:236
ABC_DLL int Abc_NodeMffcLabel(Abc_Obj_t *pNode)
Definition: abcRefs.c:437
ABC_DLL Abc_Ntk_t * Abc_NtkFraigTrust(Abc_Ntk_t *pNtk)
Definition: abcFraig.c:485
ABC_DLL int Abc_NtkDoCheck(Abc_Ntk_t *pNtk)
Definition: abcCheck.c:93
ABC_DLL void Abc_NtkWriteLogFile(char *pFileName, Abc_Cex_t *pSeqCex, int Status, int nFrames, char *pCommand)
DECLARATIONS ///.
Definition: abcLog.c:68
ABC_DLL Abc_Ntk_t * Abc_NtkHaigUse(Abc_Ntk_t *pNtk)
ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia(Abc_Ntk_t *pNtk, Vec_Ptr_t **pvBuffers, int fVerbose)
Definition: abcHieGia.c:277
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
Definition: abcTiming.c:1162
ABC_DLL Abc_Obj_t * Abc_NtkFindOrCreateNet(Abc_Ntk_t *pNtk, char *pName)
Definition: abcObj.c:579
ABC_DLL Abc_Ntk_t * Abc_NtkConvertBlackboxes(Abc_Ntk_t *pNtk)
Definition: abcHie.c:598
static void Abc_ObjBlackboxToWhitebox(Abc_Obj_t *pObj)
Definition: abc.h:361
static void Abc_InfoOr(unsigned *p, unsigned *q, int nWords)
Definition: abc.h:243
#define ABC_NAMESPACE_HEADER_END
Definition: abc_global.h:106
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs(Abc_Ntk_t *pNtk)
Definition: abcNtk.c:476
ABC_DLL int Abc_NtkHaigStop(Abc_Ntk_t *pNtk)
static void Abc_NtkSetBackup(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNetBackup)
Definition: abc.h:279
static void Abc_ObjSetGlobalBdd(Abc_Obj_t *pObj, void *bF)
Definition: abc.h:432
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultInputDrive(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:115
ABC_DLL void Abc_NtkFreeMvVars(Abc_Ntk_t *pNtk)
Definition: abcBlifMv.c:66
ABC_DLL void Abc_ObjRemoveFanins(Abc_Obj_t *pObj)
Definition: abcFanio.c:141
ABC_DLL void Abc_ObjTransferFanout(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
Definition: abcFanio.c:264
static void ** Vec_AttArray(Vec_Att_t *p)
Definition: vecAtt.h:284
static Abc_Obj_t * Abc_NtkBox(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:319
static int Abc_NodeIsPersistant(Abc_Obj_t *pNode)
Definition: abc.h:401
Vec_Int_t vTravIds
Definition: abc.h:188
ABC_DLL Vec_Ptr_t * Abc_AigDfs(Abc_Ntk_t *pNtk, int fCollectAll, int fCollectCos)
Definition: abcDfs.c:1014
static int Abc_NtkConstrNum(Abc_Ntk_t *pNtk)
Definition: abc.h:299
ABC_DLL void Abc_NtkFraigStoreClean()
Definition: abcFraig.c:762
ABC_DLL void Abc_NtkLogicMakeDirectSops(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:509
ABC_DLL float Abc_NodeReadRequiredWorst(Abc_Obj_t *pNode)
Definition: abcTiming.c:99
Vec_Int_t vFanouts
Definition: abc.h:144
ABC_DLL void Abc_NtkTrasferNames(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
Definition: abcNames.c:139
ABC_DLL void Abc_NtkUpdateReverseLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition: abcTiming.c:1262
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
Definition: vecPtr.h:362
static void Abc_LatchSetInit1(Abc_Obj_t *pLatch)
Definition: abc.h:419
char * pSpec
Definition: abc.h:159
ABC_DLL Abc_Time_t * Abc_NtkGetCiArrivalTimes(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:619
ABC_DLL void Abc_ManTimeStop(Abc_ManTime_t *p)
Definition: abcTiming.c:455
ABC_DLL char * Abc_SopCreateNor(Mem_Flex_t *pMan, int nVars)
Definition: abcSop.c:253
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeExor(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
Definition: abcObj.c:782
ABC_DLL int Abc_NtkSizeOfGlobalBdds(Abc_Ntk_t *pNtk)
Definition: abcNtbdd.c:492
ABC_DLL void Abc_NtkSetMvVarValues(Abc_Obj_t *pObj, int nValues)
Definition: abcBlifMv.c:84
static int Abc_NtkIsMappedNetlist(Abc_Ntk_t *pNtk)
Definition: abc.h:262
static Abc_Obj_t * Abc_ObjChild0Data(Abc_Obj_t *pObj)
Definition: abc.h:388
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
Definition: abcUtil.c:1047
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIter(Abc_Ntk_t *pNtk, int fCollectAll)
Definition: abcDfs.c:542
ABC_DLL Abc_Obj_t * Abc_ObjInsertBetween(Abc_Obj_t *pNodeIn, Abc_Obj_t *pNodeOut, Abc_ObjType_t Type)
Definition: abcFanio.c:223
ABC_DLL float Abc_NodeReadArrivalWorst(Abc_Obj_t *pNode)
Definition: abcTiming.c:95
static int Abc_NodeIsTravIdCurrent(Abc_Obj_t *p)
Definition: abc.h:411
static int Abc_AigNodeIsChoice(Abc_Obj_t *pNode)
Definition: abc.h:398
static int Abc_ObjFaninC(Abc_Obj_t *pObj, int i)
Definition: abc.h:379
static Abc_Obj_t * Abc_ObjChild(Abc_Obj_t *pObj, int i)
Definition: abc.h:382
static Abc_Obj_t * Abc_ObjEquiv(Abc_Obj_t *pObj)
Definition: abc.h:337
ABC_DLL char * Abc_SopCreateFromTruth(Mem_Flex_t *pMan, int nVars, unsigned *pTruth)
Definition: abcSop.c:377
Abc_Ntk_t * pCopy
Definition: abc.h:204
ABC_DLL char * Abc_NodeConvertSopToMvSop(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
Definition: abcBlifMv.c:1028
static Abc_Obj_t * Abc_ObjRegular(Abc_Obj_t *p)
Definition: abc.h:323
Vec_Ptr_t * vSupps
Definition: abc.h:197
ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName(Abc_Des_t *p, char *pName)
Definition: abcLib.c:249
float Fall
Definition: abc.h:125
ABC_DLL int Abc_NodeDeref_rec(Abc_Obj_t *pNode)
Definition: abcRefs.c:215
ABC_DLL void Abc_NtkReverseTopoOrder(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:2615
Abc_Ntk_t * pNtk
Definition: abc.h:130
unsigned fMarkB
Definition: abc.h:135
static int Abc_NtkIsMappedLogic(Abc_Ntk_t *pNtk)
Definition: abc.h:267
ABC_DLL int Abc_AigNodeIsAcyclic(Abc_Obj_t *pNode, Abc_Obj_t *pRoot)
Definition: abcAig.c:1313
static int Abc_ObjIsBi(Abc_Obj_t *pObj)
Definition: abc.h:349
ABC_DLL int Abc_SopGetIthCareLit(char *pSop, int i)
Definition: abcSop.c:578
ABC_DLL Abc_Ntk_t * Abc_NtkRestrash(Abc_Ntk_t *pNtk, int fCleanup)
FUNCTION DEFINITIONS ///.
Definition: abcStrash.c:49
static int Vec_IntSize(Vec_Int_t *p)
Definition: bblif.c:252
ABC_DLL int Abc_NtkCombinePos(Abc_Ntk_t *pNtk, int fAnd, int fXor)
Definition: abcMiter.c:1151
ABC_DLL void Abc_NtkRecStart3(Gia_Man_t *p, int nVars, int nCuts, int fFuncOnly, int fVerbose)
Definition: abcRec3.c:1415
ABC_DLL Vec_Ptr_t * Abc_NodeCollectTfoCands(Abc_ManCut_t *p, Abc_Obj_t *pRoot, Vec_Ptr_t *vFanins, int LevelMax)
Definition: abcReconv.c:692
Definition: abc.h:89
ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNode(char *pSop)
Definition: abcNtk.c:1192
ABC_DLL int Abc_NtkMiterIsConstant(Abc_Ntk_t *pMiter)
Definition: abcMiter.c:679
ABC_DLL int Abc_NodeIsInv(Abc_Obj_t *pNode)
Definition: abcObj.c:950
ABC_DLL Vec_Vec_t * Abc_DfsLevelized(Abc_Obj_t *pNode, int fTfi)
Definition: abcDfs.c:1129
ABC_DLL void Abc_SopComplement(char *pSop)
Definition: abcSop.c:600
ABC_DLL Abc_Obj_t * Abc_NodeFindCoFanout(Abc_Obj_t *pNode)
Definition: abcUtil.c:779
ABC_DLL void Abc_AigPrintNode(Abc_Obj_t *pNode)
Definition: abcAig.c:1279
static char * Abc_NtkName(Abc_Ntk_t *pNtk)
Definition: abc.h:270
static Abc_Obj_t * Abc_NtkPo(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:316
ABC_DLL float * Abc_NtkGetCiArrivalFloats(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:658
static int Abc_NtkPoNum(Abc_Ntk_t *pNtk)
Definition: abc.h:286
ABC_DLL void Abc_NtkTimeSetRequired(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
Definition: abcTiming.c:200
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fDirect)
Definition: abcFunc.c:359
Abc_NtkFunc_t ntkFunc
Definition: abc.h:157
static void * Abc_NtkGlobalBddMan(Abc_Ntk_t *pNtk)
Definition: abc.h:429
ABC_DLL int Abc_ObjReverseLevel(Abc_Obj_t *pObj)
Definition: abcTiming.c:1121
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
Definition: abcSweep.c:574
static void Abc_ObjSetCopy(Abc_Obj_t *pObj, Abc_Obj_t *pCopy)
Definition: abc.h:342
Abc_InitType_t
Definition: abc.h:102
ABC_DLL void Abc_NtkUpdate(Abc_Obj_t *pObj, Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
Definition: abcTiming.c:1311
ABC_DLL Abc_Ntk_t * Abc_NtkStartFromNoLatches(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
Definition: abcNtk.c:248
int nBarBufs
Definition: abc.h:174
ABC_DLL int Abc_NodeMffcSizeStop(Abc_Obj_t *pNode)
Definition: abcRefs.c:74
Vec_Ptr_t * vOnehots
Definition: abc.h:211
static int Abc_NtkStep(Abc_Ntk_t *pNtk)
Definition: abc.h:274
ABC_DLL void Abc_NtkDeleteAll_rec(Abc_Obj_t *pObj)
Definition: abcObj.c:310
static int Abc_NtkIsBddLogic(Abc_Ntk_t *pNtk)
Definition: abc.h:265
ABC_DLL int Abc_NodeCompareLevelsDecrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
Definition: abcUtil.c:1675
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
Definition: abcObj.c:604
ABC_DLL void Abc_NtkDeleteObjPo(Abc_Obj_t *pObj)
Definition: abcObj.c:244
int Id
Definition: abc.h:132
ABC_DLL Vec_Ptr_t * Abc_NtkSaveCopy(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:595
Definition: gia.h:95
static int Abc_NtkPiNum(Abc_Ntk_t *pNtk)
Definition: abc.h:285
Abc_ManTime_t * pManTime
Definition: abc.h:192
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
Definition: abcNames.c:48
ABC_DLL Vec_Int_t * Abc_NtkGetCiIds(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1747
ABC_DLL void Abc_NtkCleanData(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:534
ABC_DLL Abc_Ntk_t * Abc_DesDeriveRoot(Abc_Des_t *p)
Definition: abcLib.c:269
ABC_DLL void Abc_NtkMiterAddCone(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkMiter, Abc_Obj_t *pNode)
Definition: abcMiter.c:251
ABC_DLL void Abc_ObjSetReverseLevel(Abc_Obj_t *pObj, int LevelR)
Definition: abcTiming.c:1141
static int Abc_NtkIsSopNetlist(Abc_Ntk_t *pNtk)
Definition: abc.h:260
ABC_DLL Vec_Ptr_t * Abc_AigUpdateStart(Abc_Aig_t *pMan, Vec_Ptr_t **pvUpdatedNets)
Definition: abcAig.c:1420
static void Abc_NtkIncrementTravId(Abc_Ntk_t *p)
Definition: abc.h:406
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 char * Abc_SopCreateXorSpecial(Mem_Flex_t *pMan, int nVars)
Definition: abcSop.c:291
ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes(Abc_Ntk_t *pNtk)
Definition: abcNtbdd.c:125
static Abc_Obj_t * Abc_NtkCreateNode(Abc_Ntk_t *pNtk)
Definition: abc.h:308
ABC_DLL int Abc_NtkAttach(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
Definition: abcAttach.c:60
ABC_DLL int Abc_NtkAigToBdd(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:733
static int Abc_ObjIsNet(Abc_Obj_t *pObj)
Definition: abc.h:354
static int Abc_Lit2Var(int Lit)
Definition: abc_global.h:264
ABC_DLL Abc_Obj_t * Abc_NtkFetchTwinNode(Abc_Obj_t *pNode)
Definition: abcMap.c:740
static int Abc_ObjToLit(Abc_Obj_t *p)
Definition: abc.h:391
static int Abc_NtkHasOnlyLatchBoxes(Abc_Ntk_t *pNtk)
Definition: abc.h:298
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantifyPis(Abc_Ntk_t *pNtk)
Definition: abcMiter.c:645
static void Vec_AttWriteEntry(Vec_Att_t *p, int i, void *pEntry)
Definition: vecAtt.h:227
ABC_DLL char * Abc_SopCreateOrMultiCube(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition: abcSop.c:228
Definition: abc.h:90
ABC_DLL void Abc_NodeCollectFanins(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
Definition: abcUtil.c:1587
unsigned * puTruth
Definition: abcOdc.c:78
ABC_DLL void Abc_NtkPrintSkews(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintAll)
static void Abc_ObjXorFaninC(Abc_Obj_t *pObj, int i)
Definition: abc.h:381
ABC_DLL int Abc_SopGetVarNum(char *pSop)
Definition: abcSop.c:536
ABC_DLL void Abc_NtkPrintBoxInfo(Abc_Ntk_t *pNtk)
Definition: abcHie.c:431
static int Abc_ObjMvVarNum(Abc_Obj_t *pObj)
Definition: abc.h:438
Mem_Step_t * pMmStep
Definition: abc.h:190
ABC_DLL int Abc_ObjFanoutFaninNum(Abc_Obj_t *pFanout, Abc_Obj_t *pFanin)
Definition: abcFanio.c:321
static int Abc_ObjIsPo(Abc_Obj_t *pObj)
Definition: abc.h:348
ABC_DLL Abc_ManCut_t * Abc_NtkManCutStart(int nNodeSizeMax, int nConeSizeMax, int nNodeFanStop, int nConeFanStop)
Definition: abcReconv.c:588
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
Definition: abcFunc.c:1192
ABC_DLL word Abc_SopToTruth(char *pSop, int nInputs)
Definition: abcSop.c:1163
static int Abc_InfoIsOne(unsigned *p, int nWords)
Definition: abc.h:240
ABC_DLL Vec_Ptr_t * Abc_NtkDfsWithBoxes(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:768
Definition: abc.h:92
ABC_DLL int Abc_NtkIsDfsOrdered(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:667
ABC_DLL void Abc_SopToTruth7(char *pSop, int nInputs, word r[2])
Definition: abcSop.c:1214
ABC_DLL void Abc_NtkSetNodeLevelsArrival(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:591
Abc_Obj_t * pNext
Definition: abc.h:131
ABC_DLL int Abc_AigNodeHasComplFanoutEdge(Abc_Obj_t *pNode)
Definition: abcAig.c:1224
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:507
ABC_DLL Gia_Man_t * Abc_NtkAigToGia(Abc_Ntk_t *p)
Definition: abcFunc.c:935
ABC_DLL Vec_Ptr_t * Abc_NtkSupport(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:828
ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1701
ABC_DLL int Abc_NodeIsConst1(Abc_Obj_t *pNode)
Definition: abcObj.c:890
static void Abc_NtkSetSpec(Abc_Ntk_t *pNtk, char *pName)
Definition: abc.h:278
ABC_DLL void Abc_ObjDeleteFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
Definition: abcFanio.c:111
Vec_Ptr_t * vModules
Definition: abc.h:223
ABC_DLL void Abc_NtkTransferNameIds(Abc_Ntk_t *p, Abc_Ntk_t *pNew)
Definition: abcNames.c:588
ABC_DLL int Abc_NtkGetLitNum(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:165
static Abc_Obj_t * Abc_ObjNotCond(Abc_Obj_t *p, int c)
Definition: abc.h:325
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:490
#define assert(ex)
Definition: util_old.h:213
ABC_DLL Abc_Ntk_t * Abc_NtkToBarBufs(Abc_Ntk_t *pNtk)
Definition: abcBarBuf.c:180
static int Abc_NtkHasAig(Abc_Ntk_t *pNtk)
Definition: abc.h:255
static void * Abc_ObjData(Abc_Obj_t *pObj)
Definition: abc.h:336
ABC_DLL int Abc_SopIsAndType(char *pSop)
Definition: abcSop.c:748
static int * Vec_IntEntryP(Vec_Int_t *p, int i)
Definition: vecInt.h:417
ABC_DLL void Abc_NtkManCutStop(Abc_ManCut_t *p)
Definition: abcReconv.c:616
static int Abc_ObjIsBox(Abc_Obj_t *pObj)
Definition: abc.h:357
ABC_DLL void Abc_NtkTimeSetDefaultOutputLoad(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition: abcTiming.c:243
ABC_DLL Abc_Obj_t * Abc_NtkAddLatch(Abc_Ntk_t *pNtk, Abc_Obj_t *pDriver, Abc_InitType_t Init)
Definition: abcLatch.c:260
ABC_DLL void Abc_DesPrint(Abc_Des_t *p)
Definition: abcLib.c:194
ABC_DLL Vec_Ptr_t * Abc_NtkDfsHie(Abc_Ntk_t *pNtk, int fCollectAll)
Definition: abcDfs.c:634
static Abc_Obj_t * Abc_ObjNot(Abc_Obj_t *p)
Definition: abc.h:324
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
Definition: utilCex.h:39
ABC_DLL void Abc_AigCheckFaninOrder(Abc_Aig_t *pMan)
Definition: abcAig.c:1362
ABC_DLL int Abc_NtkGetFanoutMax(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:464
ABC_DLL int Abc_NtkHaigStart(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_ObjChildCopy(Abc_Obj_t *pObj, int i)
Definition: abc.h:385
static int Abc_ObjFaninPhase(Abc_Obj_t *p, int i)
Definition: abc.h:392
static char * Abc_NtkSpec(Abc_Ntk_t *pNtk)
Definition: abc.h:271
static int Abc_InfoIsOrOne(unsigned *p, unsigned *q, int nWords)
Definition: abc.h:245
static Abc_Ntk_t * Abc_ObjNtk(Abc_Obj_t *pObj)
Definition: abc.h:334
static Abc_Obj_t * Abc_NtkPi(Abc_Ntk_t *pNtk, int i)
Definition: abc.h:315
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultOutputLoad(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:120
static int Abc_ObjFaninId(Abc_Obj_t *pObj, int i)
Definition: abc.h:366
int nTravIds
Definition: abc.h:187
void * pData
Definition: abc.h:145
ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition: abcDfs.c:120
ABC_DLL void * Abc_NtkBuildGlobalBdds(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDropInternal, int fReorder, int fVerbose)
Definition: abcNtbdd.c:251
static void Abc_InfoRandom(unsigned *p, int nWords)
Definition: abc.h:235
ABC_DLL void Abc_NtkPermute(Abc_Ntk_t *pNtk, int fInputs, int fOutputs, int fFlops, char *pFlopPermFile)
Definition: abcNtk.c:1906
static int Abc_ObjFaninId1(Abc_Obj_t *pObj)
Definition: abc.h:368
static void Abc_ObjFaninFlipPhase(Abc_Obj_t *p, int i)
Definition: abc.h:393
unsigned fExor
Definition: abc.h:138
ABC_DLL int Abc_NodeRemoveDupFanins(Abc_Obj_t *pNode)
Definition: abcMinBase.c:180
ABC_DLL void Abc_AigSetNodePhases(Abc_Ntk_t *pNtk)
Definition: abcAig.c:1389
ABC_DLL int * Abc_NtkVerifySimulatePattern(Abc_Ntk_t *pNtk, int *pModel)
Definition: abcVerify.c:686
ABC_DLL void Abc_AigUpdateReset(Abc_Aig_t *pMan)
Definition: abcAig.c:1460
static int Abc_NtkBlackboxNum(Abc_Ntk_t *pNtk)
Definition: abc.h:296
static Abc_Obj_t * Abc_NtkCreateBi(Abc_Ntk_t *pNtk)
Definition: abc.h:305
static Abc_Obj_t * Abc_ObjFanout(Abc_Obj_t *pObj, int i)
Definition: abc.h:370
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_NodeCollectFanouts(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
Definition: abcUtil.c:1607
static Abc_Obj_t * Abc_ObjFanin(Abc_Obj_t *pObj, int i)
Definition: abc.h:372
ABC_DLL int Abc_NodeEvalMvCost(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
Definition: abcBlifMv.c:1135
ABC_DLL void Abc_NtkLoadCopy(Abc_Ntk_t *pNtk, Vec_Ptr_t *vCopies)
Definition: abcUtil.c:617
ABC_DLL void Abc_NtkTransferCopy(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:1922
ABC_DLL Abc_Time_t * Abc_NodeReadInputDrive(Abc_Ntk_t *pNtk, int iPi)
Definition: abcTiming.c:125
static int Abc_ObjIsComplement(Abc_Obj_t *p)
Definition: abc.h:322
ABC_DLL int Abc_NtkCleanupSeq(Abc_Ntk_t *pNtk, int fLatchSweep, int fAutoSweep, int fVerbose)
Definition: abcSweep.c:909
ABC_DLL void Abc_NtkCleanNext_rec(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:643
ABC_DLL Abc_Ntk_t * Abc_NtkMiterAnd(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOr, int fCompl2)
Definition: abcMiter.c:384
Abc_Des_t * pDesign
Definition: abc.h:180
ABC_DLL float Abc_NodeReadOutputLoadWorst(Abc_Ntk_t *pNtk, int iPo)
Definition: abcTiming.c:139
static int Abc_NtkObjNum(Abc_Ntk_t *pNtk)
Definition: abc.h:283
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
Definition: abcDfs.c:1265
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
Definition: abcDfs.c:263
ABC_DLL int Abc_NtkCountSelfFeedLatches(Abc_Ntk_t *pNtk)
Definition: abcLatch.c:89
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
Definition: abcNames.c:378
ABC_DLL void Abc_NodeComplement(Abc_Obj_t *pNode)
Definition: abcObj.c:980
unsigned fPersist
Definition: abc.h:139
static int Abc_ObjIsTerm(Abc_Obj_t *pObj)
Definition: abc.h:353
ABC_DLL char * Abc_SopEncoderPos(Mem_Flex_t *pMan, int iValue, int nValues)
Definition: abcSop.c:1030
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
Definition: abcUtil.c:71
ABC_DLL Abc_Ntk_t * Abc_NtkInsertNewLogic(Abc_Ntk_t *pNtkH, Abc_Ntk_t *pNtkL)
Definition: abcHie.c:691
ABC_DLL float Abc_NodeReadArrivalAve(Abc_Obj_t *pNode)
Definition: abcTiming.c:87
static void Abc_LatchSetInit0(Abc_Obj_t *pLatch)
Definition: abc.h:418
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
Definition: abc.h:304
char * pWLoadUsed
Definition: abc.h:209
static Abc_Obj_t * Abc_ObjChild1(Abc_Obj_t *pObj)
Definition: abc.h:384
ABC_DLL int Abc_SopIsComplement(char *pSop)
Definition: abcSop.c:655
ABC_DLL void Abc_NtkTimeSetInputDrive(Abc_Ntk_t *pNtk, int PiNum, float Rise, float Fall)
Definition: abcTiming.c:271
ABC_DLL void Abc_NtkPrintFactor(FILE *pFile, Abc_Ntk_t *pNtk, int fUseRealNames)
Definition: abcPrint.c:805
unsigned fPhase
Definition: abc.h:137
ABC_DLL void Abc_NtkTimeSetOutputLoad(Abc_Ntk_t *pNtk, int PoNum, float Rise, float Fall)
Definition: abcTiming.c:290
ABC_DLL char * Abc_SopCreateOr(Mem_Flex_t *pMan, int nVars, int *pfCompl)
Definition: abcSop.c:206
ABC_DLL void * Abc_NtkAttrFree(Abc_Ntk_t *pNtk, int Attr, int fFreeMan)
DECLARATIONS ///.
Definition: abcUtil.c:50
ABC_DLL int Abc_NtkAppend(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fAddPos)
Definition: abcStrash.c:320
float Rise
Definition: abc.h:124
ABC_DLL int Abc_NodeIsExorType(Abc_Obj_t *pNode)
Definition: abcUtil.c:1259
char * pName
Definition: abc.h:158
static void ** Abc_NtkGlobalBddArray(Abc_Ntk_t *pNtk)
Definition: abc.h:430
ABC_DLL int Abc_NtkIsValidCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
Definition: abcVerify.c:1093
ABC_DLL int Abc_SopGetPhase(char *pSop)
Definition: abcSop.c:556
ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux(Abc_Obj_t *pNode, Abc_Obj_t **ppNodeT, Abc_Obj_t **ppNodeE)
Definition: abcUtil.c:1389
int nLevels
Definition: abcOdc.c:49
static int Abc_InfoIsOrOne3(unsigned *p, unsigned *q, unsigned *r, int nWords)
Definition: abc.h:246
DECLARATIONS ///.
Definition: abcReconv.c:31
ABC_DLL float Abc_NodeReadInputDriveWorst(Abc_Ntk_t *pNtk, int iPi)
Definition: abcTiming.c:135
ABC_DLL void Abc_NtkOrderObjsByName(Abc_Ntk_t *pNtk, int fComb)
Definition: abcNames.c:335
ABC_DLL void Abc_ManTimeDup(Abc_Ntk_t *pNtkOld, Abc_Ntk_t *pNtkNew)
Definition: abcTiming.c:481
ABC_DLL int Abc_NtkPhaseFrameNum(Abc_Ntk_t *pNtk)
Definition: abcDar.c:4002
int fHiePath
Definition: abc.h:183
static Abc_Ntk_t * Abc_NtkBackup(Abc_Ntk_t *pNtk)
Definition: abc.h:273
Abc_NtkType_t ntkType
Definition: abc.h:156
int fHieVisited
Definition: abc.h:182
ABC_DLL int Abc_NodeMinimumBase(Abc_Obj_t *pNode)
Definition: abcMinBase.c:70
ABC_DLL int Abc_ObjLevelNew(Abc_Obj_t *pObj)
Definition: abcTiming.c:1058
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
Definition: abc.h:371
ABC_DLL void Abc_NtkTimeSetDefaultInputDrive(Abc_Ntk_t *pNtk, float Rise, float Fall)
Definition: abcTiming.c:227
ABC_DLL void Abc_NodePrintLevel(FILE *pFile, Abc_Obj_t *pNode)
Definition: abcPrint.c:985
static void Abc_NodeClearPersistant(Abc_Obj_t *pNode)
Definition: abc.h:403
int nConstrs
Definition: abc.h:173
ABC_DLL Abc_Ntk_t * Abc_NtkFraigRestore()
Definition: abcFraig.c:694
ABC_DLL char * Abc_ObjNameSuffix(Abc_Obj_t *pObj, char *pSuffix)
Definition: abcNames.c:103
ABC_DLL void Abc_NodeComplementInput(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
Definition: abcObj.c:1005
static int Abc_NtkNetNum(Abc_Ntk_t *pNtk)
Definition: abc.h:292
ABC_DLL Abc_Time_t * Abc_NodeReadOutputLoad(Abc_Ntk_t *pNtk, int iPo)
Definition: abcTiming.c:130
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantify(Abc_Ntk_t *pNtk, int In, int fExist)
Definition: abcMiter.c:582
ABC_DLL void Abc_NodeConeCollect(Abc_Obj_t **ppRoots, int nRoots, Vec_Ptr_t *vFanins, Vec_Ptr_t *vVisited, int fIncludeFanins)
Definition: abcReconv.c:441
ABC_DLL Abc_Time_t * Abc_NtkGetCoRequiredTimes(Abc_Ntk_t *pNtk)
Definition: abcTiming.c:632
static void Abc_NodeSetTravIdCurrent(Abc_Obj_t *p)
Definition: abc.h:409
ABC_DLL void * Abc_NtkToFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
Definition: abcFraig.c:103
static Abc_Obj_t * Abc_NtkCreateNet(Abc_Ntk_t *pNtk)
Definition: abc.h:307
ABC_DLL Abc_Des_t * Abc_DesDup(Abc_Des_t *p)
Definition: abcLib.c:133
ABC_DLL void Abc_AigDeleteNode(Abc_Aig_t *pMan, Abc_Obj_t *pOld)
Definition: abcAig.c:972
static Abc_Obj_t * Abc_ObjCopy(Abc_Obj_t *pObj)
Definition: abc.h:333
ABC_DLL void Abc_AigReplace(Abc_Aig_t *pMan, Abc_Obj_t *pOld, Abc_Obj_t *pNew, int fUpdateLevel)
Definition: abcAig.c:850
float * pLutTimes
Definition: abc.h:210
ABC_DLL void Abc_NtkRecStop3()
Definition: abcRec3.c:1421
static int Abc_NodeTravId(Abc_Obj_t *p)
Definition: abc.h:407
static int Abc_ObjIsBlackbox(Abc_Obj_t *pObj)
Definition: abc.h:359
ABC_DLL int Abc_NtkFraigStore(Abc_Ntk_t *pNtk)
Definition: abcFraig.c:654