Cyclone® V Hard Processor System Technical Reference Manual

ID 683126
Date 8/28/2023
Public
Document Table of Contents

17.1. Features of the DMA Controller

The HPS provides one DMAC to handle the data transfer between memory‑mapped peripherals and memories, off‑loading this work from the microprocessor unit (MPU) subsystem.

The DMAC supports multiple transfer types:
  • Memory‑to‑memory
  • Memory‑to‑peripheral
  • Peripheral‑to‑memory
The DMAC supports up to:
  • Eight logical channels for different levels of service requirements
  • 31 peripheral handshake interfaces for peripheral hardware flow control
The DMAC provides:
  • An instruction processing block that enables it to process program code that controls a DMA transfer
  • An Arm* Advanced Microcontroller Bus Architecture ( AMBA* ) Advanced eXtensible Interface ( AXI* ) master interface unit to fetch the program code from system memory into its instruction cache
    Note: The AXI* master interface also performs DMA data transfer. The DMA instruction execution engine executes the program code from its instruction cache and schedules read or write AXI* instructions through the respective instruction queues.
  • A multi-FIFO (MFIFO) data buffer that stores data that it reads, or writes, during a DMA transfer
  • 11 interrupt outputs to enable efficient communication of events to the MPU subsystem
    Note: The peripheral request interfaces support the connection of DMA‑capable peripherals to enable memory‑to‑peripheral and peripheral‑to‑memory transfers to occur, without intervention from the processor.

The DMAC supports the following interface protocols:

  • Synopsys protocol
    • Serial peripheral interface (SPI)
    • Universal asynchronous receiver/transmitter (UART)
    • Inter‑integrated circuit (I2C)
    • FPGA
  • Arm* protocol
    • Quad SPI flash controller
    • System trace macrocell (STM)
  • Bosch* CAN
    • Two CAN controllers

Dual slave interfaces enable the operation of the DMA controller to be partitioned into the secure state and non‑secure state. The network interconnect must be configured to ensure that only secure transactions can access the secure interface. The slave interfaces can access status registers and also directly execute instructions in the DMA controller.

The DMAC has the following features:

  • A small instruction set that provides a flexible method of specifying the DMA operations. This architecture provides greater flexibility than the fixed capabilities of a Linked‑List Item (LLI) based DMA controller.
  • Supports multiple transfer types:
    • Memory‑to‑memory
    • Memory‑to‑peripheral
    • Peripheral‑to‑memory
    • Scatter‑gather
  • Supports up to eight DMA channels.
  • Supports up to eight outstanding AXI* read and eight outstanding AXI* write transactions.
  • Enables software to schedule up to 16 outstanding read and (16) outstanding write instructions.
  • Supports 11 interrupt lines into the MPU subsystem55:
    • One for DMA thread abort
    • Eight for events
    • Two for MFIFO buffer ECC
  • Single and double bit ECC support
  • Supports 31 peripheral request interfaces:
    • Four for FPGA
    • Four shared for FPGA or Controller area network (CAN)
    • Four for I2C
    • Four for I2C (EMAC)
    • Eight for SPI
    • Two for quad SPI
    • One for System Trace Macrocell (STM)
    • Four for UART
55 For a description of these interrupts, refer to the "Using Events and Interrupts" chapter.