IntermediateQuestion 64 of 112

How do you restrict a false path exception to only rising or falling clock edges?

From PDVerse STA Mentor Guide, part of the 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 Reference DiagramHow do you restrict a false path exception to only rising or falling clock edges?

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/-to treats 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_to and -fall_from mirror 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

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

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
Timing Constraints (SDC) Handbook โ€” nine chaptersSDC ConstraintsNine chapters on clocks, exceptions, and constraint linting.