Unverified Commit 862aea0a by ZhiangWang033 Committed by GitHub

Update README.md

parent 02cbdd14
......@@ -75,6 +75,23 @@ And the hyperedges in the hypergraph cooresponds to the nets in the netlist. No
* *nparts* = 500 + 120 = 620 is used when applying hMETIS to this hypergraph.
## **III. Break up clusters that span a distance larger than threshold**
After partitioning the hypergraph, we can have *nparts* clusters.
Then Circuit Training break up clusters that span a distance larger than **threshold**.
Here **threshold** = sqrt(**canvas_width** * **canvas_height** / 16).
For each cluster *c*, the break-up process is as following:
* *cluster_lx, cluster_ly, cluster_ux, cluster_uy = c.GetBoundingBox()*
* If ((*cluster_ux - cluster_lx) <= threshold*) && (*cluster_uy - cluster_ly) <= threshold*))
* Return
* *cluster_x, cluster_y = c.GetWeightedCenter()*. Here the weighted center of cluster *c* is the average location of all the standard cells in the cluster, weighted according to their area.
* Use (*cluster_x*, *cluster_y*) as the origin and *threshold* as the step, to divide the bounding box of *c* into different regions.
* The elements (macro pins, macros, ports and standard cells) in each region forms a new cluster.
Note that the netlist is generated by physical-aware synthesis, we know the (x, y) coordinate for each instance.
We call readers’ attention to the existence of significant aspects that are still pending clarification here.
While [Gridding](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Gridding/README.md) and
[Grouping](https://github.com/TILOS-AI-Institute/MacroPlacement/blob/main/CodeElements/Grouping/README.md) are hopefully well-understood,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment