In Versal, 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 helps optimize timing of interface.
Based on the location, a BLI tile can be used by multiple sites.
- XPHY and XPIOLOGIC sites in
- XPLL sites in
- DPLL sites in
- BUFGCE sites in
- MMCM sites in
Since the BLIs are aligned geometrically exactly to each of these site types that uses it, DFX flow automatically pulls the BLIs based on the tiles in the range of Pblock. Here 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, connected BLI will be pulled into the placement footprint.
- If clocking resources like BUFG, MMCM are ranged in a reconfigurable Pblock, connected BLI will be pulled into the placement footprint by the tool.
- If AIE_PL or AIE_NOC sites are ranged in a reconfigurable Pblock, connected BLI will be 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. DRC message also provides the resolution to remove the corresponding tile from the Pblock to avoid the conflict.
In figure above, the BLI (red mark) in rp2rm1 is having direct connections to
XPIO (green color marked) in rp2rm1 and DDRMC (magenta color marked) in
rp1rm1. Yellow highlight shows the nodes of BLI which has direct
connections to these tiles. This will trigger the DRC mentioned below since BLI is being
shared by tiles of two different RPs. User can remove one of the shared tiles to get
past the DRC and avoid driving same BLI by two independent RPs.
Resolution for this is to remove the sites of the tile using the following command:
resize_pblock -remove pblock_rp2rm1 [get_sites -of [get_tiles XPIO_NIBBLE_SC_X78Y0]]