In Versal devices, boundary logic interfaces (BLI) tiles are additional register stages available for signals going in and out of programmable logic (PL) to and from XPIO logic resources. The BLI register stages help optimize the timing of interfaces.
Based on the location, a BLI tile can be used by multiple sites:
- XPHY and XPIOLOGIC sites in a
XPIO_NIBBLEtile. - DDRMC.
- XPLL sites in a
CMT_XPLLtile. - DPLL sites in a
CMT_DPLLtile. - BUFGCE sites in a
CLK_REBUF_BUFGS_HSR_COREtile. - MMCM sites in a
CMT_MMCMtile.
Because the BLIs are aligned geometrically to each of the site types that use the BLI, the DFX flow automatically pulls the BLIs based on the tiles in the range of Pblocks. Following are some of the rules associated with adding BLI ranges to the reconfigurable Pblock:
- BLI tiles can be independently added to the reconfigurable Pblock range, even though none of the tiles mentioned above are added in the Pblock range.
- If an XPIO tile is ranged into an RP, the connected BLI is pulled into the placement footprint.
- If clocking resources like BUFG or MMCM are ranged in a reconfigurable Pblock, the connected BLI is pulled into the placement footprint by the tool.
- If AIE_PL or AIE_NOC sites are ranged in a reconfigurable Pblock, the connected BLI is pulled into the RP Pblock range automatically.
- If a conflict is observed that breaks the automatic pulling of BLI ranges, a DRC is flagged. This can happen when there are two tiles trying to use the same BLI, but those two tiles happen to be in two separate reconfigurable partitions. The DRC message also provides the resolution to remove the corresponding tile from the Pblock to avoid the conflict.
In the following figure, the CMT_MMCM tile (marked in magenta) is present in pblock_rp1rm1 and the XPIO tile (marked in green) is present in pblock_rp2rm1. The BLI tile (marked in red) is added in the placement footprint of both the RPs due to the HSR routing (highlighted in yellow).
This triggers the following DRC error, because the BLI is being shared by tiles of two different RPs.
HDPR-66- Error
HD.RECONFIGURABLE Pblock 'pblock_rp1rm1' and Pblock 'pblock_rp2rm1' overlap. Please re-floorplan Pblocks to ensure that reconfigurable pblocks don't have overlap with other rm pblocks.To get the overlapping tiles, use 'get_dfx_footprint -source [get_pblocks pblock_rp1rm1] -conflict [get_pblocks pblock_rp2rm1] -ranged'.pblock_rp2rm1
HDPR-156- Error
Reconfigurable pblock pblock_rp1rm1 has overlapping tile in its definition or in placement expansion. Please check other DRCs for overlapping sites/tiles or use 'get_dfx_footprint -overlap -of_objects [get_cells design_1_i/rp1rm1_0]' to get the list of all overlapping tiles.
You can remove one of the shared tiles to resolve the issue reported by the DRC and avoid having the same BLI shared by two RPs. You must resize the Pblocks to avoid overlaps. One resolution is to remove the conflicting CMT_MMCM tile from pblock_rp1rm1 and add the adjacent CMT_MMCM tile:
resize_pblock pblock_rp1rm1 -remove [get_sites -of_objects [get_tiles CMT_MMCM_X14Y0]]
resize_pblock pblock_rp1rm1 -add [get_sites -of_objects [get_tiles CMT_MMCM_X4Y0]]
To visualize the overlapping tiles, you can use the following commands to highlight and mark the placement footprint of the two RPs:
highlight_objects -color yellow [get_dfx_footprint -place -of_objects [get_cells <RP1_cellname>]]
mark_objects -color blue [get_dfx_footprint -place -of_objects [get_cells <RP2_cellname>]]
In the following example, the overlapping tiles are yellow and blue (shown in the red circle).