Description
The DRC reports that there is a PU that is common to more than one reconfigurable Pblock, which is not recommended. The expansion of the routing footprint of one of the reconfigurable Pblocks led to sharing of a PU.
Example
The following DRC error can occur in DFX designs with two or more reconfigurable partitions (RPs) on an SSI technology Versal device. In this example, a Versal device has two Pblocks that are stacked on one another: p1_pblock and p2_pblock. The p1_pblock RP is on top, and its clock source originates from the bottom HSR region.
HDPR-97#1 Error
Versal Expanded Routing Splits Programmable Unit
The reconfigurable Pblock 'p1_pblock' has an expanded routing footprint that splits a Programable Unit. Tile : INTF_ROCF_BL_TILE_X37Y1 is shared by 2 reconfigurable pblock footprints
- Is in ROUTING footprint of reconfigurable pblock p1_pblock
Footprint Expansion Path :
- INTF_ROCF_BL_TILE_X37Y1 tile in ROUTING footprint for PU
- BLI_DSP_ROCF_BL_TILE_X37Y0 tile in PLACEMENT footprint for HSR_ROUTING
- CMT_MMCM_X36Y0 tile in PBLOCK
- Is in ROUTING footprint of reconfigurable pblock p0_pblock
Footprint Expansion Path :
- INTF_ROCF_BL_TILE_X37Y1 tile in ROUTING footprint for FRAME_ALIGNMENT
- INTF_ROCF_BL_TILE_X37Y47 tile in PBLOCK
Resolution : Resize pblock to avoid overlaps in footprint using following tcl commands
* resize_pblock
* get_sites -of [get_tiles <tile in PBLOCK>]
Debugging
The Tile section of the DRC error indicates that there is an
overlapping tile that is shared by two RPs. The error message suggests that expanded
routing footprint led to the tile overlap. To show the routing footprint for both
Pblocks, use the get_dfx_footprint
command. For
example:
highlight_objects -color blue [get_dfx_footprint -route -of_objects [get_cells design_1_i/rp2rm1]]
get_dfx_footprint
command is an Early Access feature supported for
debugging Versal devices only. For more
information, enter get_dfx_footprint -help
.In the following figure, the portion marked in red shows the overlapping tile: INTF_ROCF_BL_TILE_X37Y1. The routing footprint of the p1_pblock is highlighted in blue, and the routing footprint of the p0_pblock is highlighted in yellow.
The Footprint Expansion Path section of the DRC error shows how the overlapping tile INTF_ROCF_BL_TILE_X37Y1 was included in the p1_pblock:
- The CMT_MMCM_X36Y0 tile is part of the p1_pblock, and the MMCM/RST site pin
in the CMT_MMCM_X36Y0 tile is connected to INTF_ROCF_BL_TILE_X37Y1. To select
the sites in the Device view, use the
get_nodes
command iteratively. For example:select_objects [get_nodes -uphill -of_objects [get_nodes CMT_MMCM_X36Y0/CMT_MMCM_TOP_0_RST_PIN]]
- BLI_DSP_ROCF_BL_TILE_X37Y0 is part of the p1_pblock routing footprint. The
PU of BLI_DSP_ROCF_BL_TILE_X37Y0 includes the same INTF_ROCF_BL_TILE_X37Y1 tile.
To highlight the footprint in the Device view, use the
get_dfx_footprint
command. For example:select_objects [get_dfx_footprint -pu -of_objects [get_tiles BLI_DSP_ROCF_BL_TILE_X37Y0]]
The following figure shows the Device view with overlapping tiles and the MMCM/RST pin connection to the fabric interface.
The following figure shows the Device view with the PU for the BLI_DSP_ROCF_BL_TILE_X37Y0 tile selected.
The ROUTING footprint section of the DRC error explains how the INTF_ROCF_BL_TILE_X37Y1 tile was included in the other p0_pblock. In the first figure above, the yellow highlighted portion shows the routing footprint for the p0_pblock.
Resolution
To resolve the violation, at least one Pblock must be resized. This is a design-dependent decision. In this example, one option is to remove CMT_MMCM_X36Y0 from the p1_pblock and add the adjacent CMT tile to avoid the overlap. For example:
resize_pblock [get_pblocks p1_pblock ] -remove [get_sites -of_objects [get_tiles CMT_MMCM_X36Y0]]
resize_pblock [get_pblocks p1_pblock ] -add [get_sites -of_objects [get_tiles CMT_MMCM_X25Y0]]