Why would a designer mark a path as a false path instead of just leaving it unconstrained?
From PDVerse STA Mentor Guide · pdVerse Mentor Guide
Short Answer
Leaving a path unconstrained means the tool never checks it at all and cannot tell an intentionally irrelevant path from a genuine constraint gap. Marking it a false path with set_false_path (SDC) is a deliberate, documented statement that the path was checked and judged not to need timing at all.
Technical Explanation
The two situations look similar in a report but mean very different things.
- What an unconstrained path signals: it means the tool has no startpoint/endpoint clock relationship or I/O delay to build a check from — a missing constraint, which
check_timing(PT) flags as something to fix. - What a false path signals: the path is fully constrained and could be checked, but the designer has decided, for a specific, understood reason, that its actual delay does not matter functionally.
- A typical real reason for a false path: a path only ever carries a value during chip reset or configuration, well before the clock is running at full speed, so its worst-case combinational delay is functionally irrelevant.
set_false_pathis documentation as much as a command: a reviewer looking atreport_timing(PT) or the SDC file sees the exact path excluded and, ideally, why, rather than wondering whether a constraint was simply forgotten.- The cost of leaving it unconstrained instead:
check_timing(PT) keeps flagging it as a missing constraint every single run, and nobody reviewing the SDC file can tell whether that gap is intentional or a bug waiting to be found.
Common Mistake
The Trap: treating "the path doesn't matter" and "the path is unconstrained" as interchangeable, and just never adding a constraint at all.
- A designer decides a reset-only path is irrelevant and simply never writes a
set_input_delay/set_output_delay(SDC) for it, rather than constraining it properly and then excluding it withset_false_path. - The next engineer to run
check_timing(PT) sees an unconstrained endpoint warning with no explanation, cannot tell if it is safe, and has to re-investigate a decision that was already made once.
Follow-up Question & Model Response
Does marking a path false path mean the tool ignores it completely, forever? Candidate Model Response: Within setup and hold analysis, yes — set_false_path (SDC) removes that specific path from every future setup and hold check, and it stays excluded until the constraint is edited or removed. It does not, however, remove the path from design rule checks like max transition or max capacitance, since those checks look at one signal's electrical properties, not the clock relationship the false path exception is about.
Practical Example
A configuration register's output only ever changes while RESET_N is held low, well before the core clock is enabled. The path is fully constrained through the normal clock, then excluded with set_false_path -from [get_pins cfg_reg/Q] -to [get_pins core_logic/D] (SDC), with a comment noting it is reset-only.
Complete STA Handbook
Master Signoff-Ready Static Timing Analysis
Get the complete 10-chapter STA handbook covering setup/hold margins, clock modeling, OCV/POCV, crosstalk noise, and PrimeTime closure.

Continue practising