Intel® Quartus® Prime Timing Analyzer Cookbook

ID 683081
Date 7/21/2022

False Paths

You do not need to analyze timing on all paths. Synchronization of non-critical paths can be removed or cut from timing analysis. When you declare non-critical paths, the Intel® Quartus® Prime Fitter can focus on the optimization of critical paths and can reduce overall compilation time.
Figure 16.  Register-to-Register Cut Path

False paths can be applied either to clock-to-clock transfers or to individual registers. Applying false paths to clock-to-clock transfers cuts all paths between the target clocks.

In the False Path Clock-to-Clock example, the path is cut and not analyzed by the Timing Analyzer for any register-to-register path where the source clock is clkA and the destination clock is clkB. This does not affect register-to-register paths where the source register is clocked by clkB and the destination register is clocked by clkA.

Note: The set_false_path command cuts paths from clock clkA to clkB. The command does not cut paths from clkB to clkA. To cut paths from clkB to clkA, you must apply an additional set_false_path command (for example, set_false_path -from clkB -to clkA). Alternatively, you can use set_clock_groups to cut paths from clkA to clkB and from clkB to clkA with one command.

Applying false paths to individual registers cuts only the path specified.

False Path Clock-to-Clock

create_clock -period 12 [get_ports clkA]
create_clock -period 5 [get_ports clkB]
set_false_path -from [get_clocks {clkA}] -to [get_clocks {clkB}]

In the False Path Register-to-Register example, the register-to-register path from register reg1 to register reg2 is cut. All other paths remain unaffected.

False Path Register-to-Register

create_clock -period 10 [get_ports clkA]
create_clock -period 5 [get_ports clkB]
set_false_path -from [get_pins {reg1|q}] -to [get_pins {reg2|d}]