55 Abc_Ntk_t * pNtkTotal = NULL, * pNtkBottom;
59 assert( !fForwardOnly || !fBackwardOnly );
95 fprintf( stdout,
"Abc_NtkRetimeMinArea(): Network check has failed.\n" );
270 return (
int)(ABC_PTRUINT_T)pObj->
pCopy;
277 return (
int)(ABC_PTRUINT_T)pObj->
pCopy;
285 return (
int)(ABC_PTRUINT_T)pObj->
pCopy;
395 fprintf( stdout,
"Abc_NtkRetimeMinAreaConstructNtk(): Network check has failed.\n" );
413 Vec_Ptr_t * vCis, * vCos, * vBoxes, * vBoxesNew, * vNodes, * vBuffers;
414 Abc_Obj_t * pObj, * pLatch, * pLatchIn, * pLatchOut, * pNext, * pBuffer;
419 vCis = pNtk->
vCis; pNtk->
vCis = NULL;
420 vCos = pNtk->
vCos; pNtk->
vCos = NULL;
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
Vec_Ptr_t * Abc_NtkMaxFlow(Abc_Ntk_t *pNtk, int fForward, int fVerbose)
static int Abc_ObjIsCi(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkInsertLatchValues(Abc_Ntk_t *pNtk, Vec_Int_t *vValues)
static int Abc_ObjIsBo(Abc_Obj_t *pObj)
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
static void Abc_NtkRetimeMinAreaUpdateLatches(Abc_Ntk_t *pNtk, Vec_Ptr_t *vMinCut, int fForward)
static int Abc_ObjIsLatch(Abc_Obj_t *pObj)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
static void Abc_NodeSetTravIdPrevious(Abc_Obj_t *p)
ABC_DLL Abc_Obj_t * Abc_NtkDupObj(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj, int fCopyName)
static int Abc_NtkLatchNum(Abc_Ntk_t *pNtk)
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
static int Abc_NtkCiNum(Abc_Ntk_t *pNtk)
static void Abc_NtkRetimeMinAreaPrepare(Abc_Ntk_t *pNtk, int fForward)
ABC_DLL int Abc_NtkCheck(Abc_Ntk_t *pNtk)
FUNCTION DEFINITIONS ///.
static int Abc_NtkIsSopLogic(Abc_Ntk_t *pNtk)
ABC_DLL char * Abc_ObjAssignName(Abc_Obj_t *pObj, char *pName, char *pSuffix)
static int Vec_PtrSize(Vec_Ptr_t *p)
Abc_Obj_t * Abc_NtkRetimeMinAreaConstructNtk_rec(Abc_Ntk_t *pNtkNew, Abc_Obj_t *pObj)
static Abc_Obj_t * Abc_ObjFanin0(Abc_Obj_t *pObj)
static int Abc_NtkCoNum(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkDelete(Abc_Ntk_t *pNtk)
static int Abc_ObjIsCo(Abc_Obj_t *pObj)
ABC_DLL void Abc_ObjAddFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFanin)
ABC_DLL Abc_Ntk_t * Abc_NtkAlloc(Abc_NtkType_t Type, Abc_NtkFunc_t Func, int fUseMemMan)
DECLARATIONS ///.
int Abc_NtkRetimeMinArea(Abc_Ntk_t *pNtk, int fForwardOnly, int fBackwardOnly, int fVerbose)
FUNCTION DEFINITIONS ///.
static Abc_Obj_t * Abc_NtkCreateBo(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_ObjPatchFanin(Abc_Obj_t *pObj, Abc_Obj_t *pFaninOld, Abc_Obj_t *pFaninNew)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
ABC_DLL void Abc_NtkCleanMarkA(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkAddDummyPoNames(Abc_Ntk_t *pNtk)
Vec_Int_t * Abc_NtkRetimeInitialValues(Abc_Ntk_t *pNtkCone, Vec_Int_t *vValues, int fVerbose)
FUNCTION DEFINITIONS ///.
ABC_DLL void Abc_NtkDeleteObj(Abc_Obj_t *pObj)
static Abc_Ntk_t * Abc_NtkRetimeMinAreaConstructNtk(Abc_Ntk_t *pNtk, Vec_Ptr_t *vMinCut)
void Abc_NtkUnmarkCone_rec(Abc_Obj_t *pObj, int fForward)
int Abc_ObjSopSimulate(Abc_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
ABC_DLL Abc_Obj_t * Abc_NtkCreateNodeBuf(Abc_Ntk_t *pNtk, Abc_Obj_t *pFanin)
static Abc_Obj_t * Abc_NtkCreateLatch(Abc_Ntk_t *pNtk)
int Abc_NtkRetimeMinAreaInitValues_rec(Abc_Obj_t *pObj)
ABC_DLL Vec_Int_t * Abc_NtkCollectLatchValues(Abc_Ntk_t *pNtk)
#define Abc_NtkForEachLatch(pNtk, pObj, i)
static int Abc_LatchIsInit1(Abc_Obj_t *pLatch)
static Abc_Obj_t * Abc_NtkCreatePi(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_ObjTransferFanout(Abc_Obj_t *pObjOld, Abc_Obj_t *pObjNew)
#define ABC_NAMESPACE_IMPL_START
static int Abc_NodeIsTravIdCurrent(Abc_Obj_t *p)
static int Abc_ObjIsBi(Abc_Obj_t *pObj)
Abc_Ntk_t * Abc_NtkAttachBottom(Abc_Ntk_t *pNtkTop, Abc_Ntk_t *pNtkBottom)
#define Abc_ObjForEachFanout(pObj, pFanout, i)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
static void Abc_NtkRetimeMinAreaInitValues(Abc_Ntk_t *pNtk, Vec_Ptr_t *vMinCut)
#define Abc_ObjForEachFanin(pObj, pFanin, i)
ABC_DLL char * Abc_ObjName(Abc_Obj_t *pNode)
DECLARATIONS ///.
static void Abc_NtkIncrementTravId(Abc_Ntk_t *p)
static ABC_NAMESPACE_IMPL_START Abc_Ntk_t * Abc_NtkRetimeMinAreaOne(Abc_Ntk_t *pNtk, int fForward, int fVerbose)
DECLARATIONS ///.
#define Abc_NtkForEachPo(pNtk, pPo, i)
static Abc_Obj_t * Abc_NtkCreateBi(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NodeCollectFanouts(Abc_Obj_t *pNode, Vec_Ptr_t *vNodes)
static void Vec_IntFree(Vec_Int_t *p)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static void Vec_PtrShrink(Vec_Ptr_t *p, int nSizeNew)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
ABC_DLL void Abc_NtkAddDummyPiNames(Abc_Ntk_t *pNtk)
ABC_DLL void Abc_NtkOrderCisCos(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_NtkCreatePo(Abc_Ntk_t *pNtk)
static Abc_Obj_t * Abc_ObjFanout0(Abc_Obj_t *pObj)
void Abc_NtkMarkCone_rec(Abc_Obj_t *pObj, int fForward)
#define Abc_NtkForEachPi(pNtk, pPi, i)
static void Abc_NodeSetTravIdCurrent(Abc_Obj_t *p)
static void Vec_PtrFree(Vec_Ptr_t *p)