ExpertQuestion 7 of 161

How do you triage a combinational loop before floorplanning?

From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide

Short Answer

Not every reported "loop" is a mistake — some designs genuinely have intentional feedback (a self-enabling latch structure, a deliberate oscillator-like element, certain memory model constructs), so the first job is figuring out which kind you're looking at. Pull the actual netlist path the tool flagged and trace it by hand: does the signal genuinely loop back through purely combinational logic with no register in between (a real, accidental loop — usually from a synthesis or RTL bug), or does it pass through something the tool is mis-modeling as combinational when it's actually a latch or intentional feedback structure?

Technical Reference DiagramHow do you triage a combinational loop before floorplanning?

Technical Explanation

  • Check whether the STA/PD tool has automatically broken the loop at some arc — most tools will pick an arbitrary point to cut a combinational loop so analysis can proceed at all, and that automatic break point matters: if it's in the "wrong" place, timing results through that region become meaningless even though the tool doesn't complain.
  • If it's a genuine bug, this needs to go back to the design/synthesis team before floorplanning — a real combinational loop is a functional correctness problem, not something PD constraints can paper over.
  • If it's intentional, make sure there's an explicit set_disable_timing or set_false_path exception documented for that arc, rather than relying on the tool's automatic (and somewhat arbitrary) loop-breaking behavior — explicit intent beats implicit tool behavior every time.
  • Treat this the same as any other readiness check: the result should be a named object (the specific instance/pin forming the loop), a documented decision (intentional vs. bug), and something reproducible by another engineer from the same netlist — not a judgment call buried in someone's head.

What To Check

  • Warning sign: Timing propagation is interrupted and a loop warning names unexpected functional logic.
  • Inspect: Keep at least two possible causes open, then use one named object and the active mode or scenario to separate them.
  • Correct: Trace the loop, consult synthesis/RTL ownership, repair a netlist bug upstream, or document the intentional model and exact timing treatment.

Command Checks & Actions

  • check_timing -include {loops}: finds missing or inconsistent timing setup
  • check_netlist: reports structural connectivity problems
  • report_disable_timing: shows timing arcs that cannot propagate

Run the commands in order. Each line answers a separate part of the check.

Healthy, Suspicious & Hard-stop Results

  • Expected: Distinguish an intentional feedback model from an accidental netlist loop and identify any automatic timing-arc break chosen by the tool.
  • Stop before floorplanning when required logic or timing coverage is missing or unexplained.

Common Mistake

The Trap: Do not assume the check passed just because ICC2 continued. Fix or narrowly justify the named objects, then rerun the same command.

What The Interviewer Is Testing

Be ready to explain why this matters before floorplanning.

Follow-up Question & Model Response

Model response: “I would save the report, inspect one affected object in the correct block and scenario, and make or request this correction. ”

Physical Design & Planning Handbook

Dive into 14 comprehensive chapters covering netlist sanity, FinFET grids, macro placement, power grids, CTS, and timing budgeting.

Offline PDF Bundle

Want all 1109 questions offline?

Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

See what's inside the bundle
PnR Flow Physical Design Mentor Guide — eight chaptersPnR Flow Mentor GuideEight chapters, library setup through to stream-out.