21 #ifndef ABC__aig__aig__aig_h
22 #define ABC__aig__aig__aig_h
218 #define Aig_ObjForEachCut( p, pObj, pCut, i ) \
219 for ( i = 0, pCut = Aig_ObjCuts(p, pObj); i < p->nCutsMax; i++, pCut = Aig_CutNext(pCut) )
221 #define Aig_CutForEachLeaf( p, pCut, pLeaf, i ) \
222 for ( i = 0; (i < (int)(pCut)->nFanins) && ((pLeaf) = Aig_ManObj(p, (pCut)->pFanins[i])); i++ )
228 static inline unsigned Aig_ObjCutSign(
unsigned ObjId ) {
return (1 << (ObjId & 31)); }
231 uWord = (uWord & 0x55555555) + ((uWord>>1) & 0x55555555);
232 uWord = (uWord & 0x33333333) + ((uWord>>2) & 0x33333333);
233 uWord = (uWord & 0x0F0F0F0F) + ((uWord>>4) & 0x0F0F0F0F);
234 uWord = (uWord & 0x00FF00FF) + ((uWord>>8) & 0x00FF00FF);
235 return (uWord & 0x0000FFFF) + (uWord>>16);
240 for ( i = 0; i < 32; i++ )
241 if ( uWord & (1 << i) )
381 assert( pEntry->nRefs == 0 );
393 #define Aig_ManForEachCi( p, pObj, i ) \
394 Vec_PtrForEachEntry( Aig_Obj_t *, p->vCis, pObj, i )
395 #define Aig_ManForEachCiReverse( p, pObj, i ) \
396 Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vCis, pObj, i )
398 #define Aig_ManForEachCo( p, pObj, i ) \
399 Vec_PtrForEachEntry( Aig_Obj_t *, p->vCos, pObj, i )
400 #define Aig_ManForEachCoReverse( p, pObj, i ) \
401 Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vCos, pObj, i )
403 #define Aig_ManForEachObj( p, pObj, i ) \
404 Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else
405 #define Aig_ManForEachObjReverse( p, pObj, i ) \
406 Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else
408 #define Aig_ManForEachObjVec( vIds, p, pObj, i ) \
409 for ( i = 0; i < Vec_IntSize(vIds) && (((pObj) = Aig_ManObj(p, Vec_IntEntry(vIds,i))), 1); i++ )
410 #define Aig_ManForEachObjVecReverse( vIds, p, pObj, i ) \
411 for ( i = Vec_IntSize(vIds) - 1; i >= 0 && (((pObj) = Aig_ManObj(p, Vec_IntEntry(vIds,i))), 1); i-- )
413 #define Aig_ManForEachNode( p, pObj, i ) \
414 Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsNode(pObj) ) {} else
415 #define Aig_ManForEachNodeReverse( p, pObj, i ) \
416 Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsNode(pObj) ) {} else
418 #define Aig_ManForEachExor( p, pObj, i ) \
419 Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsExor(pObj) ) {} else
420 #define Aig_ManForEachExorReverse( p, pObj, i ) \
421 Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsExor(pObj) ) {} else
427 #define Aig_ObjForEachFanout( p, pObj, pFanout, iFan, i ) \
428 for ( assert(p->pFanData), i = 0; (i < (int)(pObj)->nRefs) && \
429 (((iFan) = i? Aig_ObjFanoutNext(p, iFan) : Aig_ObjFanout0Int(p, pObj->Id)), 1) && \
430 (((pFanout) = Aig_ManObj(p, iFan>>1)), 1); i++ )
438 #define Aig_ManForEachPiSeq( p, pObj, i ) \
439 Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCis, pObj, i, Aig_ManCiNum(p)-Aig_ManRegNum(p) )
441 #define Aig_ManForEachLoSeq( p, pObj, i ) \
442 Vec_PtrForEachEntryStart( Aig_Obj_t *, p->vCis, pObj, i, Aig_ManCiNum(p)-Aig_ManRegNum(p) )
444 #define Aig_ManForEachPoSeq( p, pObj, i ) \
445 Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCos, pObj, i, Aig_ManCoNum(p)-Aig_ManRegNum(p) )
447 #define Aig_ManForEachLiSeq( p, pObj, i ) \
448 Vec_PtrForEachEntryStart( Aig_Obj_t *, p->vCos, pObj, i, Aig_ManCoNum(p)-Aig_ManRegNum(p) )
450 #define Aig_ManForEachLiLoSeq( p, pObjLi, pObjLo, k ) \
451 for ( k = 0; (k < Aig_ManRegNum(p)) && (((pObjLi) = Aig_ManLi(p, k)), 1) \
452 && (((pObjLo)=Aig_ManLo(p, k)), 1); k++ )
613 extern Aig_Man_t *
Aig_ManScl(
Aig_Man_t * pAig,
int fLatchConst,
int fLatchEqual,
int fUseMvSweep,
int nFramesSymb,
int nFramesSatur,
int fVerbose,
int fVeryVerbose );
Aig_Obj_t * Aig_ObjCreateCo(Aig_Man_t *p, Aig_Obj_t *pDriver)
Vec_Ptr_t * Aig_ManSupportsRegisters(Aig_Man_t *p)
static int Aig_ManGetCost(Aig_Man_t *p)
static int Aig_ObjIsTravIdPrevious(Aig_Man_t *p, Aig_Obj_t *pObj)
int Aig_ObjCompareIdIncrease(Aig_Obj_t **pp1, Aig_Obj_t **pp2)
void Aig_ManDumpVerilog(Aig_Man_t *p, char *pFileName)
static int Aig_ObjIsMarkA(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupExor(Aig_Man_t *p)
int Aig_NodeDeref_rec(Aig_Obj_t *pNode, unsigned LevelMin, float *pPower, float *pProbs)
DECLARATIONS ///.
static void Aig_ObjSetEquiv(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pEqu)
Aig_Man_t * Aig_ManRemap(Aig_Man_t *p, Vec_Ptr_t *vMap)
DECLARATIONS ///.
static int Aig_ObjSetLevel(Aig_Obj_t *pObj, int i)
int Aig_NodeMffcLabel(Aig_Man_t *p, Aig_Obj_t *pNode, float *pPower)
void Aig_ManVerifyReverseLevel(Aig_Man_t *p)
static int Aig_ObjLevelNew(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupArray(Vec_Ptr_t *vArray)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Aig_Man_t * Aig_ManRegCreatePart(Aig_Man_t *pAig, Vec_Int_t *vPart, int *pnCountPis, int *pnCountRegs, int **ppMapBack)
Vec_Ptr_t * Aig_ManRegPartitionSmart(Aig_Man_t *pAig, int nPartSize)
void Aig_ManShow(Aig_Man_t *pMan, int fHaig, Vec_Ptr_t *vBold)
ABC_DLL int Aig_ManCheck(Aig_Man_t *p)
FUNCTION DECLARATIONS ///.
static int Aig_ObjPhase(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjRepr(Aig_Man_t *p, Aig_Obj_t *pObj)
int Aig_ObjCollectSuper(Aig_Obj_t *pObj, Vec_Ptr_t *vSuper)
static Aig_Type_t Aig_ObjType(Aig_Obj_t *pObj)
static int Aig_ObjFanoutNext(Aig_Man_t *p, int iFan)
static int Aig_ObjFaninId0(Aig_Obj_t *pObj)
void Aig_ObjOrderRemove(Aig_Man_t *p, int ObjId)
char * Aig_FileNameGenericAppend(char *pBase, char *pSuffix)
static int Aig_ObjFanoutC(Aig_Obj_t *pObj, Aig_Obj_t *pFanout)
static int Aig_ManConstrNum(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManFetchMemory(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Vec_Vec_t_ Vec_Vec_t
INCLUDES ///.
int Aig_ManVerifyTopoOrder(Aig_Man_t *p)
DECLARATIONS ///.
Vec_Ptr_t * Aig_ManPartitionSmart(Aig_Man_t *p, int nPartSizeLimit, int fVerbose, Vec_Ptr_t **pvPartSupps)
int Aig_ManCoCleanup(Aig_Man_t *p)
static Aig_Cut_t * Aig_CutNext(Aig_Cut_t *pCut)
void Aig_ManCheckMarkA(Aig_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Aig_Man_t_ Aig_Man_t
INCLUDES ///.
void Aig_MmFlexRestart(Aig_MmFlex_t *p)
static Aig_Obj_t * Aig_ObjChild0(Aig_Obj_t *pObj)
static void Aig_ObjDeref(Aig_Obj_t *pObj)
void Aig_ManCheckPhase(Aig_Man_t *p)
Aig_Obj_t * Aig_TableLookup(Aig_Man_t *p, Aig_Obj_t *pGhost)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
void Aig_ManPartDivide(Vec_Ptr_t *vResult, Vec_Int_t *vDomain, int nPartSize, int nOverSize)
Aig_Man_t * Aig_ManCreateMiter(Aig_Man_t *p1, Aig_Man_t *p2, int fImpl)
void Aig_ManStop(Aig_Man_t *p)
int Aig_ManSeqCleanupBasic(Aig_Man_t *p)
int Aig_ManSeqCleanup(Aig_Man_t *p)
static int Aig_ObjIsTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjReal_rec(Aig_Obj_t *pObj)
static int Aig_ManObjNum(Aig_Man_t *p)
void Aig_ManVerifyLevel(Aig_Man_t *p)
void Aig_ManReprStop(Aig_Man_t *p)
Aig_Obj_t * Aig_Exor(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
void Aig_MmFixedStop(Aig_MmFixed_t *p, int fVerbose)
Aig_Man_t * Aig_ManDupOrdered(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjFanin0(Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_ManDfsChoices(Aig_Man_t *p)
static int Abc_Var2Lit(int Var, int fCompl)
Aig_Man_t * Aig_ManStart(int nNodesMax)
DECLARATIONS ///.
Aig_Man_t * Aig_ManDupDfs(Aig_Man_t *p)
char * Aig_MmFlexEntryFetch(Aig_MmFlex_t *p, int nBytes)
static Aig_Obj_t * Aig_ManGhost(Aig_Man_t *p)
void Aig_ManPrintStats(Aig_Man_t *p)
Vec_Ptr_t * Aig_ManRegProjectOnehots(Aig_Man_t *pAig, Aig_Man_t *pPart, Vec_Ptr_t *vOnehots, int fVerbose)
static Aig_Obj_t * Aig_ManLi(Aig_Man_t *p, int i)
Vec_Ptr_t * Aig_ManMuxesCollect(Aig_Man_t *pAig)
void Aig_ManCleanMarkB(Aig_Man_t *p)
static int Aig_IsComplement(Aig_Obj_t *p)
Vec_Ptr_t * Aig_ManSupports(Aig_Man_t *p)
Aig_Man_t * Aig_ManRetimeFrontier(Aig_Man_t *p, int nStepsMax)
static Aig_Obj_t * Aig_Regular(Aig_Obj_t *p)
Vec_Ptr_t * unfold2_type_II
Aig_Obj_t * Aig_ObjCreateCi(Aig_Man_t *p)
DECLARATIONS ///.
void Aig_ManStartMemory(Aig_Man_t *p)
static unsigned * Aig_CutTruth(Aig_Cut_t *pCut)
Aig_MmStep_t * Aig_MmStepStart(int nSteps)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
Aig_Obj_t * Aig_Maj(Aig_Man_t *p, Aig_Obj_t *pA, Aig_Obj_t *pB, Aig_Obj_t *pC)
static Aig_Obj_t * Aig_ManConst0(Aig_Man_t *p)
void Aig_SupportNodes(Aig_Man_t *p, Aig_Obj_t **ppObjs, int nObjs, Vec_Ptr_t *vSupp)
static void Aig_ObjRef(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ManObj(Aig_Man_t *p, int i)
int Aig_ObjRequiredLevel(Aig_Man_t *p, Aig_Obj_t *pObj)
word Aig_ManRandom64(int fReset)
static void Aig_ObjClean(Aig_Obj_t *pObj)
unsigned Aig_ManRandom(int fReset)
void Aig_ManStopP(Aig_Man_t **p)
static Aig_Obj_t * Aig_Not(Aig_Obj_t *p)
void Aig_MmFixedEntryRecycle(Aig_MmFixed_t *p, char *pEntry)
Aig_Man_t * Aig_ManRehash(Aig_Man_t *p)
Aig_Man_t * Aig_ManChoiceConstructive(Vec_Ptr_t *vAigs, int fVerbose)
Vec_Ptr_t * Aig_ManPartitionNaive(Aig_Man_t *p, int nPartSize)
static int Aig_ObjFaninId1(Aig_Obj_t *pObj)
static int Abc_MaxInt(int a, int b)
void Aig_ManUpdateReverseLevel(Aig_Man_t *p, Aig_Obj_t *pObjNew)
static Aig_Obj_t * Aig_ObjFanin1(Aig_Obj_t *pObj)
static int Vec_PtrSize(Vec_Ptr_t *p)
Aig_MmFixed_t * Aig_MmFixedStart(int nEntrySize, int nEntriesMax)
FUNCTION DEFINITIONS ///.
Aig_Obj_t * Aig_Transfer(Aig_Man_t *pSour, Aig_Man_t *pDest, Aig_Obj_t *pObj, int nVars)
Aig_Obj_t * Aig_Oper(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1, Aig_Type_t Type)
static void Aig_ObjSetTravIdCurrent(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjDelete(Aig_Man_t *p, Aig_Obj_t *pObj)
static void Aig_ObjSetMarkA(Aig_Obj_t *pObj)
static int Aig_ManNodeNum(Aig_Man_t *p)
void Aig_TableDelete(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjOrderAdvance(Aig_Man_t *p)
Vec_Ptr_t * Aig_ManDfsAll(Aig_Man_t *p)
void Aig_ObjCleanData_rec(Aig_Obj_t *pObj)
void Aig_ManRandomInfo(Vec_Ptr_t *vInfo, int iInputStart, int iWordStart, int iWordStop)
int Aig_SupportSize(Aig_Man_t *p, Aig_Obj_t *pObj)
static unsigned Aig_ObjCutSign(unsigned ObjId)
MACRO DEFINITIONS ///.
Aig_Obj_t * Aig_And(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
void Aig_ManFanoutStart(Aig_Man_t *p)
FUNCTION DEFINITIONS ///.
Aig_Obj_t * Aig_ObjCreate(Aig_Man_t *p, Aig_Obj_t *pGhost)
Aig_Man_t * Aig_ManFrames(Aig_Man_t *pAig, int nFs, int fInit, int fOuts, int fRegs, int fEnlarge, Aig_Obj_t ***ppObjMap)
FUNCTION DEFINITIONS ///.
int Aig_ManChoiceLevel(Aig_Man_t *p)
void Aig_ObjPrint(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ManStartReverseLevels(Aig_Man_t *p, int nMaxLevelIncrease)
unsigned * Aig_ManCutTruth(Aig_Obj_t *pRoot, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes, Vec_Ptr_t *vTruthElem, Vec_Ptr_t *vTruthStore)
static void Aig_ObjSetCuts(Aig_ManCut_t *p, Aig_Obj_t *pObj, Aig_Cut_t *pCuts)
void Aig_ManSetPhase(Aig_Man_t *pAig)
void Aig_ManFanoutStop(Aig_Man_t *p)
void Aig_ManCutStop(Aig_ManCut_t *p)
Aig_Obj_t * Aig_Miter(Aig_Man_t *p, Vec_Ptr_t *vPairs)
static void Aig_ObjClearMarkA(Aig_Obj_t *pObj)
void Aig_MmStepEntryRecycle(Aig_MmStep_t *p, char *pEntry, int nBytes)
Aig_Man_t * Aig_ManDupRepresDfs(Aig_Man_t *p)
void Aig_ManIncrementTravId(Aig_Man_t *p)
DECLARATIONS ///.
int Aig_NodeMffcSupp(Aig_Man_t *p, Aig_Obj_t *pNode, int LevelMin, Vec_Ptr_t *vSupp)
static int Aig_ManBufNum(Aig_Man_t *p)
void Aig_ManMuxesRef(Aig_Man_t *pAig, Vec_Ptr_t *vMuxes)
static void Aig_ObjClearRef(Aig_Obj_t *pObj)
static int Aig_ObjIsNode(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjRealCopy(Aig_Obj_t *pObj)
int Aig_ManAntiCleanup(Aig_Man_t *p)
static int Aig_ManCoNum(Aig_Man_t *p)
void Aig_ObjDeletePo(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ObjConnect(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFan0, Aig_Obj_t *pFan1)
static void Aig_ObjChild1Flip(Aig_Obj_t *pObj)
static int Aig_ObjIsBuf(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupDfsGuided(Aig_Man_t *p, Vec_Ptr_t *vPios)
static int Abc_LitIsCompl(int Lit)
int Aig_MmStepReadMemUsage(Aig_MmStep_t *p)
void Aig_ManStopReverseLevels(Aig_Man_t *p)
static int Aig_WordCountOnes(unsigned uWord)
static int Aig_ObjIsTerm(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ManLo(Aig_Man_t *p, int i)
static void Aig_ManRecycleMemory(Aig_Man_t *p, Aig_Obj_t *pEntry)
void Aig_ObjCollectCut(Aig_Obj_t *pRoot, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vNodes)
static int * Aig_CutLeaves(Aig_Cut_t *pCut)
static void Aig_ObjSetRepr(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pRepr)
Aig_Man_t * Aig_ManReduceLaches(Aig_Man_t *p, int fVerbose)
void Aig_ManFlipFirstPo(Aig_Man_t *p)
void Aig_ManReprStart(Aig_Man_t *p, int nIdMax)
DECLARATIONS ///.
Vec_Ptr_t * Aig_Support(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Obj_t * Aig_ObjRecognizeMux(Aig_Obj_t *pObj, Aig_Obj_t **ppObjT, Aig_Obj_t **ppObjE)
void Aig_ObjPatchFanin0(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFaninNew)
int Aig_ManHasNoGaps(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjFromLit(Aig_Man_t *p, int iLit)
void Aig_ManSetRegNum(Aig_Man_t *p, int nRegs)
Aig_ManCut_t * Aig_ComputeCuts(Aig_Man_t *pAig, int nCutsMax, int nLeafMax, int fTruth, int fVerbose)
void Aig_ManReportImprovement(Aig_Man_t *p, Aig_Man_t *pNew)
Aig_Obj_t * Aig_IthVar(Aig_Man_t *p, int i)
FUNCTION DEFINITIONS ///.
Aig_Man_t * Aig_ManScl(Aig_Man_t *pAig, int fLatchConst, int fLatchEqual, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose)
static Aig_Obj_t * Aig_ManCi(Aig_Man_t *p, int i)
Vec_Ptr_t * Aig_ManDfsNodes(Aig_Man_t *p, Aig_Obj_t **ppNodes, int nNodes)
Aig_Obj_t * Aig_CreateOr(Aig_Man_t *p, int nVars)
static int Aig_ObjIsNone(Aig_Obj_t *pObj)
void Aig_ManStopMemory(Aig_Man_t *p)
void Aig_ObjReplace(Aig_Man_t *p, Aig_Obj_t *pObjOld, Aig_Obj_t *pObjNew, int fUpdateLevel)
int Aig_TransferMappedClasses(Aig_Man_t *pAig, Aig_Man_t *pPart, int *pMapBack)
Aig_Man_t * Aig_ManDupSimpleWithHints(Aig_Man_t *p, Vec_Int_t *vHints)
static int Aig_WordFindFirstBit(unsigned uWord)
unsigned __int64 word
DECLARATIONS ///.
void Aig_ManPrintVerbose(Aig_Man_t *p, int fHaig)
Aig_Man_t * Aig_ManConstReduce(Aig_Man_t *p, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose)
static int Aig_ManCiNum(Aig_Man_t *p)
void Aig_ManMarkValidChoices(Aig_Man_t *p)
static int Aig_ObjWhatFanin(Aig_Obj_t *pObj, Aig_Obj_t *pFanin)
Aig_Man_t * Aig_ManDupFlopsOnly(Aig_Man_t *p)
void Aig_ObjClearReverseLevel(Aig_Man_t *p, Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_ManOrderPios(Aig_Man_t *p, Aig_Man_t *pOrder)
Vec_Ptr_t * Aig_ManDfsPreorder(Aig_Man_t *p, int fNodesOnly)
Aig_Man_t * Aig_ManDupNodes(Aig_Man_t *pMan, Vec_Ptr_t *vArray)
static Aig_Obj_t * Aig_ObjChild1(Aig_Obj_t *pObj)
static int Aig_ObjIsConst1(Aig_Obj_t *pObj)
int Aig_ManCountMergeRegs(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjEquiv(Aig_Man_t *p, Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild1Copy(Aig_Obj_t *pObj)
Aig_Obj_t * Aig_Or(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1)
int Aig_ObjRecognizeExor(Aig_Obj_t *pObj, Aig_Obj_t **ppFan0, Aig_Obj_t **ppFan1)
Aig_Obj_t * Aig_ManDupSimpleDfs_rec(Aig_Man_t *pNew, Aig_Man_t *p, Aig_Obj_t *pObj)
Vec_Vec_t * Aig_ManLevelize(Aig_Man_t *p)
static int Aig_ObjPhaseReal(Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_ManDfs(Aig_Man_t *p, int fNodesOnly)
void Aig_ManMuxesDeref(Aig_Man_t *pAig, Vec_Ptr_t *vMuxes)
char * Aig_MmFixedEntryFetch(Aig_MmFixed_t *p)
int Aig_MmFlexReadMemUsage(Aig_MmFlex_t *p)
static Aig_Obj_t * Aig_ObjCreateGhost(Aig_Man_t *p, Aig_Obj_t *p0, Aig_Obj_t *p1, Aig_Type_t Type)
void Aig_NodeUnionLists(Vec_Ptr_t *vArr1, Vec_Ptr_t *vArr2, Vec_Ptr_t *vArr)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
static Aig_Obj_t * Aig_ObjChild0Copy(Aig_Obj_t *pObj)
Aig_Obj_t * Aig_MiterTwo(Aig_Man_t *p, Vec_Ptr_t *vNodes1, Vec_Ptr_t *vNodes2)
void Aig_ManSetCioIds(Aig_Man_t *p)
void Aig_ManDumpBlif(Aig_Man_t *p, char *pFileName, Vec_Ptr_t *vPiNames, Vec_Ptr_t *vPoNames)
Aig_Obj_t * Aig_TableLookupTwo(Aig_Man_t *p, Aig_Obj_t *pFanin0, Aig_Obj_t *pFanin1)
Vec_Ptr_t * Aig_ManPartitionSmartRegisters(Aig_Man_t *pAig, int nSuppSizeLimit, int fVerbose)
static void Aig_ObjChild0Flip(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupSimpleDfs(Aig_Man_t *p)
Aig_Man_t * Aig_ManStartFrom(Aig_Man_t *p)
Aig_Obj_t * Aig_Multi(Aig_Man_t *p, Aig_Obj_t **pArgs, int nArgs, Aig_Type_t Type)
Aig_Man_t * Aig_ManDupCof(Aig_Man_t *p, int iInput, int Value)
void Aig_ManInvertConstraints(Aig_Man_t *pAig)
int Aig_TableCountEntries(Aig_Man_t *p)
#define ABC_NAMESPACE_HEADER_END
Aig_Man_t * Aig_ManDupRepr(Aig_Man_t *p, int fOrdered)
static int Aig_ObjFaninC0(Aig_Obj_t *pObj)
void Aig_ManDump(Aig_Man_t *p)
void Aig_ObjRemoveFanout(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFanout)
static int Aig_ManObjNumMax(Aig_Man_t *p)
Vec_Ptr_t * Aig_ManDfsReverse(Aig_Man_t *p)
static void Aig_ObjSetTravIdPrevious(Aig_Man_t *p, Aig_Obj_t *pObj)
Vec_Ptr_t * Aig_ManSupportsInverse(Aig_Man_t *p)
static Aig_Obj_t * Aig_ManConst1(Aig_Man_t *p)
int Aig_ManChoiceNum(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjChild1Next(Aig_Obj_t *pObj)
static void Aig_ObjSetCopy(Aig_Obj_t *pObj, Aig_Obj_t *pCopy)
int Aig_NodeRef_rec(Aig_Obj_t *pNode, unsigned LevelMin)
void Aig_ObjPrintEqn(FILE *pFile, Aig_Obj_t *pObj, Vec_Vec_t *vLevels, int Level)
static int Aig_ObjIsExor(Aig_Obj_t *pObj)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static Aig_Obj_t * Aig_ManCo(Aig_Man_t *p, int i)
Aig_Man_t * Aig_ManDupUnsolvedOutputs(Aig_Man_t *p, int fAddRegs)
void Aig_MmStepStop(Aig_MmStep_t *p, int fVerbose)
int Aig_DagSize(Aig_Obj_t *pObj)
int Aig_ManLevelNum(Aig_Man_t *p)
static Aig_Obj_t * Aig_ObjCopy(Aig_Obj_t *pObj)
void Aig_ObjDelete_rec(Aig_Man_t *p, Aig_Obj_t *pObj, int fFreeTop)
static int Aig_ObjToLit(Aig_Obj_t *pObj)
static int Aig_ManRegNum(Aig_Man_t *p)
Aig_Man_t * Aig_ManDupTrim(Aig_Man_t *p)
void Aig_NodeIntersectLists(Vec_Ptr_t *vArr1, Vec_Ptr_t *vArr2, Vec_Ptr_t *vArr)
static int Aig_ObjFanout0Int(Aig_Man_t *p, int ObjId)
Aig_Man_t * Aig_ManChoicePartitioned(Vec_Ptr_t *vAigs, int nPartSize, int nConfMax, int nLevelMax, int fVerbose)
Aig_Obj_t * Aig_Mux(Aig_Man_t *p, Aig_Obj_t *pC, Aig_Obj_t *p1, Aig_Obj_t *p0)
void Aig_ObjCollectMulti(Aig_Obj_t *pFunc, Vec_Ptr_t *vSuper)
int Aig_MmFixedReadMaxEntriesUsed(Aig_MmFixed_t *p)
char * Aig_MmStepEntryFetch(Aig_MmStep_t *p, int nBytes)
static Aig_Obj_t * Aig_ObjFanout0(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupOneOutput(Aig_Man_t *p, int iPoNum, int fAddRegs)
void Aig_ManCleanMarkAB(Aig_Man_t *p)
int Aig_MmFixedReadMemUsage(Aig_MmFixed_t *p)
Aig_MmFlex_t * Aig_MmFlexStart()
int Aig_ObjCheckTfi(Aig_Man_t *p, Aig_Obj_t *pNew, Aig_Obj_t *pOld)
int Aig_ManCiCleanup(Aig_Man_t *p)
Aig_Man_t * Aig_ManDupRepres(Aig_Man_t *p)
void Aig_MmFlexStop(Aig_MmFlex_t *p, int fVerbose)
static int Aig_CutLeaveNum(Aig_Cut_t *pCut)
void Aig_ConeUnmark_rec(Aig_Obj_t *pObj)
void Aig_ManComputeSccs(Aig_Man_t *p)
int Aig_ObjIsMuxType(Aig_Obj_t *pObj)
static int Aig_ObjIsCand(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManFraigPartitioned(Aig_Man_t *pAig, int nPartSize, int nConfMax, int nLevelMax, int fVerbose)
void Aig_ManTransferRepr(Aig_Man_t *pNew, Aig_Man_t *p)
void Aig_ManCleanMarkA(Aig_Man_t *p)
static int Abc_Lit2Var(int Lit)
void Aig_MmFixedRestart(Aig_MmFixed_t *p)
int Aig_NodeMffcExtendCut(Aig_Man_t *p, Aig_Obj_t *pNode, Vec_Ptr_t *vLeaves, Vec_Ptr_t *vResult)
void Aig_TableInsert(Aig_Man_t *p, Aig_Obj_t *pObj)
static int Aig_ObjFaninC1(Aig_Obj_t *pObj)
static int Aig_ObjLevel(Aig_Obj_t *pObj)
static int Aig_ManAndNum(Aig_Man_t *p)
void Aig_ManCleanCioIds(Aig_Man_t *p)
Aig_Obj_t * Aig_CreateExor(Aig_Man_t *p, int nVars)
void Aig_ObjPrintVerilog(FILE *pFile, Aig_Obj_t *pObj, Vec_Vec_t *vLevels, int Level)
static int Aig_ObjId(Aig_Obj_t *pObj)
void Aig_ObjCreateRepr(Aig_Man_t *p, Aig_Obj_t *pNode1, Aig_Obj_t *pNode2)
Aig_Man_t * Aig_ManExtractMiter(Aig_Man_t *p, Aig_Obj_t *pNode1, Aig_Obj_t *pNode2)
int Aig_ManCountReprs(Aig_Man_t *p)
static Aig_Cut_t * Aig_ObjCuts(Aig_ManCut_t *p, Aig_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Abc_Cex_t_ Abc_Cex_t
INCLUDES ///.
static int Aig_ManExorNum(Aig_Man_t *p)
int Aig_NodeMffcLabelCut(Aig_Man_t *p, Aig_Obj_t *pNode, Vec_Ptr_t *vLeaves)
void Aig_ManCleanNext(Aig_Man_t *p)
void Aig_ObjDisconnect(Aig_Man_t *p, Aig_Obj_t *pObj)
void Aig_ManFindCut(Aig_Obj_t *pRoot, Vec_Ptr_t *vFront, Vec_Ptr_t *vVisited, int nSizeLimit, int nFanoutLimit)
Aig_Obj_t * Aig_Compose(Aig_Man_t *p, Aig_Obj_t *pRoot, Aig_Obj_t *pFunc, int iVar)
static int Aig_ObjRefs(Aig_Obj_t *pObj)
void Aig_ObjAddFanout(Aig_Man_t *p, Aig_Obj_t *pObj, Aig_Obj_t *pFanout)
Vec_Ptr_t * Aig_ManMiterPartitioned(Aig_Man_t *p1, Aig_Man_t *p2, int nPartSize, int fSmart)
Vec_Ptr_t * unfold2_type_I
void(* pImpFunc)(void *, void *)
void Aig_ManUpdateLevel(Aig_Man_t *p, Aig_Obj_t *pObjNew)
static Aig_Obj_t * Aig_NotCond(Aig_Obj_t *p, int c)
void Aig_ManOrderStop(Aig_Man_t *p)
static int Aig_ObjIsCi(Aig_Obj_t *pObj)
void Aig_TableProfile(Aig_Man_t *p)
Aig_Man_t * Aig_ManDupWithoutPos(Aig_Man_t *p)
void Aig_ObjPrintVerbose(Aig_Obj_t *pObj, int fHaig)
int Aig_ManLevels(Aig_Man_t *p)
void Aig_ManOrderStart(Aig_Man_t *p)
DECLARATIONS ///.
void Aig_ManCleanData(Aig_Man_t *p)
void Aig_ObjOrderInsert(Aig_Man_t *p, int ObjId)
Aig_Man_t * Aig_ManDupLevelized(Aig_Man_t *p)
void Aig_ManResetRefs(Aig_Man_t *p)
int Aig_ManCleanup(Aig_Man_t *p)
static int Aig_ObjIsCo(Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupOrpos(Aig_Man_t *p, int fAddRegs)
void Aig_TableClear(Aig_Man_t *p)
Aig_Man_t * Aig_ManDupSimple(Aig_Man_t *p)
DECLARATIONS ///.
static int Aig_ObjIsChoice(Aig_Man_t *p, Aig_Obj_t *pObj)
Aig_Man_t * Aig_ManDupSimpleDfsPart(Aig_Man_t *p, Vec_Ptr_t *vPis, Vec_Ptr_t *vCos)
Vec_Ptr_t * Aig_ManRegPartitionSimple(Aig_Man_t *pAig, int nPartSize, int nOverSize)
void * Aig_ManReleaseData(Aig_Man_t *p)
Aig_Man_t * Rtm_ManRetime(Aig_Man_t *p, int fForward, int nStepsMax, int fVerbose)
Aig_Man_t * Aig_ManDupReprBasic(Aig_Man_t *p)
static int Aig_ObjIsAnd(Aig_Obj_t *pObj)
static Aig_Obj_t * Aig_ObjChild0Next(Aig_Obj_t *pObj)
static int Aig_ObjCioId(Aig_Obj_t *pObj)
Aig_Obj_t * Aig_CreateAnd(Aig_Man_t *p, int nVars)
static int Aig_ObjIsHash(Aig_Obj_t *pObj)
static void Aig_ObjSetTravId(Aig_Obj_t *pObj, int TravId)