08_Placement.md

Placement — Where Most OpenLane Designs Actually Fail


Purpose of This Chapter

Placement is the first stage where logical correctness meets physical reality.

Most OpenLane failures that appear later as:

are already decided at placement time.

This chapter explains:


What Placement Is (and Is Not)

Placement IS:

Placement is NOT:

Once placement is bad, nothing later can save you.


Placement Stages in OpenLane / OpenROAD

OpenLane uses OpenROAD’s placement engines.

1. Global Placement (GPL)

Output:

2. Detailed Placement (DPL)

DPL cannot fix bad GPL decisions.


Running Placement (Context)

You normally do not run placement manually in OpenLane1. It is executed as part of the flow.

However, understanding where it happens matters.

Typical log sections:

If placement fails, everything stops here.


The Most Important Concept: Density

What is density?

Density =

how much cell area is packed into a region

Too low:

Too high:

Typical safe density

For sky130:


Congestion Is Not a Routing Problem (Yet)

Congestion at placement stage means:

Placement congestion is a design problem, not a router problem.


How to Inspect Placement Visually

Using OpenROAD GUI

openroad -gui

Load:

Look for:

If you see:

👉 placement is already broken.


Common Placement Failure Patterns

Pattern 1: Over-packed core

Symptoms:

Cause:

Fix:


Pattern 2: Macro blindness (OpenLane2 / Caravel)

Symptoms:

Cause:

Fix:


Pattern 3: Long critical paths

Symptoms:

Cause:

Fix:


Placement and Timing Are Already Linked

Even before CTS:

If timing is bad later: placement probably caused it.


What NOT to Do

Placement is not forgiving.


Practical Rules That Actually Work


Output Artifacts After Placement

After successful placement you should have:

If any of these are missing: stop here.


Why This Chapter Exists

Most OpenLane guides jump from synthesis to routing.

That is why most OpenLane designs fail.

Placement decides:

Everything after this chapter is downstream damage control.


Next Chapter

Continue only if placement is clean.

Next: