Automatic Adjustments for Reconfigurable Partition Pblocks - 2023.2 English

Vivado Design Suite User Guide: Dynamic Function eXchange (UG909)

Document ID
Release Date
2023.2 English

The Pblock SNAPPING_MODE property automatically resizes Pblocks to ensure no back-to-back violations occur for 7 series designs. When SNAPPING_MODE is set to a value of ON or ROUTING, it creates a new set of derived Pblock ranges that are used for implementation. The new ranges are stored in memory, and are not written out to the XDC. Only the SNAPPING_MODE property is written out, in addition to the normal Pblock constraints.

In 7 series devices the structure is such that the routing resources, called interconnect tiles, are placed adjacent, or back-to-back. When floorplanning for partial reconfiguration, it is important to understand where these back-to-back boundaries exist. If a Pblock splits these paired interconnect tiles, it is called a back-to-back violation. For more information on back-to-back interconnect please refer to Creating Reconfigurable Partition Pblocks Manually.

The original Pblock rectangle(s) are not modified when using SNAPPING_MODE and can still be resized, moved, or extended with additional rectangles. Whenever the original Pblock rectangle is modified, the derived ranges are automatically recalculated. The SNAPPING_MODE property is supported in batch mode, so there is no requirement to open the current Pblock in the Vivado IDE to set the SNAPPING_MODE value, although this option is available when performing interactive floorplanning, as shown in Automatic Adjustments for Reconfigurable Partition Pblocks.

Figure 1. Enabling the SNAPPING_MODE Property in the Vivado IDE

When you set the SNAPPING_MODE property using the following syntax (or by selecting the Pblock Property as shown above), the implementation tools automatically see the corrected Pblock ranges.

set_property SNAPPING_MODE ON [get_pblocks <pblock_name>]

The following table shows SNAPPING_MODE property values for 7 series devices.

Table 1. SNAPPING_MODE Property Values for 7 Series Devices
Property Value Description
SNAPPING_MODE OFF Default for 7 series. No adjustments are made and DERIVED_RANGES == GRID_RANGES
ON Fixes all back-to-back violations.
ROUTING Same behavior as ON, except for the following exceptions:
  • Does not fix back-to-back violations across the center clock column to improve routing.
  • Grabs unbonded I/O and GT sites that are within or adjacent to the RP Pblock to improve routing. It can only use these resources for PR routing if the sites are unbonded and if the entire column (Clock Region in height) is included in the Pblock rectangle.

    This is the recommended value for 7 series and Zynq designs.

The SNAPPING_MODE property also works in conjunction with RESET_AFTER_RECONFIG. Using RESET_AFTER_RECONFIG requires Pblocks to be vertically frame (or clock region) aligned. When SNAPPING_MODE is set to ON or to ROUTING and RESET_AFTER_RECONFIG is set to TRUE, the derived ranges automatically include all sites necessary to meet this requirement.

Automatic Adjustments for Reconfigurable Partition Pblocks shows the original user-created Pblock in purple. RESET_AFTER_RECONFIG has been enabled, and both left and right edges split interconnect columns. By applying SNAPPING_MODE, the resulting derived Pblock (shown in yellow) is narrower to avoid INT-INT boundaries, and taller to snap to the height of a clock region.

Figure 2. Original and Derived Pblocks Using SNAPPING_MODE