User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 261
UG585 (v1.11) September 27, 2016
Chapter 9: DMA Controller
9.2.4 Multi-channel Data FIFO (MFIFO)
The MFIFO is a shared resource utilized on a first-come, first-served basis by all currently active
channels. To a program, it appears as a set of variable-depth parallel FIFOs, one per channel, with the
restriction that the total depth of all the FIFOs cannot exceed the size of the MFIFO. The DMAC
maximum MFIFO depth is 128 (64-bit) words.
The controller is capable of realigning data from the source to the destination. For example, the
DMAC shifts the data by two byte lanes when it reads a word from address 0x103 and writes to
address 0x205. The storage and packing of the data in the MFIFO is determined by the destination
address and transfer characteristics.
When a program specifies that incrementing memory transfers are to be performed to the
destination, the DMAC packs data into the MFIFO to minimize the usage of the MFIFO entries. For
example, the DMAC packs two 32-bit words into a single entry in the MFIFO when the DMAC has a
64-bit AXI data bus and the program uses a source address of 0x100, and destination address of
0x200.
In certain situations, the number of entries required to store the data loaded from a source is not a
simple calculation of the amount of source data divided by MFIFO width. The calculation of the
number of entries required is not simple when any of the following occur:
Source address is not aligned to the AXI bus width
Destination address is not aligned to the AXI bus width
Memory transfers are to a fixed destination, that is, a non-incrementing address
The DMALD and DMAST instructions each specify that an AXI bus transaction is to be performed. The
amount of data transferred by an AXI bus transaction depends on the values programmed in to the
CCRn register and the address of the transaction. Refer to the AMBA AXI Protocol Specification for
information about unaligned transfers.
Refer to section 9.3 Programming Guide for DMA Controller for considerations about MFIFO
utilization.
9.2.5 Memory-to-Memory Transfers
The controller includes an AXI master interface to access memories in the PS system, such as:
•OCM
DDR
Through the same AXI central interconnect, the controller can potentially access the majority of the
peripheral subsystems. If a target peripheral can be seen as a memory-mapped region (or memory
port location) without a FIFO or need for flow control, then the DMAC can be used to read and write
to it. Typical examples include:
QSPI in Linear addressing mode
•NOR flash
•NAND flash