40 bool completionFlag =
false;
43 printf(
"PLAC-10 : Global placement (wirelength-driven Gordian)\n");
48 printf(
"QMAN-00 : \tconstructing initial quadratic problem...\n");
52 while(!completionFlag) {
56 printf(
"QMAN-01 : \t\tglobal optimization\n");
62 printf(
"QMAN-01 : \t\tpartition refinement\n");
72 printf(
"QMAN-02 : \t\tfinal pass\n");
96 printf(
"WARNING: Can not perform incremental placement\n");
101 printf(
"PLAC-10 : Incremental global placement\n");
105 printf(
"QMAN-00 : \tconstructing initial quadratic problem...\n");
128 float x, y, edge, w, h;
130 printf(
"QCLN-10 : \tsanitizing placement\n");
141 x = cell->
m_x, y = cell->
m_y,
ABC_NAMESPACE_IMPL_START int g_place_numPartitions
#define REALLOCATE_PARTITIONS
Partition * g_place_rootPartition
void constructQuadraticProblem()
Constructs the matrices necessary to do analytical placement.
ConcreteCell ** g_place_concreteCells
#define FINAL_REALLOCATE_PARTITIONS
void globalFixDensity(int numBins, float maxMovement)
Doesn't deal well with fixed cells in the core area.
#define ABC_NAMESPACE_IMPL_END
bool refinePartitions()
Splits large leaf partitions.
float getTotalWirelength()
Returns the total HPWL of all nets.
void incrementalPartition()
Adds new cells to an existing partition. Partition sizes/locations are unchanged. ...
#define ABC_NAMESPACE_IMPL_START
void globalPlace()
Performs analytic placement using a GORDIAN-like algorithm.
void sanitizePlacement()
Moves any cells that are outside of the core bounds to the nearest location within.
ABC_NAMESPACE_IMPL_START int g_place_numCells
void globalIncremental()
Performs analytic placement using a GORDIAN-like algorithm.
void reallocPartitions()
Reallocates the partitions based on placement information.
void solveQuadraticProblem(bool useCOG)
Calls quadratic solver.
void initPartitioning()
Initializes data structures necessary for partitioning.