Unexpandable Clocks - Unexpandable Clocks - 2026.1 English - UG903

Vivado Design Suite User Guide: Using Constraints (UG903)

Document ID
UG903
Release Date
2026-07-01
Version
2026.1 English

Treat two clocks as unexpandable when the timing engine cannot find a common period within the first 1000 cycles. The engine then uses the worst setup relationship across those cycles. That result is not always the true worst case.

This typically occurs with odd fractional period ratios. For example, consider two clocks, clk0 and clk1, generated by two MMCMs that share the same primary clock:

  • clk0 has a 5.125 ns period.
  • clk1 has a 6.666 ns period.

Their rising clock edges do not realign within 1,000 cycles. Timing then uses a 0.01 ns setup requirement between the clocks. Even if both clocks share a known phase at the clock-tree root, their waveforms prevent safe timing between them.

As with asynchronous clocks, reports show slack, but you cannot trust the value. Treat unexpandable clocks like asynchronous clocks. Constrain them and design clock-domain crossings the same way.