This checklist follows a Place and Route run from start to finish and lists, for each step, what to look for in the log and the report: the message that tells you the step worked, the number to check, and the warning that means trouble. It is the practical companion to the Physical Sign-Off Checklist, which covers the final checks. Use it on every lab run, and the habits carry over to any OpenROAD-based flow.

8 min read | Intermediate

What You'll Learn

  • Check each step of a Place and Route run from its log messages
  • Know the normal numbers for a small design and the warnings that matter
  • Recognize the setting and constraint traps found in this tutorial
  • Decide when a run is ready for sign-off

Before the Run

  • Netlist without constants on cell pins. A synthesized netlist with 1'b1 or 1'b0 on a cell input needs tie cells. Without them, detailed routing stops with DRT-0305 Net one_ of signal type POWER is not routable. Check the synthesis output, or see Project: Place and Route a UART Transmitter for how this shows up. The lab's synthesis maps constants to tie cells itself.
  • Constraints. A clock on the right port, and input and output delays for the I/O paths. Without them, I/O paths are never timed.
  • Settings recorded. Utilization, clock period, library and corner, and any script changes: the same netlist gives different results with different settings.

Floorplan

[INFO IFP-0001] Added 56 rows of 337 site unithd.
[INFO TAP-0005] Inserted 319 tapcells.
  • Rows and sites give the core size: rows x 2.72 um by sites x 0.46 um in sky130 hd.
  • The tap cell count follows from the rows and the tap distance.
  • Pins on the intended edges and layers in the layout viewer.

Details: Floorplan Checks.

Power Grid

  • Rails on every row and straps on the upper layers. A grid with met1 rails only shows PSM-0038 unconnected-shape warnings and fails the IR drop connectivity check.
  • After routing, check_power_grid per supply should report PSM-0040 All shapes on net VDD are connected.

Details: Building a PDN in OpenROAD.

Placement

[INFO GPL-0023] Placement target density:       0.5000
[INFO GPL-1004] Minimum Feasible Density        0.4500 (cell_area / free_area)
  • Target density a little above the minimum feasible density. Far above it, cells cluster and leave empty space; the multiplier at 0.95 in a 78 % core could not be routed on two layers.
  • Legalization: the legalized HPWL should be close to the global placement HPWL; a large increase means overfull regions.
  • Timing-driven placement needs a clock. GPL-0102 Timing-driven: no slacks found means it ran without timing.
  • check_placement passes with no overlaps.

Clock Tree

[INFO CTS-0010]  Clock net "clk" has 97 sinks.
[INFO CTS-0018]     Created 9 clock buffers.
  • The sink count equals the number of flip-flops (and clock gates).
  • Skew and latency in the CTS report are within budget.
  • Hold checked with the propagated clock; hold repair if needed.

Details: CTS in OpenROAD and Skew, Useful Skew and Hold.

Timing Repair

  • The repair table: WNS and violating endpoints before and after, and the area increase.
  • RSZ-0062 Unable to repair all setup violations means the remaining paths need a design change or a longer clock.
  • Slew and capacitance violations cleared; in sky130 the fanout limit has no effect.

Global Routing

[INFO GRT-0096] Final congestion report:
... Total   28403   3945   13.89%   0 / 0 / 0
  • Zero overflow in the final report.
  • Few or no GRT-0101 extra iterations; dozens mean the design is at the limit.
  • The capacity reserve, shown as derated resources in the routing resources table (GRT-0053): zero overflow with no reserve proves little.

Details: Global Routing and Congestion and Debugging Congestion.

Detailed Routing

[INFO DRT-0199]   Number of violations = 427.
...
[INFO DRT-0199]   Number of violations = 0.
  • The violation count falls pass by pass to zero. A count that stalls, or jumps back up repeatedly, is a placement or congestion problem.
  • Run time: a few minutes for the tutorial's designs. Tens of minutes on the same design means an overpacked placement.
  • DRT-0305 ... not routable means a constant net without a tie cell.

Antenna and Fill

[INFO ANT-0002] Found 0 net violations.
[INFO DPL-0001] Placed 2442 filler instances.
  • Zero antenna violations on the final routes.
  • Fillers placed in every gap.

Timing After Routing

  • Worst setup and hold slack, and the critical path, from extracted parasitics. The lab's report shows the estimate before extraction too; only the extracted numbers count.
  • The path makes sense: launch and capture clocks with similar latency, no single stage with an extreme slew or load.
  • The design meets the target at the corners it must work at, not only at typical.

Quick Check

Q: A run finishes, but detailed routing needed 40 minutes and 10 passes for a design that routed in 2 minutes the day before. What do you check first?

Show Answer

What changed in the settings: utilization, die size and above all the placement target density, then the global routing report for extra iterations. In this tutorial the same multiplier took 52 minutes with cells packed at density 0.95 and 3 minutes with a well-spread placement in the same die.

Physical Checks

  • Stream-out without "Invalid via name" or missing-cell warnings.
  • DRC on the GDSII: zero violations.
  • LVS on the GDSII: "Circuits match uniquely".

Details: GDSII Out and Tapeout, DRC and LVS.

Ten Rules From This Tutorial

  1. Read the warnings, not only the result line.
  2. Compare runs only with the same settings, and record the settings.
  3. Set constraints before the steps that use them.
  4. Keep the placement density close to the utilization.
  5. Judge a global route by its overflow and its reserve together.
  6. Watch the trend of detailed routing violations, not the first count.
  7. Trust extracted parasitics, not estimates, for final timing.
  8. Check setup at the slow corner and hold at the fast corner.
  9. Run DRC and LVS on the streamed GDSII; they catch different errors.
  10. When a path has too many logic stages, fix the design, not the layout.

Quick Check

Q: Which two log messages would you search for first in a failed run, and why?

Show Answer

ERROR, to find the step that stopped the run and its message ID, such as DRT-0305 for a constant net; and the last DRT-0199 violation count, to see whether routing finished. Then read the warnings of the steps before the failure, since the cause is often earlier than the error.

Running It in ChipVerify Lab

Run Place and Route on any of the tutorial's examples and go through the list with the OpenROAD log section of the report open. The message IDs above appear in the same form in the lab's log.

Common Mistakes

Mistake #1: Looking only at the final slack

A run can finish with a positive slack and still have unconstrained paths, antenna violations or an unconnected power grid. Go through every step.

Mistake #2: Ignoring run time

A sudden jump in routing time is a symptom. It points to the placement before it becomes a failure.

Mistake #3: Changing several settings at once

When a result changes, change one setting at a time to find the cause.

Practice Exercise

Challenge: Read a Log Summary

A run reports: IFP-0001 Added 30 rows of 184 site unithd, CTS-0010 ... 97 sinks, ANT-0002 Found 13 net violations, and a final worst setup slack of -0.25 ns at a 6 ns clock. What is the core size, how many flip-flops does the design have, and which two items must be fixed before sign-off?

Hint

Core height = rows x 2.72 um, width = sites x 0.46 um.

Solution

Core: 30 x 2.72 = 81.6 um by 184 x 0.46 = 84.6 um. 97 flip-flops, one per clock sink: 32 for each operand register and 33 for the sum. The antenna violations must be fixed (diodes, jumpers or rerouting, then a new check), and the setup violation needs repair, a design change or a longer clock. This is the one-stage 32-bit adder from Project: Closing Timing on a Pipelined Adder.

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

Summary

  • Each step of a Place and Route run has messages that confirm it worked and warnings that signal trouble.
  • Floorplan rows, tap cells, placement density, CTS sinks, global overflow, detailed routing trend, antenna and fill are the checkpoints.
  • The traps found in this tutorial, constants without tie cells, missing constraints, overpacked placement, no routing reserve and estimated parasitics, all show up in the log.
  • Ten rules summarize the tutorial's lessons for every run.
Did you find what you were looking for?

Quiz

Test Your Knowledge

1 of 5 Score: 0 / 5
Cron Job Starts