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 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.
The USER_CLUSTER property lets you specify the placement of the cells grouped together. The property has only one form, that is, it takes the <group_name> of the groups cells that must be place together.
When using this property, analyze the design and find the specific instances involved in the top failing path. Check if the placement of the logic in the specific failing instance is spread out.
To manage placement across SLRs, start with USER_SLR_ASSIGNMENT to assign logic to an SLR or group. Add USER_CLUSTER to control the grouping of logic/instances in SLR.
- Architecture Support
- All architectures.
- Applicable Objects
- Cells (
get_cells
) as hierarchical modules. - Value
-
group_name
: This is a unique string value that can be assigned to one or more hierarchical cells or modules. The placer will try to place the cells or module with a commongroup_name
as close as possible.
Syntax
- Verilog and VHDL Syntax
- Not Applicable
- XDC Syntax
-
set_property USER_CLUSTER <group_name> <objects>
- XDC Example
-
The placer tries to place all cells in the specified instance as close as possible, that is, with minimal spreading.set_property USER_CLUSTER uc_group_1 [get_cells <instance_name>]
Affected Steps
- Place Design