Automatic Adjustments for PU on Pblocks - 2021.1 English

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

Document ID
UG909
Release Date
2022-02-25
Version
2021.1 English

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.

Automatic Adjustments for PU on Pblocks and Automatic Adjustments for PU on Pblocks below give an example of how SNAPPING_MODE adjusts the Pblock for PU alignment. In Automatic Adjustments for PU on Pblocks, 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.

Figure 1. SNAPPING_MODE Example - UltraScale

While 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. In Automatic Adjustments for PU on Pblocks 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 rectangle.

Figure 2. PU Aligned Pblock

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 Vivado Design Suite tools create automatically for Pblocks of RPs. The following steps can be used for debugging/verifying Pblocks:

  1. Create or make an adjustment to an RP. The cell assigned to the Pblock must have the HD.RECONFIGURABLE property set.
  2. Source the highlighting script that was generated by the Vivado tools.
    source ./hd_visual/<pblock_name>_AllTiles.tcl
    
    Note: The scripts in the hd_visual directory 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.