70 int i, nNodes, nGain, fCompl;
93 if ( pManRwr == NULL )
125 nGain =
Rwr_NodeRewrite( pManRwr, pManCut, pNode, fUpdateLevel, fUseZeros, fPlaceEnable );
126 if ( !(nGain > 0 || (nGain == 0 && fUseZeros)) )
185 printf(
"Abc_NtkRewrite: The network check has failed.\n" );
220 if ( pParams->
fDrop )
279 printf(
"%6d : %c\n", pNode->
Id,
'a'+i );
282 printf(
"%6d : %2d = ", pNode->
Id, i );
288 printf(
"%c",
'a' + k );
297 printf(
"%c",
'a' + k );
301 if ( pNode == pRoot )
399 int i, CountA, CountB;
410 printf(
"(%d,%d:%d) ", CountA, CountB, CountA+CountB-
Vec_PtrSize(vLeaves) );
void Abc_ManRewritePrintDivs(Vec_Ptr_t *vDivs, int nLeaves)
static int Abc_NtkIsStrash(Abc_Ntk_t *pNtk)
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static Abc_Obj_t * Abc_ObjFanin1(Abc_Obj_t *pObj)
static void Abc_ManShowCutCone(Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves)
int Rwr_ManReadCompl(Rwr_Man_t *p)
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
static int Abc_ObjFaninC1(Abc_Obj_t *pObj)
void Abc_ManShowCutCone_rec(Abc_Obj_t *pNode, Vec_Ptr_t *vDivs)
void Abc_RwrExpWithCut_rec(Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves, int fUseA)
void Abc_PlaceEnd(Abc_Ntk_t *pNtk)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
void Dec_GraphUpdateNetwork(Abc_Obj_t *pRoot, Dec_Graph_t *pGraph, int fUpdateLevel, int nGain)
static int Abc_ObjFaninC0(Abc_Obj_t *pObj)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static abctime Abc_Clock()
void Cut_NodeSetTriv(Cut_Man_t *p, int Node)
static int Vec_PtrSize(Vec_Ptr_t *p)
void Abc_RwrExpWithCut(Abc_Obj_t *pNode, Vec_Ptr_t *vLeaves)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
void Cut_ManSetFanoutCounts(Cut_Man_t *p, Vec_Int_t *vFanCounts)
static int Vec_PtrFind(Vec_Ptr_t *p, void *Entry)
ABC_DLL void Abc_NtkStopReverseLevels(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkReassignIds(Abc_Ntk_t *pNtk)
void Rwr_ManAddTimeTotal(Rwr_Man_t *p, abctime Time)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
static int Abc_NtkNodeNum(Abc_Ntk_t *pNtk)
static void * Vec_PtrEntryLast(Vec_Ptr_t *p)
ABC_DLL int Abc_AigCleanup(Abc_Aig_t *pMan)
static void Abc_NodePrintCuts(Abc_Obj_t *pNode)
int Abc_NtkRewrite(Abc_Ntk_t *pNtk, int fUpdateLevel, int fUseZeros, int fVerbose, int fVeryVerbose, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
void Rwr_ManPrintStats(Rwr_Man_t *p)
void Cut_ManStop(Cut_Man_t *p)
void * Rwr_ManReadDecs(Rwr_Man_t *p)
Cut_Man_t * Cut_ManStart(Cut_Params_t *pParams)
FUNCTION DEFINITIONS ///.
#define ABC_NAMESPACE_IMPL_END
Rwr_Man_t * Rwr_ManStart(int fPrecompute)
DECLARATIONS ///.
void Abc_PlaceUpdate(Vec_Ptr_t *vAddedCells, Vec_Ptr_t *vUpdatedNets)
void Rwr_ManAddTimeUpdate(Rwr_Man_t *p, abctime Time)
void Cut_CutPrint(Cut_Cut_t *pCut, int fSeq)
ABC_DLL void Abc_NtkStartReverseLevels(Abc_Ntk_t *pNtk, int nMaxLevelIncrease)
#define Abc_NtkForEachNode(pNtk, pNode, i)
static int Abc_NodeIsPersistant(Abc_Obj_t *pNode)
void Abc_PlaceBegin(Abc_Ntk_t *pNtk)
#define ABC_NAMESPACE_IMPL_START
static int Abc_NodeIsTravIdCurrent(Abc_Obj_t *p)
void Rwr_ManAddTimeCuts(Rwr_Man_t *p, abctime Time)
void Rwr_ScoresReport(Rwr_Man_t *p)
static Abc_Obj_t * Abc_ObjRegular(Abc_Obj_t *p)
void Extra_PrintBinary(FILE *pFile, unsigned Sign[], int nBits)
#define Abc_NtkForEachCi(pNtk, pCi, i)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
static void Abc_NtkIncrementTravId(Abc_Ntk_t *p)
ABC_DLL Vec_Int_t * Abc_NtkFanoutCounts(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_ObjNot(Abc_Obj_t *p)
static ABC_NAMESPACE_IMPL_START Cut_Man_t * Abc_NtkStartCutManForRewrite(Abc_Ntk_t *pNtk)
DECLARATIONS ///.
ABC_DLL void Abc_AigUpdateReset(Abc_Aig_t *pMan)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
ABC_DLL int Abc_NtkLevel(Abc_Ntk_t *pNtk)
void Rwr_ManStop(Rwr_Man_t *p)
int Rwr_NodeRewrite(Rwr_Man_t *p, Cut_Man_t *pManCut, Abc_Obj_t *pNode, int fUpdateLevel, int fUseZeros, int fPlaceEnable)
FUNCTION DEFINITIONS ///.
static void Abc_NodeSetTravIdCurrent(Abc_Obj_t *p)
void Rwr_ScoresClean(Rwr_Man_t *p)
static void Vec_PtrFree(Vec_Ptr_t *p)
static void Dec_GraphComplement(Dec_Graph_t *pGraph)