How do you restrict a false path exception to only rising or falling clock edges?
From PDVerse STA Mentor Guide · pdVerse Mentor Guide
Short Answer
The plain -from/-to options in set_false_path (SDC) apply to a path regardless of which clock edge launches or captures it. Adding -rise_from, -fall_from, -rise_to, or -fall_to narrows the exception to only the paths that launch or are captured on that specific edge, leaving the opposite-edge paths through the same registers fully checked.
Technical Explanation
A register clocked by a single clock can still have separate rising-edge and falling-edge paths through it, and the edge-qualified options let you tell them apart.
- Plain
-from/-totreats both edges the same.set_false_path -to [get_clocks CLK](SDC) declares every path ending at a register on CLK false, whether the capture happens on the rising or the falling edge. - The edge-qualified forms pick one edge only.
set_false_path -rise_from [get_clocks CLK]only declares false the paths that launch on CLK's rising edge; paths launching on the falling edge of the same clock stay checked. - Why this matters on one clock with two edge roles: a design that uses the falling edge of CLK for one set of flip-flops and the rising edge for another can have a false condition on one edge's paths but a real, checked condition on the other edge's paths through related logic.
-fall_toand-fall_frommirror the rising-edge forms, restricting the exception to paths captured, or launched, on the falling edge specifically.- A clock-level exception without an edge qualifier is the wider, riskier default. Reach for the edge-qualified form whenever the false condition is genuinely tied to one edge's role in the design, not the clock as a whole.
- Verify the result with
report_exceptions(PT), which expands the edge-qualified exception to the exact pin pairs it reached, so you can confirm the opposite-edge paths were left untouched.
Common Mistake
The Trap: writing a plain -to [get_clocks CLK] false path to cover a falling-edge condition, without realizing the same command also silences every rising-edge path on that clock.
- A designer wants to exclude only the falling-edge-captured paths on a dual-edge clock, but writes the command without
-fall_to, assuming clock-level always means "this one role I'm thinking of". - The rising-edge paths through unrelated, fully synchronous registers on the same clock get silently excluded too, removing real coverage the designer never intended to give up.
Follow-up Question & Model Response
You add set_false_path -fall_to [get_clocks CLK] to a design. How would you double-check that the rising-edge paths on the same clock are still being checked?
Candidate Model Response: I would run report_exceptions (PT) to see the expanded list of pin pairs the falling-edge exception actually reached, confirming none of them are rising-edge captures. Separately, I would run report_timing -to [get_clocks CLK] (PT) and check that rising-edge paths still appear in the report with real slack values, rather than being missing or flagged as excluded. If a rising-edge path I expected to see is absent, that would tell me the exception reached further than the -fall_to qualifier should have allowed, and I would recheck the command's other options for an unintended overlap.
Practical Example
A clock CLK drives one bank of registers on its rising edge for normal datapath logic and a second bank on its falling edge for a legacy interface block whose falling-edge captures are known to be functionally irrelevant. The team applies set_false_path -fall_to [get_clocks CLK] (SDC), which report_exceptions (PT) confirms reaches only the legacy interface's falling-edge-captured paths. report_timing -to [get_clocks CLK] afterward still lists the rising-edge datapath paths with normal slack values, confirming the rising-edge bank was never affected by the falling-edge exception.
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