21#ifndef ABC__base__abc__abc_h
22#define ABC__base__abc__abc_h
236static inline unsigned Abc_InfoRandomWord() {
return ((((
unsigned)rand()) << 24) ^ (((
unsigned)rand()) << 12) ^ ((
unsigned)rand())); }
237static inline void Abc_InfoRandom(
unsigned *
p,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] = Abc_InfoRandomWord(); }
238static inline void Abc_InfoClear(
unsigned *
p,
int nWords ) {
memset(
p, 0,
sizeof(
unsigned) *
nWords ); }
239static inline void Abc_InfoFill(
unsigned *
p,
int nWords ) {
memset(
p, 0xff,
sizeof(
unsigned) *
nWords );}
240static inline void Abc_InfoNot(
unsigned *
p,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] = ~
p[i]; }
241static inline int Abc_InfoIsZero(
unsigned *
p,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
if (
p[i] )
return 0;
return 1; }
242static inline int Abc_InfoIsOne(
unsigned *
p,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
if ( ~
p[i] )
return 0;
return 1; }
243static inline void Abc_InfoCopy(
unsigned *
p,
unsigned * q,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] = q[i]; }
244static inline void Abc_InfoAnd(
unsigned *
p,
unsigned * q,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] &= q[i]; }
245static inline void Abc_InfoOr(
unsigned *
p,
unsigned * q,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] |= q[i]; }
246static inline void Abc_InfoXor(
unsigned *
p,
unsigned * q,
int nWords ) {
int i;
for ( i =
nWords - 1; i >= 0; i-- )
p[i] ^= q[i]; }
247static inline int Abc_InfoIsOrOne(
unsigned *
p,
unsigned * q,
int nWords ){
int i;
for ( i =
nWords - 1; i >= 0; i-- )
if ( ~(
p[i] | q[i]) )
return 0;
return 1; }
248static inline int Abc_InfoIsOrOne3(
unsigned *
p,
unsigned * q,
unsigned * r,
int nWords ){
int i;
for ( i =
nWords - 1; i >= 0; i-- )
if ( ~(
p[i] | q[i] | r[i]) )
return 0;
return 1; }
273static inline char * Abc_NtkName(
Abc_Ntk_t * pNtk ) {
return pNtk->
pName; }
274static inline char * Abc_NtkSpec(
Abc_Ntk_t * pNtk ) {
return pNtk->
pSpec; }
277static inline int Abc_NtkStep (
Abc_Ntk_t * pNtk ) {
return pNtk->
iStep; }
280static inline void Abc_NtkSetName (
Abc_Ntk_t * pNtk,
char * pName ) { pNtk->
pName = pName; }
281static inline void Abc_NtkSetSpec (
Abc_Ntk_t * pNtk,
char * pName ) { pNtk->
pSpec = pName; }
283static inline void Abc_NtkSetStep (
Abc_Ntk_t * pNtk,
int iStep ) { pNtk->
iStep = iStep; }
286static inline int Abc_NtkObjNum(
Abc_Ntk_t * pNtk ) {
return pNtk->
nObjs; }
287static inline int Abc_NtkObjNumMax(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vObjs); }
288static inline int Abc_NtkPiNum(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vPis); }
289static inline int Abc_NtkPoNum(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vPos); }
290static inline int Abc_NtkCiNum(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vCis); }
291static inline int Abc_NtkCoNum(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vCos); }
292static inline int Abc_NtkBoxNum(
Abc_Ntk_t * pNtk ) {
return Vec_PtrSize(pNtk->
vBoxes); }
300static inline int Abc_NtkIsComb(
Abc_Ntk_t * pNtk ) {
return Abc_NtkLatchNum(pNtk) == 0; }
301static inline int Abc_NtkHasOnlyLatchBoxes(
Abc_Ntk_t * pNtk ){
return Abc_NtkLatchNum(pNtk) == Abc_NtkBoxNum(pNtk); }
325static inline int Abc_ObjIsComplement(
Abc_Obj_t *
p ) {
return (
int )((ABC_PTRUINT_T)
p & (ABC_PTRUINT_T)01); }
331static inline unsigned Abc_ObjType(
Abc_Obj_t * pObj ) {
return pObj->
Type; }
332static inline unsigned Abc_ObjId(
Abc_Obj_t * pObj ) {
return pObj->
Id; }
333static inline int Abc_ObjLevel(
Abc_Obj_t * pObj ) {
return pObj->
Level; }
339static inline void * Abc_ObjData(
Abc_Obj_t * pObj ) {
return pObj->
pData; }
341static inline Abc_Obj_t * Abc_ObjCopyCond(
Abc_Obj_t * pObj ) {
return Abc_ObjRegular(pObj)->pCopy? Abc_ObjNotCond(Abc_ObjRegular(pObj)->pCopy, Abc_ObjIsComplement(pObj)) : NULL; }
344static inline void Abc_ObjSetLevel(
Abc_Obj_t * pObj,
int Level ) { pObj->
Level = Level; }
346static inline void Abc_ObjSetData(
Abc_Obj_t * pObj,
void * pData ) { pObj->
pData = pData; }
356static inline int Abc_ObjIsTerm(
Abc_Obj_t * pObj ) {
return Abc_ObjIsCi(pObj) || Abc_ObjIsCo(pObj); }
363static inline int Abc_ObjIsBarBuf(
Abc_Obj_t * pObj ) {
return Abc_NtkHasMapping(pObj->
pNtk) && Abc_ObjIsNode(pObj) && Vec_IntSize(&pObj->
vFanins) == 1 && pObj->
pData == NULL; }
367static inline int Abc_ObjFaninNum(
Abc_Obj_t * pObj ) {
return pObj->
vFanins.nSize; }
368static inline int Abc_ObjFanoutNum(
Abc_Obj_t * pObj ) {
return pObj->
vFanouts.nSize; }
369static inline int Abc_ObjFaninId(
Abc_Obj_t * pObj,
int i) {
return pObj->
vFanins.pArray[i]; }
370static inline int Abc_ObjFaninId0(
Abc_Obj_t * pObj ) {
return pObj->
vFanins.pArray[0]; }
371static inline int Abc_ObjFaninId1(
Abc_Obj_t * pObj ) {
return pObj->
vFanins.pArray[1]; }
372static inline int Abc_ObjFanoutEdgeNum(
Abc_Obj_t * pObj,
Abc_Obj_t * pFanout ) {
assert( Abc_NtkHasAig(pObj->
pNtk) );
if ( Abc_ObjFaninId0(pFanout) == pObj->
Id )
return 0;
if ( Abc_ObjFaninId1(pFanout) == pObj->
Id )
return 1;
assert( 0 );
return -1; }
378static inline Abc_Obj_t * Abc_ObjFanin0Ntk(
Abc_Obj_t * pObj ) {
return (Abc_NtkIsNetlist(pObj->
pNtk)? Abc_ObjFanin0(pObj) : pObj); }
379static inline Abc_Obj_t * Abc_ObjFanout0Ntk(
Abc_Obj_t * pObj ) {
return (Abc_NtkIsNetlist(pObj->
pNtk)? Abc_ObjFanout0(pObj) : pObj); }
380static inline int Abc_ObjFaninC0(
Abc_Obj_t * pObj ) {
return pObj->
fCompl0; }
381static inline int Abc_ObjFaninC1(
Abc_Obj_t * pObj ) {
return pObj->
fCompl1; }
383static inline void Abc_ObjSetFaninC(
Abc_Obj_t * pObj,
int i ){
assert( i >=0 && i < 2 );
if ( i ) pObj->
fCompl1 = 1;
else pObj->
fCompl0 = 1; }
384static inline void Abc_ObjXorFaninC(
Abc_Obj_t * pObj,
int i ){
assert( i >=0 && i < 2 );
if ( i ) pObj->
fCompl1^= 1;
else pObj->
fCompl0^= 1; }
385static inline Abc_Obj_t * Abc_ObjChild(
Abc_Obj_t * pObj,
int i ) {
return Abc_ObjNotCond( Abc_ObjFanin(pObj,i), Abc_ObjFaninC(pObj,i) );}
386static inline Abc_Obj_t * Abc_ObjChild0(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( Abc_ObjFanin0(pObj), Abc_ObjFaninC0(pObj) ); }
387static inline Abc_Obj_t * Abc_ObjChild1(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( Abc_ObjFanin1(pObj), Abc_ObjFaninC1(pObj) ); }
388static inline Abc_Obj_t * Abc_ObjChildCopy(
Abc_Obj_t * pObj,
int i ){
return Abc_ObjNotCond( Abc_ObjFanin(pObj,i)->pCopy, Abc_ObjFaninC(pObj,i) ); }
389static inline Abc_Obj_t * Abc_ObjChild0Copy(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( Abc_ObjFanin0(pObj)->pCopy, Abc_ObjFaninC0(pObj) ); }
390static inline Abc_Obj_t * Abc_ObjChild1Copy(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( Abc_ObjFanin1(pObj)->pCopy, Abc_ObjFaninC1(pObj) ); }
391static inline Abc_Obj_t * Abc_ObjChild0Data(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( (
Abc_Obj_t *)Abc_ObjFanin0(pObj)->pData, Abc_ObjFaninC0(pObj) ); }
392static inline Abc_Obj_t * Abc_ObjChild1Data(
Abc_Obj_t * pObj ) {
return Abc_ObjNotCond( (
Abc_Obj_t *)Abc_ObjFanin1(pObj)->pData, Abc_ObjFaninC1(pObj) ); }
393static inline Abc_Obj_t * Abc_ObjFromLit(
Abc_Ntk_t *
p,
int iLit ) {
return Abc_ObjNotCond( Abc_NtkObj(
p, Abc_Lit2Var(iLit)), Abc_LitIsCompl(iLit) ); }
394static inline int Abc_ObjToLit(
Abc_Obj_t *
p ) {
return Abc_Var2Lit( Abc_ObjId(Abc_ObjRegular(
p)), Abc_ObjIsComplement(
p) ); }
395static inline int Abc_ObjFaninPhase(
Abc_Obj_t *
p,
int i ) {
assert(
p->pNtk->vPhases);
assert( i >= 0 && i < Abc_ObjFaninNum(
p) );
return (Vec_IntEntry(
p->pNtk->vPhases, Abc_ObjId(
p)) >> i) & 1; }
396static inline void Abc_ObjFaninFlipPhase(
Abc_Obj_t *
p,
int i){
assert(
p->pNtk->vPhases);
assert( i >= 0 && i < Abc_ObjFaninNum(
p) ); *Vec_IntEntryP(
p->pNtk->vPhases, Abc_ObjId(
p)) ^= (1 << i); }
399static inline int Abc_AigNodeIsConst(
Abc_Obj_t * pNode ) {
assert(Abc_NtkIsStrash(Abc_ObjRegular(pNode)->pNtk));
return Abc_ObjRegular(pNode)->Type ==
ABC_OBJ_CONST1; }
400static inline int Abc_AigNodeIsAnd(
Abc_Obj_t * pNode ) {
assert(!Abc_ObjIsComplement(pNode));
assert(Abc_NtkIsStrash(pNode->
pNtk));
return Abc_ObjFaninNum(pNode) == 2; }
401static inline int Abc_AigNodeIsChoice(
Abc_Obj_t * pNode ) {
assert(!Abc_ObjIsComplement(pNode));
assert(Abc_NtkIsStrash(pNode->
pNtk));
return pNode->
pData != NULL && Abc_ObjFanoutNum(pNode) > 0; }
404static inline int Abc_NodeIsPersistant(
Abc_Obj_t * pNode ) {
assert( Abc_AigNodeIsAnd(pNode) );
return pNode->
fPersist; }
405static inline void Abc_NodeSetPersistant(
Abc_Obj_t * pNode ) {
assert( Abc_AigNodeIsAnd(pNode) ); pNode->
fPersist = 1; }
406static inline void Abc_NodeClearPersistant(
Abc_Obj_t * pNode ) {
assert( Abc_AigNodeIsAnd(pNode) ); pNode->
fPersist = 0; }
409static inline void Abc_NtkIncrementTravId(
Abc_Ntk_t *
p ) {
if (!
p->vTravIds.pArray) Vec_IntFill(&
p->vTravIds, Abc_NtkObjNumMax(
p)+500, 0);
p->nTravIds++;
assert(
p->nTravIds < (1<<30)); }
410static inline int Abc_NodeTravId(
Abc_Obj_t *
p ) {
return Vec_IntGetEntry(&Abc_ObjNtk(
p)->vTravIds, Abc_ObjId(
p)); }
411static inline void Abc_NodeSetTravId(
Abc_Obj_t *
p,
int TravId ) { Vec_IntSetEntry(&Abc_ObjNtk(
p)->vTravIds, Abc_ObjId(
p), TravId ); }
412static inline void Abc_NodeSetTravIdCurrent(
Abc_Obj_t *
p ) { Abc_NodeSetTravId(
p, Abc_ObjNtk(
p)->nTravIds ); }
413static inline void Abc_NodeSetTravIdPrevious(
Abc_Obj_t *
p ) { Abc_NodeSetTravId(
p, Abc_ObjNtk(
p)->nTravIds-1 ); }
414static inline int Abc_NodeIsTravIdCurrent(
Abc_Obj_t *
p ) {
return (Abc_NodeTravId(
p) == Abc_ObjNtk(
p)->nTravIds); }
415static inline int Abc_NodeIsTravIdPrevious(
Abc_Obj_t *
p ) {
return (Abc_NodeTravId(
p) == Abc_ObjNtk(
p)->nTravIds-1); }
416static inline void Abc_NodeSetTravIdCurrentId(
Abc_Ntk_t *
p,
int i) { Vec_IntSetEntry(&
p->vTravIds, i,
p->nTravIds ); }
417static inline int Abc_NodeIsTravIdCurrentId(
Abc_Ntk_t *
p,
int i) {
return (Vec_IntGetEntry(&
p->vTravIds, i) ==
p->nTravIds); }
428static inline int Abc_LatchInit(
Abc_Obj_t * pLatch ) {
assert(Abc_ObjIsLatch(pLatch));
return (
int)(ABC_PTRINT_T)pLatch->
pData; }
432static inline void * Abc_NtkGlobalBddMan(
Abc_Ntk_t * pNtk ) {
return Vec_AttMan( (
Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
433static inline void ** Abc_NtkGlobalBddArray(
Abc_Ntk_t * pNtk ) {
return Vec_AttArray( (
Vec_Att_t *)Abc_NtkGlobalBdd(pNtk) ); }
434static inline void * Abc_ObjGlobalBdd(
Abc_Obj_t * pObj ) {
return Vec_AttEntry( (
Vec_Att_t *)Abc_NtkGlobalBdd(pObj->
pNtk), pObj->
Id ); }
435static inline void Abc_ObjSetGlobalBdd(
Abc_Obj_t * pObj,
void * bF ) { Vec_AttWriteEntry( (
Vec_Att_t *)Abc_NtkGlobalBdd(pObj->
pNtk), pObj->
Id, bF ); }
439static inline void * Abc_NtkMvVarMan(
Abc_Ntk_t * pNtk ) {
return Abc_NtkMvVar(pNtk)? Vec_AttMan( (
Vec_Att_t *)Abc_NtkMvVar(pNtk) ) : NULL; }
440static inline void * Abc_ObjMvVar(
Abc_Obj_t * pObj ) {
return Abc_NtkMvVar(pObj->
pNtk)? Vec_AttEntry( (
Vec_Att_t *)Abc_NtkMvVar(pObj->
pNtk), pObj->
Id ) : NULL; }
441static inline int Abc_ObjMvVarNum(
Abc_Obj_t * pObj ) {
return (Abc_NtkMvVar(pObj->
pNtk) && Abc_ObjMvVar(pObj))? *((
int*)Abc_ObjMvVar(pObj)) : 2; }
442static inline void Abc_ObjSetMvVar(
Abc_Obj_t * pObj,
void * pV) { Vec_AttWriteEntry( (
Vec_Att_t *)Abc_NtkMvVar(pObj->
pNtk), pObj->
Id, pV ); }
449#define Abc_NtkForEachObj( pNtk, pObj, i ) \
450 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pObj) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
451 if ( (pObj) == NULL ) {} else
452#define Abc_NtkForEachObjReverse( pNtk, pNode, i ) \
453 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
454 if ( (pNode) == NULL ) {} else
455#define Abc_NtkForEachObjVec( vIds, pNtk, pObj, i ) \
456 for ( i = 0; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
457 if ( (pObj) == NULL ) {} else
458#define Abc_NtkForEachObjVecStart( vIds, pNtk, pObj, i, Start ) \
459 for ( i = Start; i < Vec_IntSize(vIds) && (((pObj) = Abc_NtkObj(pNtk, Vec_IntEntry(vIds,i))), 1); i++ ) \
460 if ( (pObj) == NULL ) {} else
461#define Abc_NtkForEachNet( pNtk, pNet, i ) \
462 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNet) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
463 if ( (pNet) == NULL || !Abc_ObjIsNet(pNet) ) {} else
464#define Abc_NtkForEachNode( pNtk, pNode, i ) \
465 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
466 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
467#define Abc_NtkForEachNodeNotBarBuf( pNtk, pNode, i ) \
468 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
469 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || Abc_ObjIsBarBuf(pNode) ) {} else
470#define Abc_NtkForEachNode1( pNtk, pNode, i ) \
471 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
472 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) ) {} else
473#define Abc_NtkForEachNodeNotBarBuf1( pNtk, pNode, i ) \
474 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
475 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) || Abc_ObjIsBarBuf(pNode) ) {} else
476#define Abc_NtkForEachNodeReverse( pNtk, pNode, i ) \
477 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
478 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) ) {} else
479#define Abc_NtkForEachNodeReverse1( pNtk, pNode, i ) \
480 for ( i = Vec_PtrSize((pNtk)->vObjs) - 1; (i >= 0) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i-- ) \
481 if ( (pNode) == NULL || !Abc_ObjIsNode(pNode) || !Abc_ObjFaninNum(pNode) ) {} else
482#define Abc_NtkForEachBarBuf( pNtk, pNode, i ) \
483 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
484 if ( (pNode) == NULL || !Abc_ObjIsBarBuf(pNode) ) {} else
485#define Abc_NtkForEachGate( pNtk, pNode, i ) \
486 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
487 if ( (pNode) == NULL || !Abc_ObjIsGate(pNode) ) {} else
488#define Abc_AigForEachAnd( pNtk, pNode, i ) \
489 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
490 if ( (pNode) == NULL || !Abc_AigNodeIsAnd(pNode) ) {} else
491#define Abc_NtkForEachNodeCi( pNtk, pNode, i ) \
492 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
493 if ( (pNode) == NULL || (!Abc_ObjIsNode(pNode) && !Abc_ObjIsCi(pNode)) ) {} else
494#define Abc_NtkForEachNodeCo( pNtk, pNode, i ) \
495 for ( i = 0; (i < Vec_PtrSize((pNtk)->vObjs)) && (((pNode) = Abc_NtkObj(pNtk, i)), 1); i++ ) \
496 if ( (pNode) == NULL || (!Abc_ObjIsNode(pNode) && !Abc_ObjIsCo(pNode)) ) {} else
498#define Abc_NtkForEachBox( pNtk, pObj, i ) \
499 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ )
500#define Abc_NtkForEachLatch( pNtk, pObj, i ) \
501 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
502 if ( !Abc_ObjIsLatch(pObj) ) {} else
503#define Abc_NtkForEachLatchInput( pNtk, pObj, i ) \
504 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
505 if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanin0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
506#define Abc_NtkForEachLatchOutput( pNtk, pObj, i ) \
507 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)); i++ ) \
508 if ( !(Abc_ObjIsLatch(Abc_NtkBox(pNtk, i)) && (((pObj) = Abc_ObjFanout0(Abc_NtkBox(pNtk, i))), 1)) ) {} else
509#define Abc_NtkForEachWhitebox( pNtk, pObj, i ) \
510 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
511 if ( !Abc_ObjIsWhitebox(pObj) ) {} else
512#define Abc_NtkForEachBlackbox( pNtk, pObj, i ) \
513 for ( i = 0; (i < Vec_PtrSize((pNtk)->vBoxes)) && (((pObj) = Abc_NtkBox(pNtk, i)), 1); i++ ) \
514 if ( !Abc_ObjIsBlackbox(pObj) ) {} else
516#define Abc_NtkForEachPi( pNtk, pPi, i ) \
517 for ( i = 0; (i < Abc_NtkPiNum(pNtk)) && (((pPi) = Abc_NtkPi(pNtk, i)), 1); i++ )
518#define Abc_NtkForEachCi( pNtk, pCi, i ) \
519 for ( i = 0; (i < Abc_NtkCiNum(pNtk)) && (((pCi) = Abc_NtkCi(pNtk, i)), 1); i++ )
520#define Abc_NtkForEachPo( pNtk, pPo, i ) \
521 for ( i = 0; (i < Abc_NtkPoNum(pNtk)) && (((pPo) = Abc_NtkPo(pNtk, i)), 1); i++ )
522#define Abc_NtkForEachCo( pNtk, pCo, i ) \
523 for ( i = 0; (i < Abc_NtkCoNum(pNtk)) && (((pCo) = Abc_NtkCo(pNtk, i)), 1); i++ )
524#define Abc_NtkForEachLiPo( pNtk, pCo, i ) \
525 for ( i = 0; (i < Abc_NtkCoNum(pNtk)) && (((pCo) = Abc_NtkCo(pNtk, i < pNtk->nBarBufs ? Abc_NtkCoNum(pNtk) - pNtk->nBarBufs + i : i - pNtk->nBarBufs)), 1); i++ )
527#define Abc_ObjForEachFanin( pObj, pFanin, i ) \
528 for ( i = 0; (i < Abc_ObjFaninNum(pObj)) && (((pFanin) = Abc_ObjFanin(pObj, i)), 1); i++ )
529#define Abc_ObjForEachFanout( pObj, pFanout, i ) \
530 for ( i = 0; (i < Abc_ObjFanoutNum(pObj)) && (((pFanout) = Abc_ObjFanout(pObj, i)), 1); i++ )
531#define Abc_ObjForEachFaninId( pObj, iFanin, i ) \
532 for ( i = 0; (i < Abc_ObjFaninNum(pObj)) && (((iFanin) = Abc_ObjFaninId(pObj, i)), 1); i++ )
533#define Abc_ObjForEachFanoutId( pObj, iFanout, i ) \
534 for ( i = 0; (i < Abc_ObjFanoutNum(pObj)) && (((iFanout) = Abc_ObjFanoutId(pObj, i)), 1); i++ )
536#define Abc_CubeForEachVar( pCube, Value, i ) \
537 for ( i = 0; (pCube[i] != ' ') && (Value = pCube[i]); i++ )
538#define Abc_SopForEachCube( pSop, nFanins, pCube ) \
539 for ( pCube = (pSop); *pCube; pCube += (nFanins) + 3 )
540#define Abc_SopForEachCubePair( pSop, nFanins, pCube, pCube2 ) \
541 Abc_SopForEachCube( pSop, nFanins, pCube ) \
542 Abc_SopForEachCube( pCube + (nFanins) + 3, nFanins, pCube2 )
796extern ABC_DLL void Abc_NtkPermute(
Abc_Ntk_t * pNtk,
int fInputs,
int fOutputs,
int fFlops,
char * pInPermFile,
char * pOutPermFile,
char * pFlopPermFile );
840extern ABC_DLL void Abc_NtkPrintStats(
Abc_Ntk_t * pNtk,
int fFactored,
int fSaveBest,
int fDumpResult,
int fUseLutLib,
int fPrintMuxes,
int fPower,
int fGlitch,
int fSkipBuf,
int fSkipSmall,
int fPrintMem );
ABC_DLL void Abc_NtkFreeMvVars(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkSweep(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfs(Abc_Ntk_t *pNtk)
struct Abc_Obj_t_ Abc_Obj_t
struct Abc_ManTime_t_ Abc_ManTime_t
ABC_DLL Abc_Obj_t * Abc_NtkFindOrCreateNet(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL void Abc_NtkCleanMarkA(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NodeGetCutsSeq(void *p, Abc_Obj_t *pObj, int fFirst)
ABC_DLL void * Abc_NtkAttrFree(Abc_Ntk_t *pNtk, int Attr, int fFreeMan)
DECLARATIONS ///.
ABC_DLL int Abc_NtkGetBufNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromGias(char *pName, Vec_Ptr_t *vGias, Gia_Man_t *pMulti)
ABC_DLL Abc_Obj_t * Abc_NtkFindNode(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL int Abc_NtkGetLitNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkFunctionalIso(Abc_Ntk_t *pNtk, int iCo1, int iCo2, int fCommon)
ABC_DLL float Abc_NtkMfsTotalSwitching(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanMarkC(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_AigDfs(Abc_Ntk_t *pNtk, int fCollectAll, int fCollectCos)
ABC_DLL int Abc_NtkIsDfsOrdered(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkIvyProve(Abc_Ntk_t **ppNtk, void *pPars)
ABC_DLL int Abc_NtkGetLitFactNum(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopFromTruthHex(char *pTruth)
ABC_DLL char * Abc_SopStart(Mem_Flex_t *pMan, int nCubes, int nVars)
ABC_DLL char * Abc_SopDecoderPos(Mem_Flex_t *pMan, int nValues)
ABC_DLL Abc_Obj_t * Abc_NtkFindCi(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL int Abc_NtkCountSelfFeedLatches(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_ObjReplaceByConstant(Abc_Obj_t *pNode, int fConst1)
ABC_DLL Abc_Ntk_t * Abc_NtkFromBarBufs(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NodeStrash(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pNode, int fRecord)
ABC_DLL Vec_Vec_t * Abc_NtkLevelize(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTimeSetDefaultOutputLoad(Abc_Ntk_t *pNtk, float Rise, float Fall)
ABC_DLL int Abc_NtkGetFaninMax(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromRange(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTimeSetDefaultArrival(Abc_Ntk_t *pNtk, float Rise, float Fall)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
ABC_DLL void Abc_NtkOrderObjsByName(Abc_Ntk_t *pNtk, int fComb)
ABC_DLL Abc_Ntk_t * Abc_NtkToBarBufs(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanMarkABC(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlistBench(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_NodeGetCuts(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
ABC_DLL void Abc_NodeComplementInput(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
ABC_DLL int Abc_ExactIsRunning()
ABC_DLL float Abc_NtkDelayTrace(Abc_Ntk_t *pNtk, Abc_Obj_t *pOut, Abc_Obj_t *pIn, int fPrint)
ABC_DLL char * Abc_SopCreateXorSpecial(Mem_Flex_t *pMan, int nVars)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL void Abc_DesPrint(Abc_Des_t *p)
ABC_DLL void Abc_NtkReverseTopoOrder(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_AigXor(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL float Abc_NtkReadDefaultRequiredWorst(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkSupport(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkCombinePos(Abc_Ntk_t *pNtk, int fAnd, int fXor)
ABC_DLL void Abc_NtkMiterReport(Abc_Ntk_t *pMiter)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateCone(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName, int fUseAllCis)
ABC_DLL int Abc_NtkCleanupNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vNodes, int fVerbose)
ABC_DLL void Abc_NtkCleanCopy_rec(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_DesDeriveRoot(Abc_Des_t *p)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsWithBoxes(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopEncoderPos(Mem_Flex_t *pMan, int iValue, int nValues)
ABC_DLL int Abc_NtkCountCopy(Abc_Ntk_t *pNtk)
ABC_DLL Gia_Man_t * Abc_SopSynthesizeOne(char *pSop, int fClp)
ABC_DLL void Abc_NtkWriteLogFile(char *pFileName, Abc_Cex_t *pSeqCex, int Status, int nFrames, char *pCommand)
DECLARATIONS ///.
ABC_DLL void Abc_NtkTrasferNames(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
ABC_DLL Abc_Time_t * Abc_NtkGetCiArrivalTimes(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkRecStop3()
ABC_DLL int Abc_NtkIsTopo(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst1(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NodeGetFaninNames(Abc_Obj_t *pNode)
ABC_DLL Abc_Des_t * Abc_DesDup(Abc_Des_t *p)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
ABC_DLL void Abc_AigRehash(Abc_Aig_t *pMan)
ABC_DLL int Abc_NodeIsBuf(Abc_Obj_t *pNode)
ABC_DLL Abc_Time_t * Abc_NodeReadArrival(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_NtkDfs2(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantify(Abc_Ntk_t *pNtk, int In, int fExist)
ABC_DLL int Abc_SopIsConst0(char *pSop)
ABC_DLL Abc_Time_t * Abc_NodeReadOutputLoad(Abc_Ntk_t *pNtk, int iPo)
ABC_DLL int Abc_NodeMffcSize(Abc_Obj_t *pNode)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_DesFindTopLevelModels(Abc_Des_t *p)
ABC_DLL Abc_Ntk_t * Abc_NtkToLogic(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL float Abc_NodeReadRequiredWorst(Abc_Obj_t *pNode)
ABC_DLL void Abc_AigPrintNode(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsBin(char *pTruth)
ABC_DLL Abc_Ntk_t * Abc_NtkStrashBlifMv(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkRestrash(Abc_Ntk_t *pNtk, int fCleanup)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_NtkConvertDcLatches(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_NtkMiterSatCreate(Abc_Ntk_t *pNtk, int fAllPrimes)
ABC_DLL Abc_Ntk_t * Abc_NtkBddToMuxes(Abc_Ntk_t *pNtk, int fGlobal, int Limit, int fUseAdd)
ABC_DLL int Abc_AigNodeHasComplFanoutEdge(Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkCharNames(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopEncoderLog(Mem_Flex_t *pMan, int iBit, int nValues)
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)
ABC_DLL void Abc_NtkCleanData(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCheckRead(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkFetchTwinNode(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
ABC_DLL void Abc_NtkSetMvVarValues(Abc_Obj_t *pObj, int nValues)
ABC_DLL void Abc_VecObjPushUniqueOrderByLevel(Vec_Ptr_t *p, Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_AigGetLevelizedOrder(Abc_Ntk_t *pNtk, int fCollectCis)
ABC_DLL Odc_Man_t * Abc_NtkDontCareAlloc(int nVarsMax, int nLevels, int fVerbose, int fVeryVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Time_t * Abc_NodeReadInputDrive(Abc_Ntk_t *pNtk, int iPi)
ABC_DLL int Abc_ObjReverseLevelNew(Abc_Obj_t *pObj)
ABC_DLL int Abc_NodeMffcSizeStop(Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkAddDummyBoxNames(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCleanup(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL void Abc_DesFree(Abc_Des_t *p, Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsToBuffers(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkAddLatch(Abc_Ntk_t *pNtk, Abc_Obj_t *pDriver, Abc_InitType_t Init)
ABC_DLL void Abc_NtkTransferPhases(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkPrintCiLevels(Abc_Ntk_t *pNtk)
ABC_DLL float Abc_NtkReadDefaultArrivalWorst(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeEvalMvCost(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
ABC_DLL int Abc_ObjRequiredLevel(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkSopToBdd(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopFromTruthBin(char *pTruth)
ABC_DLL void Abc_ObjRecycle(Abc_Obj_t *pObj)
ABC_DLL Gia_Man_t * Abc_NtkClpGia(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkRecLibMerge3(Gia_Man_t *pGia)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverseNodesContained(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
ABC_DLL Abc_Ntk_t * Abc_NtkDupDfsNoBarBufs(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanMarkB(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetChoiceNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_AigUpdateReset(Abc_Aig_t *pMan)
ABC_DLL Abc_Obj_t * Abc_ObjInsertBetween(Abc_Obj_t *pNodeIn, Abc_Obj_t *pNodeOut, Abc_ObjType_t Type)
ABC_DLL void Abc_NtkLogicMakeDirectSops(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkDfs(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Obj_t * Abc_AigMux(Abc_Aig_t *pMan, Abc_Obj_t *pC, Abc_Obj_t *p1, Abc_Obj_t *p0)
ABC_DLL int Abc_NtkDontCareCompute(Odc_Man_t *p, Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves, unsigned *puTruth)
ABC_DLL int Abc_NodeMffcLabelAig(Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkGetMuxNum(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateNxor(Mem_Flex_t *pMan, int nVars)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIterNodes(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeConst0(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NodePrintFanio(FILE *pFile, Abc_Obj_t *pNode)
ABC_DLL char * Abc_SopCreateFromTruthIsop(Mem_Flex_t *pMan, int nVars, word *pTruth, Vec_Int_t *vCover)
ABC_DLL float Abc_NodeReadArrivalAve(Abc_Obj_t *pNode)
ABC_DLL void Abc_NodeFreeNames(Vec_Ptr_t *vNames)
ABC_DLL double Abc_NtkGetMappedArea(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkPrintFanioNew(FILE *pFile, Abc_Ntk_t *pNtk, int fMffc)
ABC_DLL int Abc_NtkToBdd(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkStartFromNoLatches(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
ABC_DLL int Abc_SopCheck(char *pSop, int nFanins)
ABC_DLL void Abc_NtkUnpermute(Abc_Ntk_t *pNtk)
struct Abc_ManCut_t_ Abc_ManCut_t
ABC_DLL int Abc_ObjFanoutFaninNum(Abc_Obj_t *pFanout, Abc_Obj_t *pFanin)
ABC_DLL void Abc_ObjPrint(FILE *pFile, Abc_Obj_t *pObj)
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultOutputLoad(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_AigUpdateStop(Abc_Aig_t *pMan)
ABC_DLL int Abc_NtkLevelReverse(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkCollapse(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDualRail, int fReorder, int fReverse, int fDumpOrder, int fVerbose)
DECLARATIONS ///.
ABC_DLL char * Abc_SopCreateInv(Mem_Flex_t *pMan)
ABC_DLL Abc_Ntk_t * Abc_NtkDeriveFromBdd(void *dd, void *bFunc, char *pNamePo, Vec_Ptr_t *vNamesPi)
ABC_DLL int Abc_NtkCheckUniqueCoNames(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateOrMultiCube(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_DLL char * Abc_SopCreateOr(Mem_Flex_t *pMan, int nVars, int *pfCompl)
struct Odc_Man_t_ Odc_Man_t
ABC_DLL int Abc_SopGetPhase(char *pSop)
ABC_DLL void Abc_NtkRecAdd3(Abc_Ntk_t *pNtk, int fUseSOPB)
ABC_DLL char * Abc_NodeConvertSopToMvSop(int nVars, Vec_Int_t *vSop0, Vec_Int_t *vSop1)
ABC_DLL int Abc_NtkRecIsRunning3()
ABC_DLL void Abc_NodePrintLevel(FILE *pFile, Abc_Obj_t *pNode)
ABC_DLL void Abc_SopComplement(char *pSop)
ABC_DLL int Abc_NodeIsInv(Abc_Obj_t *pNode)
ABC_DLL void Abc_ManTimeDup(Abc_Ntk_t *pNtkOld, Abc_Ntk_t *pNtkNew)
ABC_DLL int Abc_NtkPhaseFrameNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkMiterCofactor(Abc_Ntk_t *pNtk, Vec_Int_t *vPiValues)
ABC_DLL void Abc_NodeConeCollect(Abc_Obj_t **ppRoots, int nRoots, Vec_Ptr_t *vFanins, Vec_Ptr_t *vVisited, int fIncludeFanins)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeOr(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
ABC_DLL char * Abc_SopCreateConst1(Mem_Flex_t *pMan)
ABC_DLL void Abc_NodeComplement(Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkDontCareClear(Odc_Man_t *p)
ABC_DLL int Abc_NodeMffcLabel(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
ABC_DLL Vec_Vec_t * Abc_DfsLevelized(Abc_Obj_t *pNode, int fTfi)
ABC_DLL Gia_Man_t * Abc_NtkAigToGia(Abc_Ntk_t *p, int fGiaSimple)
ABC_DLL Abc_Ntk_t * Abc_NtkStartRead(char *pName)
struct Abc_Aig_t_ Abc_Aig_t
ABC_DLL void Abc_NtkPrintFanio(FILE *pFile, Abc_Ntk_t *pNtk, int fUseFanio, int fUsePio, int fUseSupp, int fUseCone)
ABC_DLL void Abc_NtkInsertHierarchyGia(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNew, int fVerbose)
ABC_DLL void Abc_NtkManCutStop(Abc_ManCut_t *p)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeq(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkBarBufsFromBuffers(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
ABC_DLL void Abc_NtkDeleteObj_rec(Abc_Obj_t *pObj, int fOnlyNodes)
ABC_DLL void Abc_NodeCollectFanouts(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
ABC_DLL Abc_Ntk_t * Abc_NtkFindExact(word *pTruth, int nVars, int nFunc, int nMaxDepth, int *pArrivalTimes, int nBTLimit, int nStartGates, int fVerbose)
ABC_DLL int Abc_NtkMiterProve(Abc_Ntk_t **ppNtk, void *pParams)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkCreateMffc(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode, char *pNodeName)
ABC_DLL int Abc_NtkMapToSop(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkUpdate(Abc_Obj_t *pObj, Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
ABC_DLL Abc_Ntk_t * Abc_NtkHaigUse(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetExorNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkSopToAig(Abc_Ntk_t *pNtk)
struct Abc_Ntk_t_ Abc_Ntk_t
ABC_DLL void * Abc_NodeGetCutsRecursive(void *p, Abc_Obj_t *pObj, int fDag, int fTree)
ABC_DLL int Abc_NtkRemoveDupFanins(Abc_Ntk_t *pNtk)
ABC_DLL float Abc_NodeReadRequiredAve(Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkPrintStats(Abc_Ntk_t *pNtk, int fFactored, int fSaveBest, int fDumpResult, int fUseLutLib, int fPrintMuxes, int fPower, int fGlitch, int fSkipBuf, int fSkipSmall, int fPrintMem)
ABC_DLL int Abc_NtkMapToSopUsingLibrary(Abc_Ntk_t *pNtk, void *library)
ABC_DLL void Abc_ObjReplace(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
ABC_DLL Vec_Int_t * Abc_NtkGetCiIds(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkConvertToBlifMv(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
ABC_DLL void Abc_NtkFinalize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
ABC_DLL void Abc_NtkFinalizeRead(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultArrival(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Obj_t * Abc_AigAndLookup(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL void Abc_NtkCleanNames(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateAnd2(Mem_Flex_t *pMan, int fCompl0, int fCompl1)
ABC_DLL int Abc_NtkGetCubePairNum(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeIsConst0(Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkDarPrintCone(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateFromTruth(Mem_Flex_t *pMan, int nVars, unsigned *pTruth)
ABC_DLL void Abc_NtkLoadCopy(Abc_Ntk_t *pNtk, Vec_Ptr_t *vCopies)
ABC_DLL Abc_Aig_t * Abc_AigAlloc(Abc_Ntk_t *pNtk)
FUNCTION DECLARATIONS ///.
ABC_DLL int Abc_NtkFraigStore(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateNand(Mem_Flex_t *pMan, int nVars)
ABC_DLL Vec_Ptr_t * Abc_NtkNodeSupport(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
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 ///.
ABC_DLL int Abc_NodeRemoveDupFanins(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsIter(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL float Abc_NtkDelayTraceLut(Abc_Ntk_t *pNtk, int fUseLutLib)
ABC_DLL Vec_Ptr_t * Abc_AigUpdateStart(Abc_Aig_t *pMan, Vec_Ptr_t **pvUpdatedNets)
Abc_NtkType_t
INCLUDES ///.
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_AigCheckFaninOrder(Abc_Aig_t *pMan)
ABC_DLL void Abc_NtkTimeSetRequired(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
ABC_DLL int Abc_NodeIsMuxControlType(Abc_Obj_t *pNode)
ABC_DLL Abc_Ntk_t * Abc_NtkBalanceExor(Abc_Ntk_t *pNtk, int fUpdateLevel, int fVerbose)
ABC_DLL void Abc_ObjTransferFanout(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
ABC_DLL Gia_Man_t * Abc_NtkFlattenHierarchyGia(Abc_Ntk_t *pNtk, Vec_Ptr_t **pvBuffers, int fVerbose)
ABC_DLL int Abc_NtkAigToBdd(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkMiterForCofactors(Abc_Ntk_t *pNtk, int Out, int In1, int In2)
ABC_DLL void Abc_NtkPermute(Abc_Ntk_t *pNtk, int fInputs, int fOutputs, int fFlops, char *pInPermFile, char *pOutPermFile, char *pFlopPermFile)
ABC_DLL char * Abc_SopCreateAnd(Mem_Flex_t *pMan, int nVars, int *pfCompl)
ABC_DLL Abc_Des_t * Abc_DesCreate(char *pName)
DECLARATIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkMiterAnd(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOr, int fCompl2)
ABC_DLL int Abc_SopGetLitNum(char *pSop)
ABC_DLL Abc_Ntk_t * Abc_NtkFlattenLogicHierarchy(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NodeCollectTfoCands(Abc_ManCut_t *p, Abc_Obj_t *pRoot, Vec_Ptr_t *vFanins, int LevelMax)
ABC_DLL int Abc_NtkRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
ABC_DLL Abc_Ntk_t * Abc_NtkFraigTrust(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDupTransformMiter(Abc_Ntk_t *pNtk)
struct Abc_Des_t_ Abc_Des_t
BASIC TYPES ///.
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_NtkFreeGlobalBdds(Abc_Ntk_t *pNtk, int fFreeMan)
ABC_DLL int * Abc_NtkVerifySimulatePattern(Abc_Ntk_t *pNtk, int *pModel)
ABC_DLL void Abc_NodePrintFactor(FILE *pFile, Abc_Obj_t *pNode, int fUseRealNames)
ABC_DLL Abc_Ntk_t * Abc_NtkMiterQuantifyPis(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NodeHasUniqueCoFanout(Abc_Obj_t *pNode)
ABC_DLL int Abc_NodeIsConst(Abc_Obj_t *pNode)
ABC_DLL float * Abc_NtkGetCoRequiredFloats(Abc_Ntk_t *pNtk)
ABC_DLL Gia_Man_t * Abc_NtkRecGetGia3()
ABC_DLL Abc_Obj_t * Abc_ExactBuildNode(word *pTruth, int nVars, int *pArrTimeProfile, Abc_Obj_t **pFanins, Abc_Ntk_t *pNtk)
ABC_DLL int * Abc_NtkVerifyGetCleanModel(Abc_Ntk_t *pNtk, int nFrames)
ABC_DLL void Abc_NtkUpdateLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
ABC_DLL Abc_Time_t * Abc_NodeReadRequired(Abc_Obj_t *pNode)
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultRequired(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLevelR(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromSops(char *pName, Vec_Ptr_t *vSops)
ABC_DLL void Abc_NtkTimeInitialize(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkOld)
ABC_DLL void Abc_NtkSortSops(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkHaigStart(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanNext(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeAnd(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
ABC_DLL int Abc_NtkMakeLegit(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkToNetlist(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkLogicMakeSimpleCos(Abc_Ntk_t *pNtk, int fDuplicate)
ABC_DLL void Abc_SopToTruthBig(char *pSop, int nInputs, word **pVars, word *pCube, word *pRes)
ABC_DLL void Abc_NtkShow6VarFunc(char *pF0, char *pF1)
ABC_DLL Vec_Ptr_t * Abc_NodeFindCut(Abc_ManCut_t *p, Abc_Obj_t *pRoot, int fContain)
ABC_DLL void Abc_NtkInvertConstraints(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeCompareLevelsIncrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
struct Abc_Time_t_ Abc_Time_t
ABC_DLL void Abc_NtkUpdateReverseLevel(Abc_Obj_t *pObjNew, Vec_Vec_t *vLevels)
ABC_DLL void Abc_ObjDeleteFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
ABC_DLL void Abc_SopComplementVar(char *pSop, int iVar)
ABC_DLL void Abc_NtkInsertLatchValues(Abc_Ntk_t *pNtk, Vec_Int_t *vValues)
ABC_DLL void Abc_NtkMiterAddCone(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkMiter, Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkGetBddNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_DesFindModelByName(Abc_Des_t *p, char *pName)
ABC_DLL void Abc_NodeCollectFanins(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
ABC_DLL int Abc_AigCheck(Abc_Aig_t *pMan)
ABC_DLL char * Abc_ObjNameSuffix(Abc_Obj_t *pObj, char *pSuffix)
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
ABC_DLL Abc_Obj_t * Abc_AigAnd(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL void Abc_NtkUpdateNameIds(Abc_Ntk_t *p)
ABC_DLL int Abc_NtkToAig(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeMux(Abc_Ntk_t *pNtk, Abc_Obj_t *pNodeC, Abc_Obj_t *pNode1, Abc_Obj_t *pNode0)
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 ///.
ABC_DLL void * Abc_NodeReadCuts(void *p, Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkMakeComb(Abc_Ntk_t *pNtk, int fRemoveLatches)
ABC_DLL void Abc_NodeBddToCnf(Abc_Obj_t *pNode, Mem_Flex_t *pMmMan, Vec_Str_t *vCube, int fAllPrimes, char **ppSop0, char **ppSop1)
ABC_DLL void Abc_NtkTransferNameIds(Abc_Ntk_t *p, Abc_Ntk_t *pNew)
ABC_DLL void Abc_NtkPrintSkews(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintAll)
ABC_DLL Abc_Obj_t * Abc_AigOr(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1)
ABC_DLL void Abc_SopToTruth7(char *pSop, int nInputs, word r[2])
ABC_DLL int Abc_SopGetIthCareLit(char *pSop, int i)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsHie(Abc_Ntk_t *pNtk, int fCollectAll)
ABC_DLL int Abc_NtkToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit)
ABC_DLL Abc_Ntk_t * Abc_NtkFraigRestore(int nPatsRand, int nPatsDyna, int nBTLimit)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeInv(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
ABC_DLL char * Abc_ObjNamePrefix(Abc_Obj_t *pObj, char *pPrefix)
ABC_DLL Abc_Obj_t * Abc_AigXorLookup(Abc_Aig_t *pMan, Abc_Obj_t *p0, Abc_Obj_t *p1, int *pType)
ABC_DLL void Abc_ObjSetReverseLevel(Abc_Obj_t *pObj, int LevelR)
ABC_DLL char * Abc_ObjNameDummy(char *pPrefix, int Num, int nDigits)
ABC_DLL void Abc_NtkPrintFactor(FILE *pFile, Abc_Ntk_t *pNtk, int fUseRealNames)
ABC_DLL Abc_Ntk_t * Abc_NtkRestrashZero(Abc_Ntk_t *pNtk, int fCleanup)
ABC_DLL int Abc_NtkCleanupSeq(Abc_Ntk_t *pNtk, int fLatchSweep, int fAutoSweep, int fVerbose)
ABC_DLL void Abc_NtkRecStart3(Gia_Man_t *p, int nVars, int nCuts, int fFuncOnly, int fVerbose)
ABC_DLL int Abc_NtkIsAcyclicWithBoxes(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkDoCheck(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopIsInv(char *pSop)
ABC_DLL Abc_Ntk_t * Abc_NtkStrash(Abc_Ntk_t *pNtk, int fAllNodes, int fCleanup, int fRecord)
ABC_DLL Vec_Ptr_t * Abc_NtkConverLatchNamesIntoNumbers(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTimeSetDefaultInputDrive(Abc_Ntk_t *pNtk, float Rise, float Fall)
ABC_DLL int Abc_NtkCheckUniqueCioNames(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkPrintBoxInfo(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkStartMvVars(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
ABC_DLL int Abc_AigLevel(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_NtkBuildGlobalBdds(Abc_Ntk_t *pNtk, int fBddSizeMax, int fDropInternal, int fReorder, int fReverse, int fVerbose)
ABC_DLL void Abc_NtkDeleteAll_rec(Abc_Obj_t *pObj)
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)
ABC_DLL void Abc_DesCleanManPointer(Abc_Des_t *p, void *pMan)
ABC_DLL Abc_Ntk_t * Abc_NtkConvertBlackboxes(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDeleteObjPo(Abc_Obj_t *pObj)
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadVisited(Abc_ManCut_t *p)
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeExor(Abc_Ntk_t *pNtk, Vec_Ptr_t *vFanins)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateTarget(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, Vec_Int_t *vValues)
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutLarge(Abc_ManCut_t *p)
ABC_DLL int Abc_SopGetVarNum(char *pSop)
ABC_DLL char ** Abc_NtkCollectCioNames(Abc_Ntk_t *pNtk, int fCollectCos)
ABC_DLL int Abc_SopIsExorType(char *pSop)
ABC_DLL int Abc_ObjPointerCompare(void **pp1, void **pp2)
ABC_DLL int Abc_NtkGetAigNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTransferCopy(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkMinimumBase(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
ABC_DLL Vec_Int_t * Abc_NtkCollectLatchValues(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeCompareNames(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
ABC_DLL void Abc_ObjRemoveFanins(Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkAppend(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fAddPos)
ABC_DLL Vec_Ptr_t * Abc_SopFromTruthsHex(char *pTruth)
ABC_DLL float Abc_NodeReadOutputLoadWorst(Abc_Ntk_t *pNtk, int iPo)
ABC_DLL int Abc_NtkLatchIsSelfFeed(Abc_Obj_t *pLatch)
ABC_DLL void Abc_NtkFraigStoreClean()
ABC_DLL char * Abc_SopCreateFromIsop(Mem_Flex_t *pMan, int nVars, Vec_Int_t *vCover)
ABC_DLL void Abc_NtkTimeSetDefaultRequired(Abc_Ntk_t *pNtk, float Rise, float Fall)
ABC_DLL void Abc_ObjPatchFanoutFanin(Abc_Obj_t *pObj, int iObjNew)
ABC_DLL Abc_Ntk_t * Abc_NtkFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDontCareFree(Odc_Man_t *p)
ABC_DLL Abc_Obj_t * Abc_NtkCreateObj(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
ABC_DLL void Abc_NtkTrasferNamesNoLatches(Abc_Ntk_t *pNtk, Abc_Ntk_t *pNtkNew)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateConeArray(Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots, int fUseAllCis)
ABC_DLL Vec_Ptr_t * Abc_NtkSaveCopy(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkCloneObj(Abc_Obj_t *pNode)
ABC_DLL char * Abc_NtkCollectLatchValuesStr(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkRemoveSelfFeedLatches(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkStartNameIds(Abc_Ntk_t *p)
ABC_DLL void Abc_AigSetNodePhases(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NodeFreeCuts(void *p, Abc_Obj_t *pObj)
ABC_DLL int Abc_NtkPrepareTwoNtks(FILE *pErr, Abc_Ntk_t *pNtk, char **argv, int argc, Abc_Ntk_t **ppNtk1, Abc_Ntk_t **ppNtk2, int *pfDelete1, int *pfDelete2, int fCheck)
ABC_DLL char * Abc_SopDecoderLog(Mem_Flex_t *pMan, int nValues)
ABC_DLL int Abc_NtkIsTrueCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
ABC_DLL int Abc_NtkRecInputNum3()
ABC_DLL int Abc_DesAddModel(Abc_Des_t *p, Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_ObjAlloc(Abc_Ntk_t *pNtk, Abc_ObjType_t Type)
DECLARATIONS ///.
ABC_DLL Vec_Ptr_t * Abc_NtkDfsNodes(Abc_Ntk_t *pNtk, Abc_Obj_t **ppNodes, int nNodes)
ABC_DLL void Abc_AigDeleteNode(Abc_Aig_t *pMan, Abc_Obj_t *pOld)
ABC_DLL Abc_Ntk_t * Abc_NtkTopmost(Abc_Ntk_t *pNtk, int nLevels)
ABC_DLL int Abc_AigNodeIsAcyclic(Abc_Obj_t *pNode, Abc_Obj_t *pRoot)
ABC_DLL word Abc_SopToTruth(char *pSop, int nInputs)
ABC_DLL Abc_Obj_t * Abc_AigMiter(Abc_Aig_t *pMan, Vec_Ptr_t *vPairs, int fImplic)
ABC_DLL Abc_Ntk_t * Abc_NtkCollapseSat(Abc_Ntk_t *pNtk, int nCubeLim, int nBTLimit, int nCostMax, int fCanon, int fReverse, int fCnfShared, int fVerbose)
ABC_DLL Vec_Int_t * Abc_NtkNodeSupportInt(Abc_Ntk_t *pNtk, int iCo)
ABC_DLL int Abc_SopIsComplement(char *pSop)
ABC_DLL void Abc_NtkTimeSetOutputLoad(Abc_Ntk_t *pNtk, int PoNum, float Rise, float Fall)
ABC_DLL int Abc_NtkSweepBufsInvs(Abc_Ntk_t *pNtk, int fVerbose)
ABC_DLL void Abc_NtkFillTemp(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkCleanCopy(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_AigNodeHasComplFanoutEdgeTrav(Abc_Obj_t *pNode)
ABC_DLL int Abc_SopIsAndType(char *pSop)
ABC_DLL Abc_Obj_t * Abc_NodeFindCoFanout(Abc_Obj_t *pNode)
ABC_DLL Abc_Ntk_t * Abc_NtkBalance(Abc_Ntk_t *pNtk, int fDuplicate, int fSelective, int fUpdateLevel)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_ObjPatchFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFaninOld, Abc_Obj_t *pFaninNew)
ABC_DLL char * Abc_SopCreateXor(Mem_Flex_t *pMan, int nVars)
ABC_DLL void Abc_NtkCleanNext_rec(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetLargeNodeNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkTimeSetArrival(Abc_Ntk_t *pNtk, int ObjId, float Rise, float Fall)
ABC_DLL char * Abc_SopCreateNor(Mem_Flex_t *pMan, int nVars)
ABC_DLL int Abc_NtkGetFanoutMax(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NtkFindCo(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL Vec_Ptr_t * Abc_NtkCollectLatches(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkIsAcyclicHierarchy(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NodeGetFakeNames(int nNames)
ABC_DLL int Abc_NtkAttach(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
ABC_DLL int Abc_NodeIsMuxType(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_AigDfsMap(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAppendToCone(Abc_Ntk_t *pNtkNew, Abc_Ntk_t *pNtk, Vec_Ptr_t *vRoots)
ABC_DLL int Abc_SopGetCubeNum(char *pSop)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateFromNode(Abc_Ntk_t *pNtk, Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkCompareSignals(Abc_Ntk_t *pNtk1, Abc_Ntk_t *pNtk2, int fOnlyPis, int fComb)
ABC_DLL int Abc_SopIsBuf(char *pSop)
ABC_DLL Abc_Ntk_t * Abc_NtkFrames(Abc_Ntk_t *pNtk, int nFrames, int fInitial, int fVerbose)
ABC_DLL int Abc_NtkHaigStop(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkCheckUniqueCiNames(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkIsValidCex(Abc_Ntk_t *pNtk, Abc_Cex_t *pCex)
ABC_DLL int Abc_NtkRefactor(Abc_Ntk_t *pNtk, int nNodeSizeMax, int nMinSaved, int nConeSizeMax, int fUpdateLevel, int fUseZeros, int fUseDcs, int fVerbose)
ABC_DLL float Abc_NodeReadInputDriveWorst(Abc_Ntk_t *pNtk, int iPi)
ABC_DLL int Abc_SopIsConst1(char *pSop)
ABC_DLL void Abc_NtkTimeSetInputDrive(Abc_Ntk_t *pNtk, int PiNum, float Rise, float Fall)
ABC_DLL int Abc_NtkGetCubeNum(Abc_Ntk_t *pNtk)
ABC_DLL float Abc_NtkMfsTotalGlitching(Abc_Ntk_t *pNtk, int nPats, int Prob, int fVerbose)
ABC_DLL char * Abc_SopCreateConst0(Mem_Flex_t *pMan)
ABC_DLL void Abc_AigFree(Abc_Aig_t *pMan)
ABC_DLL Abc_Ntk_t * Abc_NtkInsertNewLogic(Abc_Ntk_t *pNtkH, Abc_Ntk_t *pNtkL)
ABC_DLL int Abc_NtkBddToSop(Abc_Ntk_t *pNtk, int fMode, int nCubeLimit, int fCubeSort)
ABC_DLL int Abc_ObjLevelNew(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkPrintLatch(FILE *pFile, Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopRegister(Mem_Flex_t *pMan, const char *pName)
DECLARATIONS ///.
ABC_DLL Abc_Time_t * Abc_NtkReadDefaultInputDrive(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkSetNodeLevelsArrival(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Obj_t * Abc_NodeRecognizeMux(Abc_Obj_t *pNode, Abc_Obj_t **ppNodeT, Abc_Obj_t **ppNodeE)
ABC_DLL Abc_Time_t * Abc_NtkGetCoRequiredTimes(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkReassignIds(Abc_Ntk_t *pNtk)
ABC_DLL void * Abc_NtkToFraig(Abc_Ntk_t *pNtk, void *pParams, int fAllNodes, int fExdc)
ABC_DLL int Abc_ExactInputNum()
ABC_DLL void Abc_NtkCleanMarkAB(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_ObjReverseLevel(Abc_Obj_t *pObj)
ABC_DLL int Abc_AigReplace(Abc_Aig_t *pMan, Abc_Obj_t *pOld, Abc_Obj_t *pNew, int fUpdateLevel)
ABC_DLL void Abc_ManTimeStop(Abc_ManTime_t *p)
ABC_DLL void Abc_NtkFixNonDrivenNets(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkManCutReadCutSmall(Abc_ManCut_t *p)
ABC_DLL Abc_Ntk_t * Abc_NtkStartFrom(Abc_Ntk_t *pNtk, Abc_NtkType_t Type, Abc_NtkFunc_t Func)
ABC_DLL int Abc_NtkGetClauseNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeRef_rec(Abc_Obj_t *pNode)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNodes(Vec_Ptr_t *vSops)
ABC_DLL int Abc_NodeMffcSizeSupp(Abc_Obj_t *pNode)
ABC_DLL int Abc_NodeDeref_rec(Abc_Obj_t *pNode)
ABC_DLL int Abc_NtkLogicHasSimpleCos(Abc_Ntk_t *pNtk)
ABC_DLL Abc_Ntk_t * Abc_NtkDup(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeCompareLevelsDecrease(Abc_Obj_t **pp1, Abc_Obj_t **pp2)
ABC_DLL char * Abc_SopCreateBuf(Mem_Flex_t *pMan)
ABC_DLL void Abc_NtkPrintLevel(FILE *pFile, Abc_Ntk_t *pNtk, int fProfile, int fListNodes, int fOutputs, int fVerbose)
ABC_DLL Abc_Obj_t * Abc_NodeFindNonCoFanout(Abc_Obj_t *pNode)
ABC_DLL void Abc_NtkPrintIo(FILE *pFile, Abc_Ntk_t *pNtk, int fPrintFlops)
ABC_DLL Abc_ManCut_t * Abc_NtkManCutStart(int nNodeSizeMax, int nConeSizeMax, int nNodeFanStop, int nConeFanStop)
ABC_DLL float Abc_NodeReadArrivalWorst(Abc_Obj_t *pNode)
ABC_DLL Vec_Ptr_t * Abc_NtkCollectObjects(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkShortNames(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkSizeOfGlobalBdds(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkRecPs3(int fPrintLib)
ABC_DLL Abc_Obj_t * Abc_AigConst1(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkIsAcyclic(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeIsConst1(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NtkFindNet(Abc_Ntk_t *pNtk, char *pName)
ABC_DLL Abc_Ntk_t * Abc_NtkInsertBlifMv(Abc_Ntk_t *pNtkBase, Abc_Ntk_t *pNtkLogic)
ABC_DLL int Abc_NtkCheckObj(Abc_Ntk_t *pNtk, Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsReverse(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_SopIsOrType(char *pSop)
ABC_DLL int Abc_NtkMiterIsConstant(Abc_Ntk_t *pMiter)
ABC_DLL float * Abc_NtkGetCiArrivalFloats(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NtkGetTotalFanins(Abc_Ntk_t *pNtk)
ABC_DLL int Abc_NodeFindFanin(Abc_Obj_t *pNode, Abc_Obj_t *pFanin)
ABC_DLL Abc_Ntk_t * Abc_NtkCreateWithNode(char *pSop)
ABC_DLL int Abc_NodeMinimumBase(Abc_Obj_t *pNode)
ABC_DLL void Abc_NodeMffcConeSupp(Abc_Obj_t *pNode, Vec_Ptr_t *vCone, Vec_Ptr_t *vSupp)
ABC_DLL int Abc_NodeIsExorType(Abc_Obj_t *pNode)
ABC_DLL Abc_Obj_t * Abc_NtkDupBox(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pBox, int fCopyName)
ABC_DLL Vec_Ptr_t * Abc_NtkDfsSeqReverse(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_SopCreateMux(Mem_Flex_t *pMan)
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
struct Vec_Str_t_ Vec_Str_t
struct Gia_Man_t_ Gia_Man_t
unsigned __int64 word
DECLARATIONS ///.
struct Mem_Step_t_ Mem_Step_t
typedefABC_NAMESPACE_HEADER_START struct Mem_Fixed_t_ Mem_Fixed_t
DECLARATIONS ///.
struct Mem_Flex_t_ Mem_Flex_t
typedefABC_NAMESPACE_HEADER_START struct Nm_Man_t_ Nm_Man_t
INCLUDES ///.
int nObjCounts[ABC_OBJ_NUMBER]
Vec_Ptr_t * vLtlProperties
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
struct Vec_Att_t_ Vec_Att_t
BASIC TYPES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.