21 #ifndef ABC__map__if__if_h
22 #define ABC__map__if__if_h
52 #define IF_MAX_LUTSIZE 32
54 #define IF_MAX_FUNC_LUTSIZE 15
56 #define IF_INFINITY 100000000
58 #define IF_COST_MAX 8191 // ((1<<13)-1)
60 #define IF_BIG_CHAR ((char)120)
394 static inline int If_CutTruthWords(
int nVarsMax ) {
return nVarsMax <= 5 ? 2 : (1 << (nVarsMax - 5)); }
395 static inline int If_CutPermWords(
int nVarsMax ) {
return nVarsMax /
sizeof(int) + ((nVarsMax %
sizeof(
int)) > 0); }
402 static inline unsigned If_ObjCutSign(
unsigned ObjId ) {
return (1 << (ObjId % 31)); }
436 #define IF_MIN(a,b) (((a) < (b))? (a) : (b))
437 #define IF_MAX(a,b) (((a) > (b))? (a) : (b))
440 #define IF_FLOAT_LARGE ((float)1.0e+20)
441 #define IF_FLOAT_SMALL ((float)1.0e-20)
442 #define IF_INT_LARGE (10000000)
445 #define If_ManForEachCi( p, pObj, i ) \
446 Vec_PtrForEachEntry( If_Obj_t *, p->vCis, pObj, i )
448 #define If_ManForEachCo( p, pObj, i ) \
449 Vec_PtrForEachEntry( If_Obj_t *, p->vCos, pObj, i )
451 #define If_ManForEachPi( p, pObj, i ) \
452 Vec_PtrForEachEntryStop( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi - p->pPars->nLatchesCiBox )
454 #define If_ManForEachPo( p, pObj, i ) \
455 Vec_PtrForEachEntryStartStop( If_Obj_t *, p->vCos, pObj, i, p->pPars->nLatchesCoBox, If_ManCoNum(p) - p->pPars->nLatchesCo )
457 #define If_ManForEachLatchInput( p, pObj, i ) \
458 Vec_PtrForEachEntryStart( If_Obj_t *, p->vCos, pObj, i, If_ManCoNum(p) - p->pPars->nLatchesCo )
459 #define If_ManForEachLatchOutput( p, pObj, i ) \
460 Vec_PtrForEachEntryStartStop( If_Obj_t *, p->vCis, pObj, i, If_ManCiNum(p) - p->pPars->nLatchesCi - p->pPars->nLatchesCiBox, If_ManCiNum(p) - p->pPars->nLatchesCiBox )
462 #define If_ManForEachObj( p, pObj, i ) \
463 Vec_PtrForEachEntry( If_Obj_t *, p->vObjs, pObj, i )
465 #define If_ManForEachObjReverse( p, pObj, i ) \
466 Vec_PtrForEachEntry( If_Obj_t *, p->vObjsRev, pObj, i )
468 #define If_ManForEachNode( p, pObj, i ) \
469 If_ManForEachObj( p, pObj, i ) if ( pObj->Type != IF_AND ) {} else
471 #define If_ObjForEachCut( pObj, pCut, i ) \
472 for ( i = 0; (i < (pObj)->pCutSet->nCuts) && ((pCut) = (pObj)->pCutSet->ppCuts[i]); i++ )
474 #define If_CutForEachLeaf( p, pCut, pLeaf, i ) \
475 for ( i = 0; (i < (int)(pCut)->nLeaves) && ((pLeaf) = If_ManObj(p, (pCut)->pLeaves[i])); i++ )
476 #define If_CutForEachLeafReverse( p, pCut, pLeaf, i ) \
477 for ( i = (int)(pCut)->nLeaves - 1; (i >= 0) && ((pLeaf) = If_ManObj(p, (pCut)->pLeaves[i])); i-- )
481 #define If_CutForEachLeafSeq( p, pCut, pLeaf, Shift, i ) \
482 for ( i = 0; (i < (int)(pCut)->nLeaves) && ((pLeaf) = If_ManObj(p, (pCut)->pLeaves[i] >> 8)) && (((Shift) = ((pCut)->pLeaves[i] & 255)) >= 0); i++ )
532 char * pLut0,
char * pLut1,
word * pFunc0,
word * pFunc1 );
533 extern int If_CluCheckExt3(
void *
p,
word * pTruth,
int nVars,
int nLutLeaf,
int nLutLeaf2,
int nLutRoot,
534 char * pLut0,
char * pLut1,
char * pLut2,
word * pFunc0,
word * pFunc1,
word * pFunc2 );
546 extern void If_DsdManPrint(
If_DsdMan_t *
p,
char * pFileName,
int Number,
int Support,
int fOccurs,
int fTtDump,
int fVerbose );
569 extern unsigned If_DsdManCheckXY(
If_DsdMan_t *
p,
int iDsd,
int LutSize,
int fDerive,
unsigned uMaskNot,
int fHighEffort,
int fVerbose );
void If_ManComputeSwitching(If_Man_t *p)
FUNCTION DEFINITIONS ///.
int nTruth6Words[IF_MAX_FUNC_LUTSIZE+1]
void If_CutRotatePins(If_Man_t *p, If_Cut_t *pCut)
static int * Vec_IntArray(Vec_Int_t *p)
float If_ManScanMappingDirect(If_Man_t *p)
float If_ManScanMappingSeq(If_Man_t *p)
int If_DsdManCheckDec(If_DsdMan_t *p, int iDsd)
int If_CluCheckExt(void *p, word *pTruth, int nVars, int nLutLeaf, int nLutRoot, char *pLut0, char *pLut1, word *pFunc0, word *pFunc1)
static If_Obj_t * If_NotCond(If_Obj_t *p, int c)
static int If_ObjIsLatch(If_Obj_t *pObj)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
void Ifn_NtkPrint(Ifn_Ntk_t *p)
int If_LibBoxLoad(char *pFileName)
float If_CutPowerFlow(If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot)
int If_DsdManCompute(If_DsdMan_t *p, word *pTruth, int nLeaves, unsigned char *pPerm, char *pLutStruct)
int If_CutPerformCheck10(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
static void If_ObjSetLValue(If_Obj_t *pObj, float LValue)
int If_CutSopBalancePinDelays(If_Man_t *p, If_Cut_t *pCut, char *pPerm)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wec_t_ Vec_Wec_t
INCLUDES ///.
int If_CutMerge(If_Man_t *p, If_Cut_t *pCut0, If_Cut_t *pCut1, If_Cut_t *pCut)
int If_CluCheckExt3(void *p, word *pTruth, int nVars, int nLutLeaf, int nLutLeaf2, int nLutRoot, char *pLut0, char *pLut1, char *pLut2, word *pFunc0, word *pFunc1, word *pFunc2)
static If_Obj_t * If_ManObj(If_Man_t *p, int i)
void If_DsdManSetLutSize(If_DsdMan_t *p, int nLutSize)
Vec_Str_t * vTtVars[IF_MAX_FUNC_LUTSIZE+1]
float If_CutEdgeRefed(If_Man_t *p, If_Cut_t *pCut)
static int If_ObjLevel(If_Obj_t *pObj)
int If_ManSatFindCofigBits(void *pSat, Vec_Int_t *vPiVars, Vec_Int_t *vPoVars, word *pTruth, int nVars, word Perm, int nInps, Vec_Int_t *vValues)
float If_CutAreaDeref(If_Man_t *p, If_Cut_t *pCut)
Vec_Wec_t * vTtIsops[IF_MAX_FUNC_LUTSIZE+1]
static int If_ObjId(If_Obj_t *pObj)
int If_ManPerformMappingSeq(If_Man_t *p)
void If_LibBoxWrite(char *pFileName, If_LibBox_t *p)
static void If_CutSetup(If_Man_t *p, If_Cut_t *pCut)
void If_CutTraverse(If_Man_t *p, If_Obj_t *pRoot, If_Cut_t *pCut, Vec_Ptr_t *vNodes)
void If_LibBoxFree(If_LibBox_t *p)
void If_ManResetOriginalRefs(If_Man_t *p)
static void * If_ObjCopy(If_Obj_t *pObj)
static int If_ManAndNum(If_Man_t *p)
int If_DsdManObjNum(If_DsdMan_t *p)
void If_LibLutPrint(If_LibLut_t *pLutLib)
float If_CutAreaFlow(If_Man_t *p, If_Cut_t *pCut)
float If_CutPowerRef(If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot)
void If_DsdManPrint(If_DsdMan_t *p, char *pFileName, int Number, int Support, int fOccurs, int fTtDump, int fVerbose)
Vec_Mem_t * vTtMem[IF_MAX_FUNC_LUTSIZE+1]
static unsigned * If_CutTruthUR(If_Man_t *p, If_Cut_t *pCut)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Vec_Int_t * vTtDecs[IF_MAX_FUNC_LUTSIZE+1]
void * If_ManSatBuildXYZ(int nLutSize)
If_LibLut_t * If_LibLutRead(char *FileName)
FUNCTION DEFINITIONS ///.
void If_LibBoxPrint(FILE *pFile, If_LibBox_t *p)
static int If_CutDsdIsCompl(If_Man_t *p, If_Cut_t *pCut)
If_Man_t * If_ManStart(If_Par_t *pPars)
FUNCTION DEFINITIONS ///.
void If_DsdManFree(If_DsdMan_t *p, int fVerbose)
static int Abc_Lit2LitL(int *pMap, int Lit)
unsigned If_DsdManCheckXY(If_DsdMan_t *p, int iDsd, int LutSize, int fDerive, unsigned uMaskNot, int fHighEffort, int fVerbose)
void If_ManSetDefaultPars(If_Par_t *pPars)
FUNCTION DECLARATIONS ///.
static float If_CutLutArea(If_Man_t *p, If_Cut_t *pCut)
void If_ManCleanMarkV(If_Man_t *p)
static int If_ObjIsAnd(If_Obj_t *pObj)
static int If_CutTruthWords(int nVarsMax)
static int If_ObjIsCo(If_Obj_t *pObj)
int pPerm[3][IF_MAX_LUTSIZE]
static int If_CutLeaveNum(If_Cut_t *pCut)
int If_CutVerifyCuts(If_Set_t *pCutSet, int fOrdered)
void If_ManComputeRequired(If_Man_t *p)
static void If_CutSetData(If_Cut_t *pCut, void *pData)
void If_DsdManInvertMarks(If_DsdMan_t *p, int fVerbose)
static int If_ObjFaninC0(If_Obj_t *pObj)
static void If_CutCopy(If_Man_t *p, If_Cut_t *pDst, If_Cut_t *pSrc)
static char * If_CutPerm(If_Cut_t *pCut)
If_Obj_t * If_ManCreateXor(If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1)
int If_ManCountSpecialPos(If_Man_t *p)
void If_ObjPerformMappingAnd(If_Man_t *p, If_Obj_t *pObj, int Mode, int fPreprocess, int fFirst)
void If_DsdManCleanMarks(If_DsdMan_t *p, int fVerbose)
typedefABC_NAMESPACE_IMPL_START struct Vec_Mem_t_ Vec_Mem_t
DECLARATIONS ///.
float pLutDelays[IF_MAX_LUTSIZE+1][IF_MAX_LUTSIZE+1]
static If_Obj_t * If_ObjFanin0(If_Obj_t *pObj)
int Ifn_NtkLutSizeMax(Ifn_Ntk_t *p)
Vec_Str_t * vTtPerms[IF_MAX_FUNC_LUTSIZE+1]
word If_CutPerformDerive07(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
Hash_IntMan_t * vPairHash
void If_LibBoxAdd(If_LibBox_t *p, If_Box_t *pBox)
static int If_ObjIsCi(If_Obj_t *pObj)
If_LibBox_t * If_LibBoxRead2(char *pFileName)
static If_Cut_t * If_ObjCutBest(If_Obj_t *pObj)
int(* pFuncCost)(If_Man_t *, If_Cut_t *)
int If_ManPerformMappingRound(If_Man_t *p, int nCutsUsed, int Mode, int fPreprocess, int fFirst, char *pLabel)
float If_CutEdgeDerefed(If_Man_t *p, If_Cut_t *pCut)
static int Abc_MaxInt(int a, int b)
static int Vec_PtrSize(Vec_Ptr_t *p)
float If_LibLutFastestPinDelay(If_LibLut_t *p)
int(* pFuncUser)(If_Man_t *, If_Obj_t *, If_Cut_t *)
void If_CutOrder(If_Cut_t *pCut)
int If_CutPerformCheck07(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
static void If_ObjSetLevel(If_Obj_t *pObj, int Level)
static unsigned If_CutSuppMask(If_Cut_t *pCut)
int If_CutPerformCheck08(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
void If_DsdManMerge(If_DsdMan_t *p, If_DsdMan_t *pNew)
If_Box_t * If_LibBoxReadBox(If_LibBox_t *p, int Id)
If_Obj_t * If_ManCreateCo(If_Man_t *p, If_Obj_t *pDriver)
If_LibBox_t * If_LibBoxRead(char *pFileName)
static int If_CutTruthIsCompl(If_Cut_t *pCut)
static If_Obj_t * If_Not(If_Obj_t *p)
void If_DsdManAllocIsops(If_DsdMan_t *p, int nLutSize)
char * If_DsdManFileName(If_DsdMan_t *p)
FUNCTION DEFINITIONS ///.
If_Obj_t * If_ManCreateMux(If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1, If_Obj_t *pCtrl)
static int If_ObjFaninC1(If_Obj_t *pObj)
int If_CutPerformCheck54(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
static word * If_CutTruthW(If_Man_t *p, If_Cut_t *pCut)
If_Set_t * If_ManSetupNodeCutSet(If_Man_t *p, If_Obj_t *pObj)
static int If_ManCiNum(If_Man_t *p)
void Id_DsdManTuneStr(If_DsdMan_t *p, char *pStruct, int nConfls, int nProcs, int fVerbose)
static int Abc_LitIsCompl(int Lit)
void If_ObjPerformMappingChoice(If_Man_t *p, If_Obj_t *pObj, int Mode, int fPreprocess)
void If_ManSetupSetAll(If_Man_t *p, int nCrossCut)
void * If_ManSatBuildFromCell(char *pStr, Vec_Int_t **pvPiVars, Vec_Int_t **pvPoVars, Ifn_Ntk_t **ppNtk)
static unsigned If_ObjCutSignCompute(If_Cut_t *p)
If_LibBox_t * If_LibBoxStart()
static void Abc_TtCopy(word *pOut, word *pIn, int nWords, int fCompl)
float If_CutEdgeRef(If_Man_t *p, If_Cut_t *pCut)
Vec_Ptr_t * If_ManReverseOrder(If_Man_t *p)
int If_CutSopBalanceEvalInt(Vec_Int_t *vCover, int *pTimes, int *pFaninLits, Vec_Int_t *vAig, int *piRes, int nSuppAll, int *pArea)
static void If_CutSetDataInt(If_Cut_t *pCut, int Data)
unsigned If_ManSatCheckXYall(void *pSat, int nLutSize, word *pTruth, int nVars, Vec_Int_t *vLits)
static If_Obj_t * If_ManCo(If_Man_t *p, int i)
void If_DsdManSave(If_DsdMan_t *p, char *pFileName)
static word * If_CutTruthWR(If_Man_t *p, If_Cut_t *pCut)
#define IF_MAX_LUTSIZE
INCLUDES ///.
static int * If_CutLeaves(If_Cut_t *pCut)
float If_CutDelayLutStruct(If_Man_t *p, If_Cut_t *pCut, char *pStr, float WireDelay)
static int If_CutTruthLit(If_Cut_t *pCut)
static If_Obj_t * If_CutLeaf(If_Man_t *p, If_Cut_t *pCut, int i)
unsigned __int64 word
DECLARATIONS ///.
int If_ManPerformMappingComb(If_Man_t *p)
void If_ManSetupCutTriv(If_Man_t *p, If_Cut_t *pCut, int ObjId)
int If_ManCrossCut(If_Man_t *p)
static void If_ObjSetCopy(If_Obj_t *pObj, void *pCopy)
static If_Obj_t * If_ManConst1(If_Man_t *p)
void If_CutPrint(If_Cut_t *pCut)
float If_CutAreaDerefed(If_Man_t *p, If_Cut_t *pCut)
float If_CutAverageRefs(If_Man_t *p, If_Cut_t *pCut)
#define IF_MAX_FUNC_LUTSIZE
static int If_CutDataInt(If_Cut_t *pCut)
int Ifn_NtkInputNum(Ifn_Ntk_t *p)
int If_DsdManVarNum(If_DsdMan_t *p)
static unsigned * If_CutTruth(If_Man_t *p, If_Cut_t *pCut)
static If_Obj_t * If_ManCi(If_Man_t *p, int i)
static If_Obj_t * If_ObjFanin1(If_Obj_t *pObj)
int If_CutLutBalancePinDelays(If_Man_t *p, If_Cut_t *pCut, char *pPerm)
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
void * If_ManSatBuildXY(int nLutSize)
DECLARATIONS ///.
void If_ManSatUnbuild(void *p)
float If_ManScanMapping(If_Man_t *p)
typedefABC_NAMESPACE_HEADER_START struct Mem_Fixed_t_ Mem_Fixed_t
DECLARATIONS ///.
int If_ManSatDeriveGiaFromBits(void *pNew, Ifn_Ntk_t *p, Vec_Int_t *vLeaves, Vec_Int_t *vValues)
void If_ObjPrint(If_Obj_t *pObj)
int If_CutSopBalancePinDelaysInt(Vec_Int_t *vCover, int *pTimes, word *pFaninRes, int nSuppAll, word *pRes)
float If_CutEdgeDeref(If_Man_t *p, If_Cut_t *pCut)
static void If_ObjSetArrTime(If_Obj_t *pObj, float ArrTime)
int If_ManSatCheckXY(void *pSat, int nLutSize, word *pTruth, int nVars, unsigned uSet, word *pTBound, word *pTFree, Vec_Int_t *vLits)
Mem_Fixed_t * pMemEntries
int If_CutMergeOrdered(If_Man_t *p, If_Cut_t *pCut0, If_Cut_t *pCut1, If_Cut_t *pCut)
int If_LibLutDelaysAreDiscrete(If_LibLut_t *pLutLib)
static void * If_CutData(If_Cut_t *pCut)
int If_CutSopBalanceEval(If_Man_t *p, If_Cut_t *pCut, Vec_Int_t *vAig)
#define ABC_NAMESPACE_HEADER_END
static int If_ObjIsTerm(If_Obj_t *pObj)
int If_CutComputeTruth(If_Man_t *p, If_Cut_t *pCut, If_Cut_t *pCut0, If_Cut_t *pCut1, int fCompl0, int fCompl1)
If_Box_t * If_LibBoxFindBox(If_LibBox_t *p, char *pName)
static unsigned If_ObjCutSign(unsigned ObjId)
If_LibLut_t * If_LibLutDup(If_LibLut_t *p)
float If_CutPowerDeref(If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot)
int If_DsdManSuppSize(If_DsdMan_t *p, int iDsd)
static float If_ObjArrTime(If_Obj_t *pObj)
void If_CutPrintTiming(If_Man_t *p, If_Cut_t *pCut)
float If_ManDelayMax(If_Man_t *p, int fSeq)
void If_ManSetupCiCutSets(If_Man_t *p)
If_DsdMan_t * If_DsdManFilter(If_DsdMan_t *p, int Limit)
static void * Vec_PtrEntry(Vec_Ptr_t *p, int i)
static int If_ManObjNum(If_Man_t *p)
static int If_CutLeafBit(If_Cut_t *pCut, int i)
int If_CutCheck(If_Cut_t *pCut)
static void If_ObjSetChoice(If_Obj_t *pObj, If_Obj_t *pEqu)
static If_Obj_t * If_Regular(If_Obj_t *p)
static int If_CutDsdLit(If_Man_t *p, If_Cut_t *pCut)
word If_DsdManGetFuncPerm(If_DsdMan_t *p, int iDsd)
Vec_Int_t * vTtDsds[IF_MAX_FUNC_LUTSIZE+1]
void If_ManRestart(If_Man_t *p)
If_DsdMan_t * If_DsdManAlloc(int nVars, int nLutSize)
Vec_Ptr_t * If_ManCollectMappingDirect(If_Man_t *p)
void If_CutLift(If_Cut_t *pCut)
float If_CutDelay(If_Man_t *p, If_Obj_t *pObj, If_Cut_t *pCut)
int(* pFuncCell)(If_Man_t *, unsigned *, int, int, char *)
int If_CutFilter(If_Set_t *pCutSet, If_Cut_t *pCut, int fSaveCut0)
char pCanonPerm[IF_MAX_LUTSIZE]
static int If_ObjIsConst1(If_Obj_t *pObj)
void If_ManCreateChoice(If_Man_t *p, If_Obj_t *pRepr)
int If_ManPerformMapping(If_Man_t *p)
int If_DsdManLutSize(If_DsdMan_t *p)
int If_LibLutDelaysAreDifferent(If_LibLut_t *pLutLib)
static int If_CutPermWords(int nVarsMax)
void If_ManCleanCutData(If_Man_t *p)
int Ifn_NtkMatch(Ifn_Ntk_t *p, word *pTruth, int nVars, int nConfls, int fVerbose, int fVeryVerbose, word *pPerm)
If_Obj_t * If_ManCreateCi(If_Man_t *p)
void If_DsdManTune(If_DsdMan_t *p, int LutSize, int fFast, int fAdd, int fSpec, int fVerbose)
static int Abc_Lit2Var(int Lit)
void If_LibLutFree(If_LibLut_t *pLutLib)
If_DsdMan_t * If_DsdManLoad(char *pFileName)
float pLutAreas[IF_MAX_LUTSIZE+1]
Vec_Int_t * If_ManCollectMappingInt(If_Man_t *p)
static float If_CutLutDelay(If_LibLut_t *p, int Size, int iPin)
float pLutDelays[IF_MAX_LUTSIZE]
char * If_DsdManGetCellStr(If_DsdMan_t *p)
float If_CutPowerRefed(If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot)
static If_Obj_t * If_ManLo(If_Man_t *p, int i)
If_Obj_t * If_ManCreateAnd(If_Man_t *p, If_Obj_t *pFan0, If_Obj_t *pFan1)
void If_ManCleanNodeCopy(If_Man_t *p)
DECLARATIONS ///.
typedefABC_NAMESPACE_HEADER_START struct Tim_Man_t_ Tim_Man_t
INCLUDES ///.
int If_CutDsdBalanceEval(If_Man_t *p, If_Cut_t *pCut, Vec_Int_t *vAig)
static int If_ManCoNum(If_Man_t *p)
int If_CutPerformCheck75(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
If_LibLut_t * If_LibLutSetSimple(int nLutSize)
float If_LibLutSlowestPinDelay(If_LibLut_t *p)
static word * Vec_MemReadEntry(Vec_Mem_t *p, int i)
void If_DsdManSetNewAsUseless(If_DsdMan_t *p)
static float If_ObjLValue(If_Obj_t *pObj)
int If_CutLutBalanceEval(If_Man_t *p, If_Cut_t *pCut)
void If_ManImproveMapping(If_Man_t *p)
FUNCTION DEFINITIONS ///.
static If_Obj_t * If_ManLi(If_Man_t *p, int i)
static int If_IsComplement(If_Obj_t *p)
float If_CutAreaRefed(If_Man_t *p, If_Cut_t *pCut)
static char * If_CutDsdPerm(If_Man_t *p, If_Cut_t *pCut)
void If_DsdManCleanOccur(If_DsdMan_t *p, int fVerbose)
void If_CutPropagateRequired(If_Man_t *p, If_Obj_t *pObj, If_Cut_t *pCut, float Required)
float If_CutAreaRef(If_Man_t *p, If_Cut_t *pCut)
int If_CutPerformCheck16(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
float If_CutEdgeFlow(If_Man_t *p, If_Cut_t *pCut)
int If_DsdManReadMark(If_DsdMan_t *p, int iDsd)
typedefABC_NAMESPACE_HEADER_START struct Vec_Wrd_t_ Vec_Wrd_t
INCLUDES ///.
void If_ManStop(If_Man_t *p)
void If_CutSort(If_Man_t *p, If_Set_t *pCutSet, If_Cut_t *pCut)
static char * Vec_StrEntryP(Vec_Str_t *p, int i)
int If_CutComputeTruthPerm(If_Man_t *p, If_Cut_t *pCut, If_Cut_t *pCut0, If_Cut_t *pCut1, int fCompl0, int fCompl1)
void If_ManMarkMapping(If_Man_t *p)
float If_CutPowerDerefed(If_Man_t *p, If_Cut_t *pCut, If_Obj_t *pRoot)
int If_CutDelaySop(If_Man_t *p, If_Cut_t *pCut)
void If_ManDerefNodeCutSet(If_Man_t *p, If_Obj_t *pObj)
int If_CutDsdBalancePinDelays(If_Man_t *p, If_Cut_t *pCut, char *pPerm)
int If_CutPerformCheck45(If_Man_t *p, unsigned *pTruth, int nVars, int nLeaves, char *pStr)
void If_ManDerefChoiceCutSet(If_Man_t *p, If_Obj_t *pObj)
Ifn_Ntk_t * Ifn_NtkParse(char *pStr)