User manual

Table Of Contents
Zynq-7000 AP SoC Technical Reference Manual www.xilinx.com 265
UG585 (v1.11) September 27, 2016
Chapter 9: DMA Controller
T7 The DMAC sets DMA{3:0}_DAVALID High and sets DMA{3:0}_DATYPE[1:0]
to indicate that the transaction is complete.
For more timing diagrams refer to ARM PrimeCell DMA Controller (PL330) Technical Reference
Manual: Peripheral Request Interface Timing Diagrams, keeping in mind that each PL peripheral
request interface is asynchronous to one another and asynchronous to the DMA itself.
9.2.8 PL Peripheral - Length Managed by PL Peripheral
The PL peripheral request interface enables a PL peripheral to control the quantity of data that an AXI
transfer contains, without the DMAC being aware of how many data cycles the transfer contains. The
PL peripheral controls the AXI transaction by using:
DMA{3:0}_DRTYPE[1:0] Selects a single or burst AXI Transaction
DMA{3:0}_DRLAST Notifies the DMAC when it commences the final request in the
current series
When the DMAC executes a DMAWFP instruction, it halts execution of the thread and waits for the PL
peripheral to send a request. When the PL peripheral sends the request, the DMAC sets the state of
the request flags depending on the state of the following signals:
DMA{3:0}_DRTYPE[1:0] The DMAC sets the state of the request_type flag:
00: request_type = Single
01: request_type = Burst
DMA{3:0}_DRLAST The DMAC sets the state of the request_last flag:
0: request_last = 0
1:request_last = 1
If the DMAC executes a DMAWFP single or DMAWFP burst instruction then the DMAC sets:
The request_type{3:0} flag to Single or Burst, respectively
The request_last{3:0} flag to 0
DMALPFE is an assembler directive which forces the associated DMALPEND instruction to have its nf
bit set to 0. This creates a program loop that does not use a loop counter to terminate the loop. The
DMAC exits the loop when the request_last flag is set to 1.
The DMAC conditionally executes the following instructions, depending on the state of the
request_type and request_last flags:
DMALD, DMAST, DMALPEND
When these instructions use the optional B|S suffix then the DMAC executes a DMANOP if
the request_type flag does not match.