Hard Processor System Technical Reference Manual: Agilex™ 5 SoCs

ID 814346
Date 11/27/2024
Public
Document Table of Contents

5.2.5.4. DMA Controller Peripheral Request Interface

The DMAC supports 48 peripheral request interfaces. Each request interface can receive up to one outstanding request and is assigned a specific peripheral device ID. You can assign a peripheral request interface to any of the DMA channels.

Each FPGA peripheral request interface enabled using the HPS Platform Designer IP component contains the following set of signals exported to the FPGA, which corresponds to a specific request interface enabled in Platform Designer:

  • f2h_dma_req: FPGA peripheral request to the HPS DMAC for a DMA transfer. The DMAC always interprets the f2h_dma_req signal as a burst transaction request, regardless of the level of f2h_dma_single. This is a level-sensitive signal; once asserted by the peripheral, f2h_dma_req must remain asserted until the DMAC asserts f2h_dma_ack. Upon receiving the f2h_dma_ack signal from the DMAC to indicate the burst transaction is complete, the peripheral de-asserts the burst request signal, f2h_dma_req. Once f2h_dma_req is de-asserted by the peripheral, the DMAC de-asserts f2h_dma_ack. If an active level on f2h_dma_req is detected in the Single Transaction Region, then the block is completed using an Early-Terminated Burst Transaction.
  • f2h_dma_ack: HPS DMAC acknowledgment to the FPGA peripheral's request for a DMA transfer. The f2h_dma_ack signal is asserted after the data phase of the last AHB transfer in the current transaction – single or burst – to the peripheral that has completed. For a single transaction, f2h_dma_ack remains asserted until the peripheral de-asserts f2h_dma_single; f2h_dma_ack is de-asserted one hclk cycle later. For a burst transaction, f2h_dma_ack remains asserted until the peripheral de-asserts f2h_dma_req; f2h_dma_ack is de-asserted one hclk cycle later.
  • f2h_dma_single: FPGA peripheral request to the HPS DMAC for a single, non-burst transfer. The f2h_dma_single signal is a status signal that is asserted by a destination peripheral when it can accept at least one destination data item; otherwise, it is cleared. For a source peripheral, the f2h_dma_single signal is again a status signal and is asserted by a source peripheral when it can transmit at least one source data item; otherwise, it is cleared. Once asserted, f2h_dma_single must remain asserted until f2h_dma_ack is asserted, at which time the peripheral de-asserts f2h_dma_single. This signal is sampled by the DMAC only in the Single Transaction Region of the block transfer. Outside of this region, f2h_dma_single is ignored and all transactions are burst transactions.