In UltraScale and UltraScale+ devices, there is no
RESET_AFTER_RECONFIG option. Instead, GSR is always issued
at the end of a partial reconfiguration, and there are no Pblock size/shape requirements
to enable this like there are in 7 series devices. However, to ensure that the Pblock does not
violate any rules for minimum PU sizes, the
SNAPPING_MODE property is also always on by default, and automatically
adjusts the Pblock to make sure it is valid for PR.
The following figures provide an example of how
SNAPPING_MODE adjusts the Pblock for PU alignment. Despite the larger
outer rectangle, only the selected tiles belong to the RP Pblock. The upper block RAM
and DSP sites are not included because they are not fully contained in the Pblock, and
the associated CLB sites are not included either, based on the PU rules. There are also
CLB sites on both the left and right edge that are not included in the Pblock because
the adjacent CLBs are not owned by the original rectangle.
SNAPPING_MODE made the above Pblock legal
for the RP, it is possible that the intent was to include all of these sites. By making
a small adjustment to the original Pblock rectangle, you can prevent
SNAPPING_MODE from removing sites that are intended for the
dynamic region. The Pblock has been expanded by one CLB on the left, right, and top
edges. The shaded tiles that are owned by the RP Pblock now match the outer
While shading shows what is included in a reconfigurable partition (RP), you can best visualize the sites owned by a RP by using highlighting scripts that the AMD Vivado™ Design Suite tools create automatically for Pblocks of RPs. The following steps can be used for debugging/verifying Pblocks:
- Create or make an adjustment to an RP. The cell assigned to the Pblock must have the
- Source the highlighting script that was generated by the Vivado tools.
source ./hd_visual/<pblock_name>_AllTiles.tclNote: The scripts in the
hd_visualdirectory are updated any time the Pblock constraints are processed. This includes opening a design that contains Pblocks and creating or modifying Pblocks in an open design.