Embedded Design Handbook

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

3.4.2.1. Dynamic Bus Sizing DMA Examples

A direct memory access (DMA) engine moves memory contents from a source location to a destination location. Because Platform Designer supports dynamic bus sizing, the data widths of the source and destination memory in the examples do not need to match the width of the DMA engine. The DMA engine reads data from a source base address and sequentially increases the address until the last read completes. The DMA engine also writes data to a destination base address and sequentially increases the address until the last write completes.

The following three figures illustrate example DMA transfers to and from memory of differing data widths. The source memory is populated with an increasing sequential pattern starting with the value 0 at base address 0. The DMA engine begins transferring data starting from the base address of the source memory to the base address of the destination memory. The interconnect always transfers the lower bytes first when any width adaptation takes place. The width adaptation occurs automatically within the interconnect.

Figure 13. 16-Bit to 32-Bit Memory DMA Transfer
Figure 14. 32-Bit to 64-Bit Memory DMA Transfer
Figure 15. 128-Bit to 16-Bit Memory DMA Transfer