Boundary Logic Interface

Versal Adaptive SoC SelectIO Resources Architecture Manual (AM010)

Document ID
AM010
Release Date
2024-03-18
Revision
1.5 English

In addition to clocking resource, XPIO banks provide register stages for both signals going into and coming out of the programmable logic space to and from XPIO. Because this resource exists between both types of XPIO logic resources (XPHY and XPIOL) and programmable logic regions, these logical blocks are called the boundary logic interface (BLI). In certain configurations, these BLI register stages can help optimize the timing of an interface. To implement registers in the BLI region, an FDCE or FDRE primitive can be instantiated in a design leveraging the BLI attribute:

set_property BLI TRUE|FALSE [get_cells register_name]

BLI registers have a few restrictions that FDRE and FDCE typically do not have. BLI registers cannot be assigned an initial value, and BLI registers do not have synchronous reset capabilities. When leveraging BLI registers, it can be helpful to leverage directives like EXTRACT_RESET = "no" in the Vivado Design Suite.

Figure 1. BLI Capable Flip-Flops (FDCE and FDRE)
Table 1. Single Data Rate Flip-Flop (FDCE and FDRE) Ports
Port I/O Description
Q Output Data output
C Input Clock input pin
CE Input Active-High clock enable register
D Input Data input
CLR Input Asynchronous clear (FDCE only)
R Input R must be tied to ground for FDRE in BLI.

Both single data rate and double data rate paths to and from the XP IOL can either use or bypass BLI registers. For the XPHY, several signals can leverage the BLI. See the following table for specific XPHY signals that can leverage BLI registers. In the table, DIV_CLK = REFCLK_FREQUENCY / TX_DATA_WIDTH.

Each BLI register has a fixed routing to a specific XPHY port. As a result, each bit within a bus must be connected to a separate BLI register.

Table 2. XPHY Ports That Can Connect to the BLI
XPHY Port Clock Domain Reset
CE CTRL_CLK -
PHY_RDEN DIV_CLK RST
Q<0-5> 1 FIFO_RD_CLK RX_RST[x] where x is Qx
DLY_RDY 1 CTRL_CLK RST
PHY_RDY 1 CTRL_CLK RST
GT_STATUS - RST
FIFO_EMPTY FIFO_RD_CLK RST
D<0-5> DIV_CLK TX_RST[x] where x is Dx
CNTVALUEOUT CTRL_CLK RST
CNTVALUEIN CTRL_CLK RST
CE CTRL_CLK RST
INC CTRL_CLK RST
LD CTRL_CLK RST
PHY_WREN DIV_CLK RST
PHY_WRCS0 DIV_CLK RST
PHY_WRCS1 DIV_CLK RST
RIU_ADDR CTRL_CLK RST
RIU_NIBBLE_SEL CTRL_CLK RST
RIU_WR_DATA CTRL_CLK RST
RIU_WR_EN CTRL_CLK RST
RIU_RD_DATA CTRL_CLK RST
RIU_RD_VALID CTRL_CLK RST
  1. DLY_RDY, PHY_RDY, and Q<-5> of the same nibble cannot all be connected to the BLI. DLY_RDY and PHY_RDY can be connected, or Q<0-5> can be connected, but not all three signals.