BeginnerQuestion 61 of 95Source: Synopsys PrimeTime User Guide: Timing Paths and Exceptions

Why does marking a path false when it actually toggles cause a silicon bug?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

set_false_path (SDC) tells the tool to stop checking a path's delay completely — it does not stop the real hardware from switching. If that path genuinely does carry a changing signal during functional operation, its real delay is never verified, and a slow path can fail silently in silicon while every report stays clean.

Technical Reference DiagramWhy does marking a path false when it actually toggles cause a silicon bug?
A path marked false path in the SDC file with a warning icon showing the real silicon signal still toggling underneath the excluded check

Technical Explanation

The exception only changes what the tool looks at, never what the transistors actually do.

  • What the tool stops doing: once a path is marked false, report_timing (PT) never computes or reports a slack number for it again, under any corner, in any future run.
  • What the silicon keeps doing: the actual wires and gates on that path are completely unaffected by the SDC file — if the path was ever going to switch in real operation, it still will.
  • Why the mistake is easy to make: a path might look safe to exclude because it rarely switches, or only switches in a corner case the designer did not think through carefully enough before writing the exception.
  • Why the failure is so hard to catch: because the tool no longer reports on the path at all, there is no slack number, no warning, and no violation to notice — the report looks completely clean, which is the most dangerous kind of undetected problem.
  • Where it eventually surfaces: the bug typically shows up much later, as an intermittent functional failure in the lab or in the field, and tracing it back to a false timing exception can take far longer than catching it in constraint review would have.

Common Mistake

The Trap: marking a path false path based on how it behaves in one specific test or simulation scenario, rather than confirming it never toggles in any real operating condition.

  • A designer observes the path stays quiet in a handful of simulated test cases and assumes that means it is functionally never active.
  • A different, untested operating mode later does exercise that exact path, and its real, never-verified delay now causes a genuine setup or hold failure that no report ever flagged.

Follow-up Question & Model Response

What review step would have caught this kind of false-path mistake before tapeout? Candidate Model Response: A constraint review that checks every set_false_path (SDC) statement against a written, specific reason — not just "this looked safe" — and, ideally, cross-checks it against functional simulation or formal analysis that confirms the path truly is never active. Some flows also run formal false-path verification tools specifically to prove or disprove that a path marked false can genuinely never propagate a changing value, which catches exactly this class of error before the constraint ships.

Practical Example

A path from a rarely-used error-injection register to the ALU is marked false because it stayed quiet in the regression suite. A field-return failure is eventually traced to that exact path toggling during a diagnostic routine nobody had simulated, with a real delay that violates setup by 400ps — a number no report had ever shown.

Complete STA Handbook

Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Static Timing Analysis (STA) Handbook — ten chaptersSTA HandbookTen chapters on setup, hold, OCV, and PrimeTime signoff. →