Transferring Data Using Direct Memory Access
- Updated2025-09-18
- 2 minute(s) read
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:
- Frees the host processor to perform other calculations during data transfer
- Limits the use of front panel controls and indicators
- Saves FPGA resources when transferring arrays of data
- Automatically synchronizes data transfers between the host and the FPGA target
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:
- Evaluate multi-channel needs.
- Design the host VI.
- Avoid buffer errors.
Related Information
- Transferring Data between the FPGA and Host
- Transferring Data between Devices or Structures Using FIFOs
- Limiting the Number of Top-Level Front Panel Objects in FPGA VIs
- Transferring Multi-Channel Data in DMA Applications
- Designing a Host VI to Read Data in DMA Applications
- Avoiding Buffer Errors in DMA Applications