Clustering Logic - 2023.2 English

UltraFast Design Methodology Guide for FPGAs and SoCs (UG949)

Document ID
Release Date
2023.2 English

To group and place certain instances or design elements as closely as possible, you can use the USER_CLUSTER property to specify the placement of grouped cells. This allows you to manage logic partitioning as well as the behavior of the Vivado Design Suite placer. You can specify the USER_CLUSTER property on a set of hierarchical instances to form a soft cluster that is taken into account during the SLR partitioning and partition-driven placer phases. For more information on this property, see the Vivado Design Suite Properties Reference Guide (UG912).

Important: This property is considered a guideline that the placer attempts to follow. However, this property might be overridden to achieve a valid placement result.
Tip: To manage placement across SLRs, start with USER_SLR_ASSIGNMENT to assign logic to an SLR or group, and add USER_CLUSTER to control the grouping of logic instances within SLR.

After you analyze the design, find the specific instances involved in the top failing paths, and determine whether the logic placement within the failing instance is spread out, you can use the USER_CLUSTER property to improve placement, which results in better performance of the design. In the following figure, the example on the left shows the default placement of the instance. The example on the right shows the placement of the instance after applying the USER_CLUSTER property.

Figure 1. Instance Placement Before and After Using the USER_CLUSTER Property