Visible to Intel only — GUID: pdb1710813288234
Ixiasoft
Visible to Intel only — GUID: pdb1710813288234
Ixiasoft
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.
PIO address = {vf_active, pf[PF_NUM_W-1:0], vf[VF_NUM_W-1:0], address}
- vf_active: This indicates that SRIOV is enabled
- 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.
- 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.
- 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
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. |