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

What does -through, -from, and -to mean when writing a timing exception?

From PDVerse STA Mentor Guide · pdVerse Mentor Guide

Short Answer

-from and -to name a path's startpoint and endpoint directly — a clock, a register, or a port. -through instead names one or more intermediate points the path must pass through on its way there, letting the designer target one specific route among several that share the same start and end.

Technical Reference DiagramWhat does -through, -from, and -to mean when writing a timing exception?
Two combinational routes between the same two registers, one through a bypass mux and one through an adder, with only the bypass route highlighted as excluded

Technical Explanation

A timing exception like set_false_path or set_multicycle_path (SDC) needs to describe exactly which path it applies to, and these three options do that job differently.

  • -from and -to set the boundaries: they take a clock, register, or port and mark it as where the exception's path must begin or end — the same role a normal path's startpoint and endpoint play.
  • -through targets the middle of the path: it names a pin, port, or cell the path must physically pass through, which is essential when several different paths share the same startpoint and endpoint but travel through different logic.
  • Why -through alone is often enough: a designer can write an exception using only -through, with no -from or -to at all, when the goal is to catch every path passing through one specific point, regardless of where each one starts or ends.
  • Multiple -through arguments chain together: listing more than one -through requires the path to pass through each named point in that same order, which lets a designer describe a route through several specific pins, not just one.
  • These options are shared across exception commands: set_false_path, set_multicycle_path, set_max_delay, and set_min_delay (all SDC) all accept the same -from/-to/-through vocabulary, so learning it once applies to every exception type.

Common Mistake

The Trap: using only -from and -to when several different logic routes share the same two endpoints, assuming the exception covers all of them.

  • A designer writes set_false_path -from REGA -to REGB (SDC) intending to exclude one particular routed path, not realizing a second, separate route between the same two registers also exists through different combinational logic.
  • The exception silently excludes both routes, including one that still genuinely needs to be timed, because -from/-to alone cannot distinguish between multiple paths sharing the same start and end.

Follow-up Question & Model Response

If a path needs to go through two specific pins in order, how do you write that? Candidate Model Response: List both points as separate -through arguments in the order the path must actually traverse them, for example -through [get_pins muxA/Z] -through [get_pins muxB/Z] (SDC). The tool requires the path to pass through the first named point before the second, which is exactly how a designer narrows an exception down to one specific route when several candidate paths share the same overall startpoint and endpoint but pass through different intermediate logic.

Practical Example

Two combinational routes both run from REGA to REGB, one through a bypass multiplexer and one through a full adder. Only the bypass route is meant to be excluded, so the designer writes set_false_path -from [get_cells REGA] -through [get_pins bypass_mux/Z] -to [get_cells REGB] (SDC), leaving the adder route fully checked.

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. →