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||
|Direct Memory Access||
|User-Defined I/O Variables||
Article from http://zone.ni.com/reference/en-XX/help/371599P-01/lvfpgaconcepts/fpga_data_transfer_overview/