We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 58961

Vivado Constraints - What are the differences among -physical_exclusive, -logical_exclusive and -asynchronous arguments of set_clock_groups?


set_clock_groups is used to define asynchronous/exclusive clock groups so that paths between these groups are treated as false paths.

It has three mutually exclusive arguments: -physical_exclusive, -logical_exclusive and -asynchronous.

What are the differences between the three arguments?


The three clock relationships originated from SDC have different impacts on SI crosstalk analysis.

From an FPGA timing analysis perspective, the impact would be the same.
To more accurately specify the clock relationships, it would be good to understand the different clock interactions.

  • -asynchronous
When there are valid timing paths between two clock groups but the two clocks do not have any frequency or phase relationship and these timing paths need not to be timed, use -asynchronous.
When there are false timing paths (physically or logically non-existent) between two clock groups, use -physical_exclusive or -logical_exclusive

  • -logical_exclusive
-logical_exclusive is used for two clocks that are defined on different source roots.
Logically exclusive clocks do not have any functional paths between them, but might have coupling interactions with each other.
An example of logically exclusive clocks is multiple clocks, which are selected by a MUX but can still interact through coupling upstream of the MUX cell.
When there are physically existing but logically false paths between the two clocks, use "set_clock_groups -logical_exclusive".

  • -physical_exclusive
-physical_exclusive is used for two clocks that are defined on the same source root by "create_clock -add".
Timing paths between these two clocks do not physically exist.
As a result you will need to use "set_clock_groups -physical_exclusive" to set them as false paths.

There is an example of "set_clock_groups" under the Section "Constraining Exclusive Clock Groups" in (UG949).

Please refer to this example which will help you understand the difference between -logical_exclusive and -physical_exclusive.
AR# 58961
Date 12/17/2014
Status Active
Type General Article
  • Vivado Design Suite
Page Bookmarked