Menu Close

Transferring Data between the FPGA and Host (FPGA Module)

To transfer data between an FPGA VI and a host VI programmatically, you can use one of the following methods:

  • Programmatic Front Panel Communication
  • Direct Memory Access (DMA)
  • User-defined I/O variables

The following table summarizes and compares these methods.

Data Transfer Method Host OS Throughput Rate Call Overhead Host CPU Usage Timing Model Synchronization
Programmatic front panel communication Windows, RT Lower Lower Higher User-Defined User-Defined
Direct memory access Windows, RT Higher Higher Lower User-Defined Automatic
User-Defined I/O Variables RT with NI Scan Engine capability Lower Lower Lower NI Scan Engine Automatic

In general, use programmatic front panel communication for small, frequent data transfers and DMA for streaming large amounts of data at a time. Use user-defined I/O variables for transferring coherent sets of FPGA I/O data to and from an RT host VI. The following table compares the common reasons to use each of the transfer methods.

Data Transfer Method Common Use
Programmatic Front Panel Communication
  • Sending configuration parameters or data from the host to the FPGA
  • Reporting status from the FPGA to the host
  • Sending commands between the host and the FPGA
  • Transferring single-point data between the host and the FPGA
  • Creating a test bench for an FPGA VI
Direct Memory Access
  • Transferring large sets of data between the host and the FPGA
  • Transferring waveform data between the host and the FPGA
User-Defined I/O Variables
  • Performing the same functions as with front panel communication but with the timing and synchronization of the NI Scan Engine
  • Transferring coherent sets of data


Article from

Related Posts

1 Comment

Comments are closed.