Direct memory access (DMA) is a FIFO-based method of transferring data between an FPGA target and the host computer. DMA does not involve the host processor; therefore, it is the fastest available method for transferring large amounts of data between the FPGA target and the host.
DMA Communication Benefits
The following list highlights the benefits of using DMA communication to transfer data between an FPGA target and a host computer:
Consider using DMA if your application performs any of the following tasks:
- Transferring waveform data between the FPGA target and the host
- Transferring large sets of data
- Data logging
- Running algorithms that the FPGA target can process more efficiently than the host computer; for example, averaging or summing values from multiple input channels
Implementing DMA Communication in an Application
At a high level, implementing DMA communication in an FPGA application involves the following steps:
- Determine whether your FPGA target supports DMA communication
- Decide whether DMA is the best choice for your application. Weigh the benefits of DMA as well as other options for transferring data between an FPGA target and host computer.
- Understand how DMA works.
- Design and program the application while paying attention to the best practices:
Data Communication Methods Home