Use parallel clock buffers to achieve the following results:
- Ensure predictable placement across implementation runs.
The same input clock port, MMCM, XPLL, DPLL, or GT*_QUAD directly drives the parallel clock buffers. The system alwasys places the buffers in the same clock region as their driver. This placement occurs regardless of netlist changes or logic placement variation.
- Match the insertion delays between parallel branches of the clock tree.
AMD recommends parallel buffers over cascaded clock buffers, especially when there are synchronous paths between the branches. The clock insertion delay does not match between the branches of the clock trees when you use cascaded buffers. This remains true even when using the CLOCK_DELAY_GROUP or USER_CLOCK_ROOT constraints. This can result in high clock skew, which makes timing closure challenging if not impossible.
The following figure shows three parallel global clock buffers driven by the MMCM CLKOUT0 port.