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.