What is a false path timing constraint?

False paths are timing paths that will never really be exercised in the final design. Suppose you are designing a 4-bit counter and it turns out that there is a very slow delay path when incrementing from 12 to 13. If your design always resets the counter whenever the count equals 9 then that slow path will never be seen in the actual design. You label the slow path as a false path so that the compiler doesn't spend any time, or add any extra logic, in an effort to make the false path run faster.


A false path is a path that does exist in the design but does not play a part in the operation, so it's not necessary to include it in the timing analysis.
There could be various reasons for this being the case, but since the timing analysis tool usually doesn't know (although there are some tools which can detect them) which paths may be used or not, you have to tell it. It's similar to a multi-cycle path, where you can tell it that a certain path is allowed to use more than one cycle to complete.

An example (of a false path) is a register that might be written once on power up, but then remains in the same state.

Tags:

Timing

Fpga

Hdl