Guidelines for Controlling Global Clocking Logic

Isolation Design Flow for Zynq UltraScale+ MPSoCs and UltraScale+ FPGAs (XAPP1335)

Document ID
XAPP1335
Release Date
2023-05-15
Revision
2.2 English

It needs to be ensured that no global logic is logically contained in modules that are to be isolated. This is due to the UltraScale+ architecture that prohibits the isolation of such components due to their large scope. To aid non-isolation of global logic, Vivado tools allow you to keep your global logic as is (without HDL modification) by giving you the option to target said logic with an attribute that exempts it from isolation. This is a key feature in Vivado tools, because there are many IPs that have global logic embedded in them (BUFGs and MMCMs or Debug Hubs for example). In such cases, you identify them with a search and add the HD.ISOLATED_EXEMPT attribute to them.

An example of exempting Global Clocks from Isolation:

set_property HD.ISOLATED_EXEMPT true [get_cells -hierarchical -filter
{PRIMITIVE_TYPE =~ CLK.BUFFER.*}]
Note: The filtering structure (that is, CLK.BUFFER.*) shown in the example is correct for Vivado Design Suite 2019.1, however, this could change in future versions. Verify the correct structure for the version of Vivado used for your design.

These filter statements are very generic (wild cards). More specific operations can be performed if there are some clocks that need exemption and some that do not.

Note: You do not apply the HD.ISOLATED_EXEMPT property on a net, you apply it to the cell that drives the net to exempt the net from isolation.

Isolating Clock Nets needs special handling. There are two types of clock nets from IDF point of view:

Global Clock Net
A Clock net which is crossing the Isolated Module boundary. That means a clock net which has loads in more than one isolated module.
Local Clock Net
Clock net which is contained within an Isolated module. That means a clock net which has loads in one Isolated module.
Important: You cannot isolate global clocks due to their global scope. Support for local clocks is also limited. See the following sub-sections and sections for more details.