59 r.
w -= r.
x; r.
h -= r.
y;
124 assert(g_place_concreteNets);
129 g_place_numNets = net->
m_id+1;
132 g_place_concreteNets[net->
m_id] = net;
143 g_place_concreteNets[net->
m_id] = 0;
165 assert(g_place_concreteCells);
170 g_place_numCells = cell->
m_id+1;
172 g_place_concreteCells[cell->
m_id] = cell;
218 g_place_concreteCells[cell->
m_id] = 0;
240 if (!pa && !pb)
return 0;
241 else if (!pa)
return -1;
242 else if (!pb)
return 1;
244 if (ba.
x < bb.
x)
return -1;
245 if (ba.
x > bb.
x)
return 1;
254 if (!pa && !pb)
return 0;
255 else if (!pa)
return -1;
256 else if (!pb)
return 1;
258 if (ba.
x + ba.
w < bb.
x + bb.
w)
return -1;
259 if (ba.
x + ba.
w > bb.
x + bb.
w)
return 1;
268 if (!pa && !pb)
return 0;
269 else if (!pa)
return -1;
270 else if (!pb)
return 1;
272 if (ba.
y + ba.
h < bb.
y + bb.
h)
return -1;
273 if (ba.
y + ba.
h > bb.
y + bb.
h)
return 1;
282 if (!pa && !pb)
return 0;
283 else if (!pa)
return -1;
284 else if (!pb)
return 1;
286 if (ba.
y < bb.
y)
return -1;
287 if (ba.
y > bb.
y)
return 1;
295 if (!pa && !pb)
return 0;
296 else if (!pa)
return -1;
297 else if (!pb)
return 1;
318 if (!pa && !pb)
return 0;
319 else if (!pa)
return -1;
320 else if (!pb)
return 1;
321 if (pa->
m_x < pb->
m_x)
return -1;
322 if (pa->
m_x > pb->
m_x)
return 1;
330 if (!pa && !pb)
return 0;
331 else if (!pa)
return -1;
332 else if (!pb)
return 1;
333 if (pa->
m_y < pb->
m_y)
return -1;
334 if (pa->
m_y > pb->
m_y)
return 1;
342 if (!pa && !pb)
return 0;
343 else if (!pa)
return -1;
344 else if (!pb)
return 1;
int cellSortByX(const void *a, const void *b)
Sorts cells by either position coordinate.
struct Partition * m_sub1
int cellSortByY(const void *a, const void *b)
ConcreteNet ** g_place_concreteNets
Partition * g_place_rootPartition
int netSortByR(const void *a, const void *b)
int g_place_concreteNetsSize
void addConcreteNet(ConcreteNet *net)
Adds a net to the placement database.
int netSortByB(const void *a, const void *b)
ConcreteCell ** g_place_concreteCells
int netSortByID(const void *a, const void *b)
struct Partition * m_sub2
float getCellArea(const ConcreteCell *cell)
int g_place_concreteCellsSize
void addConcreteCell(ConcreteCell *cell)
float getNetWirelength(const ConcreteNet *net)
Returns the half-perimeter wirelength of a net.
int netSortByT(const void *a, const void *b)
#define ABC_NAMESPACE_IMPL_END
int cellSortByID(const void *a, const void *b)
float getTotalWirelength()
Returns the total HPWL of all nets.
ConcreteCell ** m_members
#define ABC_NAMESPACE_IMPL_START
void delCellFromPartition(ConcreteCell *cell, Partition *p)
Rect getNetBBox(const ConcreteNet *net)
Returns the bounding box of a net.
ABC_NAMESPACE_IMPL_START int g_place_numCells
void delConcreteNet(ConcreteNet *net)
Does not deallocate memory.
void delConcreteCell(ConcreteCell *cell)
Removes a cell from the placement database.
int netSortByL(const void *a, const void *b)
Sorts nets by position of one of its corners.