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.
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.
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 |
|