Visible to Intel only — GUID: tic1710813225052
Ixiasoft
Visible to Intel only — GUID: tic1710813225052
Ixiasoft
4.5.3. BAM AXI-MM Master (bam_mm_initatr)
The BAM bypasses the AXI MCDMA IP for PCI Express and provides a way for a Host to perform bursting PIO read/writes to the user logic. The BAM converts memory read and write TLPs initiated by the remote link partner and received over the PCIe link into AXI-MM burst read and write transactions, and sends back CplD TLPs for read requests it receives.
The BAM interface address mapping is as follows:
BAM address = {vf_active, pf[PF_NUM_W-1:0], vf[VF_NUM_W-1:0], bar_num[2: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.
- bar_num[2:0]: This denotes the BAR number decoded from the PCIe header.
- 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.
Interface Clock: axi_mm_clk
- 1024 bits for Gen5 1x16
- 512 bits for Gen5 2x8, Gen4 1x16, Gen3 1x16
- 256 bits for Gen4 2x8, Gen3 2x8
Signal Name | Direction | Description |
---|---|---|
Write Address Channel | ||
bam_axi_mm_awvalid | Output | Write address valid. This signal indicates that the channel is signaling valid write address and control information. |
bam_axi_mm_awready | Input | Write address ready. This signal indicates that the slave is ready to accept an address and associated control signals. |
bam_axi_mm_awid[3:0] | Output | Write address ID. This signal is the identification tag for the write address group of signals. The default value is 0. |
bam_axi_mm_awaddr[n:0] | Output | Write address. The write address gives the address of the first transfer in a write burst transaction. Refer to the BAM address mapping for the actual address width. |
bam_axi_mm_awlen[7:0] | Output | Burst length. The burst length gives the exact number of transfers in a burst. This information determines the number of data transfers associated with the address. |
bam_axi_mm_awsize[2:0] | Output | Burst size. This signal indicates the size of each transfer in the burst. |
bam_axi_mm_awburst[1:0] | Output | Burst type. The burst type and the size information determine how the address for each transfer within the burst is calculated. The Intel FPGA supports only the INCR burst type. |
bam_axi_mm_awlock | Output | Lock type. Tied to '0'. |
bam_axi_mm_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 | ||
bam_axi_mm_wvalid | Output | Write Data Valid |
bam_axi_mm_wready | Input | Write Data Ready Indicates the receiver can accept write data |
bam_axi_mm_wdata[DWIDTH-1:0] | Output | Write data |
bam_axi_mm_wstrb[DWIDTH/8-1:0] | Output | Write strobes |
bam_axi_mm_wlast | Output | Write last |
Write Response Channel | ||
bam_axi_mm_bvalid | Input | Write Response Valid |
bam_axi_mm_bready | Output | Write Response Ready |
bam_axi_mm_bid[3:0] | Input | Response ID This signal is the ID tag of the write response. |
bam_axi_mm_bresp[1:0] | Input | Write Response |
Read Address Channel | ||
bam_axi_mm_arvalid | Output | Read address valid. This signal indicates that the channel is signaling valid read address and control information. |
bam_axi_mm_arready | Input | Read address ready. This signal indicates that the slave is ready to accept an address and associated control signals |
bam_axi_mm_arid[3:0] | Output | Read address ID. This signal is the identification tag for the read address group of signals. The default value is 0. |
bam_axi_mm_araddr[n:0] | Output | Read address. The read address gives the address of the first transfer in a read burst transaction. Refer to the BAM address mapping for the actual address width. |
bam_axi_mm_arlen[7:0] | Output | Burst length. The burst length gives the exact number of transfers in a burst. |
bam_axi_mm_arsize[2:0] | Output | Burst size. This signal indicates the size of each transfer in the burst. |
bam_axi_mm_arburst[1:0] | Output | Burst type. The burst type and the size information determine how the address for each transfer within the burst is calculated. The Intel FPGA supports only the INCR burst type. |
bam_axi_mm_arlock | Output | Lock type. Tied to '0'. |
bam_axi_mm_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 | ||
bam_axi_mm_rvalid | Input | Read data valid. This signal indicates that the channel is signaling the read data is valid. |
bam_axi_mm_rready | Output | Read data ready. This signal indicates that the master can accept the read data and response information. |
bam_axi_mm_rid[3:0] | Input | Read ID tag. This signal is the identification tag for the read data group of signals generated by the slave. |
bam_axi_mm_rdata[DWIDTH-1:0] | Input | Read Data |
bam_axi_mm_rresp[1:0] | Input | Read response.
This signal indicates the status of the read transfer. EXOKAY is not supported on Intel FPGA. (Per the AXI specification, EXOKAY means the Exclusive read succeeded. This response is only permitted for an Exclusive read).
|
bam_axi_mm_rlast | Input | Read last. This signal indicates the last transfer in a read burst. |