59 cells[pObj->
Id].
m_parent = &(abstractCells[fAnd]);
197 abstractCells[0].
m_width = 1.0;
198 abstractCells[0].
m_label =
"pio";
199 abstractCells[0].
m_pad = 1;
202 abstractCells[1].
m_width = 1.0;
203 abstractCells[1].
m_label =
"and";
204 abstractCells[1].
m_pad = 0;
248 FREE( nets[i].m_terms );
249 FREE( abstractCells );
typedefABC_NAMESPACE_HEADER_START struct Vec_Ptr_t_ Vec_Ptr_t
INCLUDES ///.
static int Abc_ObjIsCi(Abc_Obj_t *pObj)
void globalPlace()
Performs analytic placement using a GORDIAN-like algorithm.
static int Abc_NtkObjNumMax(Abc_Ntk_t *pNtk)
static int Vec_PtrPushUnique(Vec_Ptr_t *p, void *Entry)
void Abc_PlaceUpdate(Vec_Ptr_t *vAddedCells, Vec_Ptr_t *vUpdatedNets)
static int Abc_ObjFanoutNum(Abc_Obj_t *pObj)
ABC_NAMESPACE_IMPL_START AbstractCell * abstractCells
DECLARATIONS ///.
void addConcreteNet(ConcreteNet *net)
Adds a net to the placement database.
static void Vec_PtrPush(Vec_Ptr_t *p, void *Entry)
#define Abc_NtkForEachCo(pNtk, pCo, i)
void Abc_PlaceBegin(Abc_Ntk_t *pNtk)
float Abc_PlaceEvaluateCut(Abc_Obj_t *pRoot, Vec_Ptr_t *vFanins)
#define Abc_AigForEachAnd(pNtk, pNode, i)
static int Abc_ObjIsNode(Abc_Obj_t *pObj)
void addConcreteCell(ConcreteCell *cell)
static unsigned Abc_ObjType(Abc_Obj_t *pObj)
#define ABC_NAMESPACE_IMPL_END
void globalPreplace(float utilization)
Place pad ring, leaving a core area to meet a desired utilization.
#define REALLOC(type, obj, num)
#define ABC_NAMESPACE_IMPL_START
static void Abc_PlaceCreateCell(Abc_Obj_t *pObj, int fAnd)
FUNCTION DEFINITIONS ///.
#define Abc_ObjForEachFanout(pObj, pFanout, i)
#define Abc_NtkForEachCi(pNtk, pCi, i)
void Abc_PlaceEnd(Abc_Ntk_t *pNtk)
static Vec_Ptr_t * Vec_PtrAlloc(int nCap)
FUNCTION DEFINITIONS ///.
#define Abc_ObjForEachFanin(pObj, pFanin, i)
#define Vec_PtrForEachEntry(Type, vVec, pEntry, i)
MACRO DEFINITIONS ///.
static int Abc_ObjIsComplement(Abc_Obj_t *p)
#define Abc_NtkForEachObj(pNtk, pObj, i)
ITERATORS ///.
static void Abc_PlaceUpdateNet(Abc_Obj_t *pObj)
static void Vec_PtrFree(Vec_Ptr_t *p)