Close Menu
VLSI Web
  • Home
    • About Us
    • Contact Us
    • Privacy Policy
  • Digital Design
    • Digital Circuits
    • Verilog
    • VHDL
    • System Verilog
    • UVM
  • VLSI Roles
    • RTL Design
    • Design Verification
    • Physical Design
    • DFT
    • STA
  • Interviews
  • Informative
  • VLSI Forge
Instagram LinkedIn WhatsApp Telegram
Instagram LinkedIn WhatsApp Telegram
VLSI Web
  • Home
    • About Us
    • Contact Us
    • Privacy Policy
  • Digital Design
    • Digital Circuits
    • Verilog
    • VHDL
    • System Verilog
    • UVM
  • VLSI Roles
    • RTL Design
    • Design Verification
    • Physical Design
    • DFT
    • STA
  • Interviews
  • Informative
  • VLSI Forge
VLSI Web
STA

False Paths and Multicycle Paths: Timing Exceptions Done Right

Raju GorlaBy Raju Gorla29 May 2026Updated:12 October 2026No Comments4 Mins Read
False paths and multicycle paths
Share
Facebook Twitter LinkedIn Email Telegram WhatsApp

The short answer: Timing exceptions tell STA that a path shouldn’t be timed the default single-cycle way. A false path (set_false_path) is never timed, for example between asynchronous clocks or from a static configuration register. A multicycle path (set_multicycle_path) is still timed but allowed more than one cycle; when you move the setup check by N cycles, you usually also move the hold check back by N−1 so hold stays on the launch edge. Exceptions should be few, narrow and justified, because a wrong one hides real failures.

Exceptions are the most dangerous lines in an SDC. A single over-broad false path can switch off timing on hundreds of real paths without a single warning. This post explains how false and multicycle paths work and how I write them safely. It combines my older posts on false paths and multicycle paths.

  1. False paths
  2. Multicycle paths
  3. Other exceptions
  4. Rules I follow for exceptions

Table of Contents

  • Part 1: False paths
  • Part 2: Multicycle paths
  • Part 3: Other exceptions
  • Part 4: Rules I follow for exceptions
  • FAQ
    • What is a false path?
    • What is a multicycle path?
    • Why do we need set_multicycle_path -hold with -setup?
    • Is a false path on a CDC enough?

Part 1: False paths

  • Paths between asynchronous clock domains (better expressed as set_clock_groups -asynchronous).
  • Paths from quasi-static signals: configuration registers written once while the destination is idle.
  • Paths that can’t be sensitised functionally, such as between two muxes that are never selected together (prove this before declaring it).
  • Test-only paths when timing a functional mode, handled with case analysis or mode-specific SDC.
set_clock_groups -asynchronous -group {clk_a} -group {clk_b}
set_false_path -from [get_cells u_cfg/mode_reg*]   ;# static after boot, see spec 4.2

False-pathing a CDC crossing doesn’t make it safe; it only stops STA from timing it. The crossing still needs a proper synchroniser.

Part 2: Multicycle paths

Waveform of a two-cycle multicycle path: launch edge, the default setup edge, and the moved setup edge two cycles later
The capture flop only loads every other cycle, so data has two periods.
set_multicycle_path 2 -setup -from [get_cells u_mac/acc_in*] -to [get_cells u_mac/acc_out*]
set_multicycle_path 1 -hold  -from [get_cells u_mac/acc_in*] -to [get_cells u_mac/acc_out*]
  • The -setup 2 moves the setup check to the second capture edge.
  • By default, the hold check moves with it (to one edge before the new setup edge), which would make hold far too strict.
  • The -hold 1 moves the hold check back by one edge, to the original launch edge.
  • Only use a multicycle path when the design guarantees it, typically with an enable that captures every N cycles; otherwise it’s a functional bug waiting to happen.

Part 3: Other exceptions

Command Use
set_max_delay / set_min_delay Point-to-point limits, e.g. async FIFO Gray pointers (-datapath_only)
set_clock_groups -physically_exclusive Clocks that can never exist at the same time (muxed clocks)
set_clock_groups -logically_exclusive Clocks that exist together but never interact
set_disable_timing Break a timing arc, e.g. a loop in a scan path

Part 4: Rules I follow for exceptions

  • Be specific: -from and -to on exact registers or pins, never wildcards like *reg*.
  • Comment every exception with the reason and a reference to the spec.
  • Review exceptions with the RTL designer who owns the logic.
  • Check exceptions are actually applied: tools report unused or overridden exceptions.
  • Prefer architectural fixes (pipelining, synchronisers) over exceptions when possible.

Practise this on VLSI Forge

I built VLSI Forge so you can write RTL in your browser, run it on a real simulator and check every signal in the waveform. Free, nothing to install.

Static Timing Analysis problems · Daily challenge

Previous in my STA series: SDC timing constraints. Next: Corners, OCV and variation.

FAQ

What is a false path?

A timing path that STA should ignore because it can never be exercised in a timing-critical way, such as a path between asynchronous clocks or from a static register.

What is a multicycle path?

A path that is allowed more than one clock cycle for data to propagate, usually because the capture register is enabled every N cycles.

Why do we need set_multicycle_path -hold with -setup?

Moving the setup check also moves the default hold check forward, making it too strict. The hold multicycle moves it back to the original edge.

Is a false path on a CDC enough?

No. It stops STA from timing the path, but the crossing still needs a synchroniser or FIFO to be safe.

Share. Facebook Twitter LinkedIn Email Telegram WhatsApp
Previous ArticleSDC Timing Constraints: A Complete Example and How to Review It
Next Article Corners, OCV and Variation in STA: Worst Case, Best Case and Beyond
Raju Gorla
  • Website

Related Posts

STA

Corners, OCV and Variation in STA: Worst Case, Best Case and Beyond

30 May 2026
STA

SDC Timing Constraints: A Complete Example and How to Review It

28 May 2026
STA

Clocks in STA: Latency, Skew, Uncertainty and Jitter

27 May 2026
Add A Comment
Leave A Reply Cancel Reply

Topics
  • Digital Circuits
  • Informative
  • Interview Questions
  • Physical Design
  • RTL Design
  • STA
  • System Verilog
  • UVM
  • Verilog
Instagram LinkedIn WhatsApp Telegram
  • About
  • Contact
  • Privacy Policy
  • VLSI Forge
  • Courses
  • Feedback
© 2026 VLSI Web

Type above and press Enter to search. Press Esc to cancel.