How RePlAce Thinks About Placement
You know by now that global placement is a search over an enormous space of possible cell locations. What you have not seen is how that search actually happens, and it is a genuinely elegant idea once you see it. OpenROAD’s global placer, RePlAce, treats the whole thing as a physics simulation.
Picture every standard cell as a small charged particle on the core canvas. Two forces act on every particle on every iteration. The first is attraction from connectivity: cells joined by a net pull towards each other as if joined by a spring, and the more nets between two cells the stronger the pull. The second is repulsion from density: wherever cells are getting too crowded in a local region, they push each other apart, much as like charges do when packed too close. RePlAce’s own papers use an actual electrostatics analogy. Treat local cell density as a charge distribution, solve for its field, and the force pushing cells out of crowded regions falls straight out.
Neither force alone gives a usable placement. Pure attraction collapses every cell into a single point: minimum wirelength, zero legality. Pure repulsion spreads cells uniformly across the core and ignores connectivity entirely: maximum legality, terrible wirelength. RePlAce runs both together, iteration after iteration, and lets the placement settle into an equilibrium where cells are close enough to keep wirelength low but spread enough that no region blows past the density limit.
Each pass through that loop is one iteration. A real run takes anywhere from a few dozen to a couple of hundred, depending on design size and how far the initial spread is from a settled state. Every iteration RePlAce reports an overflow number, roughly how much local density still exceeds target across the core. Watching that number fall towards zero is watching the simulation settle.
Reading two density snapshots
Here are two simplified snapshots of the same core, divided into a 4x4 grid of bins, at two points in a RePlAce run. Each number is that bin’s cell density as a percentage of target, so over 100 means the bin is still overcrowded.
Iteration 3, early:
| Col1 | Col2 | Col3 | Col4 | |
|---|---|---|---|---|
| Row1 | 45 | 60 | 138 | 52 |
| Row2 | 70 | 142 | 155 | 48 |
| Row3 | 58 | 130 | 90 | 40 |
| Row4 | 62 | 55 | 70 | 65 |
Iteration 48, later:
| Col1 | Col2 | Col3 | Col4 | |
|---|---|---|---|---|
| Row1 | 88 | 95 | 102 | 90 |
| Row2 | 92 | 99 | 105 | 87 |
| Row3 | 90 | 97 | 96 | 92 |
| Row4 | 89 | 91 | 94 | 90 |
Which looks more settled? Iteration 48, clearly. Every bin sits near 100, so cells are spread almost evenly against the target everywhere. Iteration 3 still has three bins well over 130 in the upper-middle region, sitting next to bins in the 40s and 50s that are nearly empty. That is the repulsion force still pushing cells out of the hot bins into the cold ones, and by iteration 48 it has mostly finished.
Notice that converged does not mean every bin hits exactly 100. A spread of 88 to 105 is normal. RePlAce stops once the overall overflow metric drops below a threshold, not once every bin is perfectly on target. Chasing perfect uniformity would cost many more iterations for essentially no benefit to final wirelength or legalisability. The related trap is reading one bin in isolation and panicking. A 138 at iteration 3 is completely ordinary mid-run. What matters is the trend across iterations, never one snapshot.
Practice Exercise
A global placement run reports overflow of 0.71 at iteration 1, 0.34 at iteration 20, 0.15 at iteration 40 and 0.09 at iteration 60, with the convergence threshold set to 0.10. At which iteration would you expect RePlAce to stop, and why?
Solution
Around iteration 60, the first point where overflow (0.09) drops below the 0.10 threshold. At iterations 1, 20 and 40 the overflow is still above threshold, so the two forces are still actively reshaping the placement. Once it crosses below 0.10, RePlAce considers the analytic placement good enough and hands off, not to a router but to legalisation, which is where the next article picks up. RePlAce’s output is a good, low-wirelength, nearly legal placement, and nearly is not good enough for the next stage.
RePlAce gives you a settled, low-wirelength arrangement with cells still overlapping slightly and sitting at fractional, off-grid coordinates. Section 4.2 turns that continuous solution into something a fab can use: cells snapped cleanly onto real standard cell rows, with zero overlap.