Ameba-D User Manual
User Manual All information provided in this document is subject to legal disclaimers. © REALTEK 2019. All rights reserved.
114
CTL
x
.SRC_TR_WIDTH = 3’b010
32 bits
CTL
x
.DST_TR_WIDTH = 3’b010
32 bits
CTL
x
.SRC_MSIZE = 3’b010
Decode value = 8
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
–
Consider a case where the destination block is made up of one burst transaction, followed by one single transaction.
blk_size_bytes_dst
=
dst_burst_size_bytes
= 16 + 4 = 20 bytes
There are a number of different cases that can arise when CFG
x
.FCMODE = 0:
(1)
When the destination peripheral signals a last transaction, there is enough data in the DMAC channel FIFO to complete the last
transaction to the destination. Therefore, the DMAC stops transferring data from the source, and the block transfer from the source
completes; any surplus data that has been fetched from the source is effectively lost. Two cases arise when the destination peripheral
signals the last transaction in a block:
a)
Active burst transaction request on source side
b)
No active burst request on source side
(2)
When the destination peripheral signals a last transaction, there is not enough data in the channel FIFO to complete the last transaction
to the destination. The DMAC fetches just enough data to complete the block transfer. Two cases arise.
a)
Source enters Single Transaction Region when destination peripheral signals last transaction.
b)
Source does not enter Single Transaction Region when destination peripheral signals last transaction.
Setting CFG
x
.FCMODE is pertinent only when the destination peripheral is the flow controller. When CFG
x
.FCMODE = 0, scenarios arise where
not all the data that has been pre-fetched from the source is required to complete the block transfer to the destination. This excess data is not
transferred to the destination peripheral and is effectively lost for a read-sensitive source peripheral. In this example, we assume a read-
sensitive source peripheral.
Case a and Case b highlight instances where data pre-fetching is enabled and data is lost. Case a and Case b highlight instances were data pre-
fetching is enabled, but no data loss occurs.
In this example, handshaking interface 0 is assigned to the source peripheral, and handshaking interface 1 is assigned to the destination
peripheral.
Consider the block transfer shown in Fig 9-31, where the destination is the flow controller and data pre-fetching is enabled (CFG
x
.FCMODE = 0).
Fig 9-31 Data loss when pre-fetching is enabled
Realtek confidential files
The document authorized to
SZ99iot
2019-05-15 10:08:03