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.
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.
| 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:
|
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.