Module idma_desc64_top

This module serves as a descriptor-based frontend for the iDMA in the CVA6-core

Parameters

AddrWidth: int unsigned

Width of the addresses

DataWidth: int unsigned

Width of a data item on the AXI bus

AxiIdWidth: int unsigned

Width an AXI ID

idma_req_t: type

burst request type. See the documentation of the idma backend for details

idma_rsp_t: type

burst response type. See the documentation of the idma backend for details

reg_rsp_t: type

regbus interface types. Use the REG_BUS_TYPEDEF macros to define the types

or see the idma backend documentation for more details

reg_req_t: type

axi_rsp_t: type

AXI interface types used for fetching descriptors.

Use the AXI_TYPEDEF_ALL macros to define the types

axi_req_t: type

axi_ar_chan_t: type

axi_r_chan_t: type

InputFifoDepth: int unsigned

Specifies the depth of the fifo behind the descriptor address register

PendingFifoDepth: int unsigned

Specifies the buffer size of the fifo that tracks requests submitted to the backend

BackendDepth: int unsigned

How many requests the backend might have at the same time in its buffers.

Usually, NumAxInFlight + BufferDepth

NSpeculation: int unsigned

Specifies how many descriptors may be fetched speculatively

MaxAWWPending: int unsigned

Specifies how many unsent AWs/Ws are allowed

PendingFifoDepthBits: int unsigned

Ports

clk_i: input logic

clock

rst_ni: input logic

reset

master_req_o: output axi_req_t

axi interface used for fetching descriptors

master pair

master request

master_rsp_i: input axi_rsp_t

master response

axi_ar_id_i: input logic [AxiIdWidth-1:0]

ID to be used by the read channel

axi_aw_id_i: input logic [AxiIdWidth-1:0]

ID to be used by the write channel

slave_req_i: input reg_req_t

regbus interface

slave pair

The slave interface exposes two registers: One address register to

write a descriptor address to process and a status register that

exposes whether the DMA is busy on bit 0 and whether FIFOs are full

on bit 1.

master request

slave_rsp_o: output reg_rsp_t

master response

idma_req_o: output idma_req_t

backend interface

burst request submission

burst request data. See iDMA backend documentation for fields

idma_req_valid_o: output logic

valid signal for the backend data submission

idma_req_ready_i: input logic

ready signal for the backend data submission

idma_rsp_i: input idma_rsp_t

status information from the backend

idma_rsp_valid_i: input logic

valid signal for the backend response

idma_rsp_ready_o: output logic

ready signal for the backend response

idma_busy_i: input logic

whether the backend is currently busy

irq_o: output logic

Event: irq

Types

addr_t
descriptor_t

Descriptor layout

flush_t

Signals

idma_req: idma_req_t

queued_addr: addr_t

next_addr_from_desc: addr_t

feedback_addr: addr_t

next_wb_addr: addr_t

input_addr: addr_t

aw_addr: addr_t

n_requests_to_flush: flush_t