Ameba-D User Manual
User Manual All information provided in this document is subject to legal disclaimers. © REALTEK 2019. All rights reserved.
116
Consider the block transfer shown in Fig 9-33, where the destination is a flow controller and data pre-fetching is enabled (CFGx.FCMODE = 0).
The transfer parameters are the same as case 1a, Table 9-9 Parameters in transfer operation – Example 7.
Fig 9-33 Case of no data loss when pre-fetching is enabled
In this scenario, when dma_last[1] is asserted by the destination peripheral at time T4, there is not enough data in the channel FIFO to
complete the last single transaction. Assume that the DMAC has fetched four data items from the source peripheral at time T4. In this case, the
DMAC fetches one more data item from the source peripheral and then early terminates the source burst using an Early-Terminated Burst
Transaction. The DMAC signals block completion to the source by asserting dma_finish[0] at T5, which forms a handshaking loop with
dma_req[0]. In this case, there is no data loss, and all data that was fetched from the source has been transferred to the destination.
Consider the case where the transfer parameters are as given in Table 9-10
Table 9-10 Transfer parameters
Parameter
Description
CTL
x
.TT_FC = 3’b111
Peripheral-to-peripheral transfer with DMAC as flow controller
CTL
x
.BLOCK_TS =
x
–
CTL
x
.SRC_TR_WIDTH = 3’b010
32 bits
CTL
x
.DST_TR_WIDTH = 3’b010
32 bits
CTL
x
.SRC_MSIZE = 3’b001
Decode value = 4
CTL
x
.DEST_MSIZE = 3’b001
Decode value = 4
CFG
x
.MAX_ABRST = 1’b0
No limit on maximum AMBA burst length
DMAH_CH
x
_FIFO_DEPTH = 32 bytes
–
CFG
x
.FCMODE = 0
Data pre-fetching enabled
CFG
x
.SRC_PER = 0
Source assigned handshaking interface 0
CFG
x
.DEST_PER = 1
Destination assigned handshaking interface 1
CFG
x
.MAX_ABRST = 7
–
As illustrated in Fig 9-34, the source requests a burst transaction at time T2 and completes the burst transaction at time T3. The destination
requests a burst transaction at time T1 and completes this burst request at time T4. The destination requests a last single transaction at time
T5; the channel FIFO is empty at this time. The amount of data left to complete a source block transfer – 4 bytes – is less than the following:
src_burst_size_bytes = 4 * 4 = 16 bytes
Therefore, the source enters the Single Transaction Region at time T6
.
At time T7, the DMAC samples that dma_single[0] from the source
peripheral is asserted and initiates a single transaction.
Realtek confidential files
SZ99iot
2019-05-15 10:08:03