A placement can be legal and still be poor: wires too long, cells packed so tightly that the router cannot get through, or critical paths stretched across the core. Before moving on to clock tree synthesis, it pays to check the placement with a few numbers and one picture. This article explains the usual placement quality measures, HPWL, density, congestion and estimated timing, and compares three placements of the 16x16 multiplier with them.

7 min read | Intermediate

What You'll Learn

  • List the measures used to judge a placement
  • Read a cell density map and spot hot spots
  • Use the congestion estimate from global placement
  • Decide whether a placement is ready for CTS

The Measures

MeasureWhat it tellsWhere to find it in OpenROAD
HPWL after legalizationTotal wire length estimate; the router starts from this"legalized HPWL" in the detailed placement report
UtilizationCell area over core areaGPL-0019, and "Design area" in the final report
Local densityHow full each small region is; hot spotsA density map in the GUI, or computed from the DEF
Routing congestion estimateTrack demand over supply per routing tileGPL-0043 to GPL-0047 in routability mode, or a global route
Estimated timingWorst slack with wire parasitics estimated from placementestimate_parasitics -placement, then report_worst_slack
DisplacementHow far legalization moved cells from the global solution"average/max displacement" in the detailed placement report

No single number decides. A low HPWL with severe hot spots routes badly; a nicely spread placement with long critical paths misses timing.

Density Maps

Each square is a bin of about 9.7 x 9.5 um, coloured by the fraction of its area covered by standard cells after detailed placement. Tap cells and fillers are not counted. The three placements are those from Global Placement, with target densities 0.5, 0.7 and 0.9:

Target densityBins with cellsAverage density in those binsBins above 80 %Fullest bin
0.5232 of 25645 %076 %
0.717161 %1594 %
0.914274 %78100 %

At 0.5 the cells are spread almost evenly and no bin is above 80 %. At 0.9 more than half the occupied bins are above 80 %, and some are completely full. The cells cluster towards the bottom edge, where the tool placed all the I/O pins.

A full bin is not an error: the cells are legal. But every cell has pins, and a region full of cells needs many wires. Bins above about 80-85 % are where routing problems and timing repair difficulties usually start, because there is no room left for buffers or for the router's detours.

Quick Check

Q: The total utilization is the same, 44 %, in all three runs. Why do the density maps look so different?

Show Answer

Utilization is an average over the whole core. The target density decides how evenly the cells are spread: at 0.9 the placer may fill some regions almost completely and leave others empty, with the same total cell area.

Congestion Estimate

Density counts cell area; congestion counts wires. With -routability_driven, the global placer runs a quick routing estimate and reports the most congested tiles. For the target of 0.9:

[INFO GPL-0041] Total routing overflow: 0.0000
[INFO GPL-0042] Number of overflowed tiles: 0 (0.00%)
[INFO GPL-0043] Average top 0.5% routing congestion: 0.8490
[INFO GPL-0046] Average top 5.0% routing congestion: 0.7679

A congestion of 1.0 means a tile needs all the tracks it has. The most congested 0.5 % of the tiles are at 85 %, so even the densest of the three placements is routable, and indeed all three routed without violations. Global Routing and Congestion covers the full congestion report.

Comparing the Three Placements

Target densityLegalized HPWLFullest binRouted wireWorst slack at 10 ns
0.522.4 mm76 %28.3 mm+0.58 ns
0.719.7 mm94 %25.8 mm+0.74 ns
0.919.3 mm100 %25.8 mm+0.49 ns

The 0.7 placement is the best of the three: 9 % shorter wires than 0.5 and the best slack, with a moderate density peak. The 0.9 placement has the lowest HPWL but no shorter routed wire, the worst slack and many full bins. On a larger design, those full bins would be the first to fail routing.

Quick Check

Q: A placement has the lowest HPWL of all candidates but its estimated worst slack is the worst. How can that be?

Show Answer

HPWL is a total over all nets. A placement can shorten many non-critical nets while stretching a few nets on the critical path, or pack cells so tightly that the drivers see more load. Timing depends on the critical paths, not the total.

Ready for CTS?

A practical checklist after placement:

  • The detailed placer reports no failures and the final checks find no overlaps.
  • No large areas of bins above 85-90 %, and none around macros or I/O pins.
  • The congestion estimate stays below 1.0 in the top few percent of tiles.
  • The estimated worst slack is negative by no more than what the timing repair after CTS can fix; a placement that is far off will not close.
  • No unexpected long nets, for example a high-fanout net spanning the whole core without buffers.

Running It in ChipVerify Lab

Run Place and Route on the multiplier and collect the numbers: the legalized HPWL and displacement from the first detailed placement, the utilization, and the final routed wire length and slack. Then open the layout, hide the routing and look at the cells: where are they densest, and where are the pins?

Common Mistakes

Mistake #1: Looking only at the total utilization

All three placements had 44 % utilization. The density map shows the difference that matters for routing.

Mistake #2: Choosing the placement with the lowest HPWL

The 0.9 run had the lowest HPWL and the worst slack. Judge by the full set of measures, and confirm with routing.

Practice Exercise

Challenge: Average Density

In the 0.9 placement, 142 bins hold cells, at an average density of 74 %. Each bin is about 92 um2. Estimate the cell area in those bins and compare it with the multiplier's cell area of about 9,700 um2 before taps and fillers.

Hint

Cell area = number of bins x bin area x average density.

Solution

142 x 92 x 0.74 = 9,670 um2, which matches the cell area: all cells are in those 142 bins, packed into about 55 % of the core while the rest is empty.

Open the ready-made example in the lab, synthesize it and run Place and Route.

Summary

  • Judge a placement by legalized HPWL, utilization, local density, congestion, estimated timing and displacement together.
  • A density map shows hot spots that the overall utilization hides.
  • For the multiplier, a target of 0.7 gave the best result; 0.9 had the lowest HPWL but 78 bins above 80 % and the worst slack.
  • Check for failures, hot spots, congestion, slack and unbuffered long nets before CTS.
Did you find what you were looking for?

Quiz

Test Your Knowledge

1 of 5 Score: 0 / 5