AXI Multichannel DMA Intel® FPGA IP for PCI Express* User Guide

ID 817911
Date 7/22/2024
Public
Document Table of Contents

4.5.5. PIO AXI-Lite Master (pio_lite_initiatr)

The PIO Master is enabled in Multichannel DMA mode. It bypasses the DMA block and provides a way for the Host to do MMIO read/write to CSR registers of user logic. PCIe BAR2 is mapped to the PIO Master. Any TLP targeting BAR2 is forwarded to the user logic via AXI-Lite interface. TLP address targeting the PIO interface should be 8 bytes aligned. The PIO interface supports non-bursting 64-bit write and read transfers only.

Note: Do not attempt to perform 32-bit transactions on PIO interface. Only 64-bit transactions are supported.
The PIO interface address mapping is as follows:
PIO address = {vf_active, pf[PF_NUM_W-1:0], vf[VF_NUM_W-1:0], address}
  1. vf_active: This indicates that SRIOV is enabled
  2. pf[PF_NUM_W-1:0]: This denotes the physical function number decoded from the PCIe header. PF_NUM_W, which is defined as ($clog2(Number of PFs)) is a parameter in the RTL design chosen to limit the number of wires on the user interface of the Multichannel DMA IP. This reduces the overhead associated with unnecessary wiring.
  3. vf[VF_NUM_W-1:0]: This denotes the virtual function number decoded from the PCIe header. VF_NUM_W, which is defined as ($clog2(Number of VFs)) is a parameter in the RTL design chosen to limit the number of wires on the user interface of the Multichannel DMA IP. This reduces the overhead associated with unnecessary wiring.
  4. address: Number of bits required for BAR2 size requested across all Functions (PFs and VFs). Example: If BAR2 is selected as 4 MB, the address size is 22 bits.

The following table describes the interface signals.

Interface clock: axi_lite_clk

Table 28.  PIO AXI-Lite Master Interface
Signal Name Direction Description
Write Address Channel
rx_pio_axi_lite_awvalid Output

Write address valid

rx_pio_axi_lite_awready Input

Write address ready

Indicates that the slave is ready to accept an address.

rx_pio_axi_lite_awaddr[n:0] Output

Write address.

The write address gives the address of the first transfer in a write burst transaction.

Refer to the PIO address mapping for actual address width.

rx_pio_axi_lite_awprot[2:0] Output

Protection type.

This signal indicates the privilege and security level of the transaction, and whether the transaction is a data access or an instruction access. (not used)

Write Data Channel
rx_pio_axi_lite_wvalid Output

Write data valid

rx_pio_axi_lite_wready Input

Write data ready

Indicates that the slave is ready to accept data

rx_pio_axi_lite_wdata[63:0] Output

Write data

rx_pio_axi_lite_wstrb[7:0] Output

Write strobe

Indicates which byte lanes hold valid data

Write Response Channel
rx_pio_axi_lite_bvalid Input

Indicates that the write response channel signals are valid

rx_pio_axi_lite_bready Output

Indicates that a transfer on the write response channel can be accepted

rx_pio_axi_lite_bresp[1:0] Input

Write response

Indicates the status of a write transaction

Read Address Channel
rx_pio_axi_lite_arvalid Output

Indicates that the read address channel signals are valid

rx_pio_axi_lite_arready Input

Indicates that a transfer on the read address channel can be accepted

rx_pio_axi_lite_araddr[n:0] Output

The address of the first transfer in a read transaction.

Refer to the PIO address mapping for actual address width.

rx_pio_axi_lite_arprot[2:0] Output

Protection type.

This signal indicates the privilege and security level of the transaction, and whether the transaction is a data access or an instruction access. (not used)

Read Data Channel
rx_pio_axi_lite_rvalid Input

Read data valid

rx_pio_axi_lite_rready Output

Indicates the master is ready to accept read data

rx_pio_axi_lite_rdata[63:0] Input

Read data

rx_pio_axi_lite_rresp[1:0] Input

Read response, indicates the status of the read transfer.

EXOKAY is not supported on Intel FPGA.