idma_backend_wrapper

Turn 1-D iDMA transfer requests into AXI master read and write traffic.

Each master interface has its own idma_backend_rw_axi with a hardware legalizer, zero-length rejection and no error handling; an axi_mux merges its read and write ports and an axi_cut registers the master port. NUM_MST_INTERFACES must be >= 1. BUFFER_DEPTH is the realignment buffer depth in beats and must be >= 2; 3 handles misaligned transfers efficiently. EN_R_AW_COUPLING is recommended.

Parameters

Table 1. Parameters
NameTypeDefaultDescription
NUM_MST_INTERFACESint unsigned1Backend master count; must be >= 1.
DMA_MST_MAX_TXNSint unsigned16Max outstanding AXI transactions per master interface.
M2B_FIFO_DEPTHint unsigned0Depth of the request FIFO ahead of each backend; 0 passes requests straight through.
BUFFER_DEPTHint unsigned3Realignment buffer depth in beats; must be >= 2.
EN_R_AW_COUPLINGbit1Makes the backend's R-to-AW coupling hardware available; recommended.
BYPASS_DMA_MST_FLOPSbit1'b0Bypasses the axi_cut registers on each master port.
TF_LEN_WIDTHint unsigned32Transfer-length field width; the maximum transfer is 2**TF_LEN_WIDTH bytes.
AXI_ADDR_WIDTHint unsigned56AXI address width.
AXI_DATA_WIDTHint unsigned64Data width of the AXI master port and the backend transfer buffer.
AXI_USER_WIDTHint unsigned12User-signal width of the AXI master port.
MST_ID_WIDTHint unsigned3AXI master ID width; must equal BACKEND_INT_ID_WIDTH + 1.
BACKEND_INT_ID_WIDTHint unsigned2ID width of idma_req_t and of the backend read and write ports; axi_mux widens it by one bit.

Ports

Table 2. Ports
NameDirectionTypeDescription
clk_iinputlogicSystem clock.
rst_niinputlogicAsync reset, active-low.
test_en_iinputlogicDFT test enable for the request FIFO, the backend and the AXI mux.
dma_backend_busy_ooutputlogicHigh while any request is pending, any backend is busy, or any AW awaits its B or AR its last R.
req_iinputidma_req_t [NUM_MST_INTERFACES-1:0]Backend request payload.
req_valid_iinputlogic [NUM_MST_INTERFACES-1:0]Backend request valid.
req_ready_ooutputlogic [NUM_MST_INTERFACES-1:0]Backend request ready.
resp_ooutputidma_resp_t [NUM_MST_INTERFACES-1:0]Backend response payload.
resp_valid_ooutputlogic [NUM_MST_INTERFACES-1:0]Backend response valid.
resp_ready_iinputlogic [NUM_MST_INTERFACES-1:0]Backend response ready.
dma_mst_axi_req_ooutputdma_mst_req_t [NUM_MST_INTERFACES-1:0]AXI master request, registered by axi_cut unless BYPASS_DMA_MST_FLOPS.
dma_mst_axi_resp_iinputdma_mst_resp_t [NUM_MST_INTERFACES-1:0]AXI master response.