You can communicate with the FPGA target in the following ways:

  • Interactive front panel communication—Displays the front panel window of the FPGA VI on the host computer while the FPGA target executes the block diagram.
  • Programmatic FPGA interface communication—Uses a separate VI running on an external computer to control, monitor, and transfer data with the FPGA target. The VI you use to programmatically control and monitor the FPGA VI is called the host VI and the computer that runs the host VI is called the host computer.
  • Peer-to-peer streaming—Transfers data between hardware devices.

The following table summarizes and compares these methods.

Communication Method Host OS Control & Monitoring Mechanism Common Use Notes
Interactive front panel communication Windows Front panel of FPGA VI
  • Simple logic verification
  • Simple debugging
  • Not all targets support
  • Does not require creating a VI to run on the host computer
  • Does not support communication using DMA FIFOs or FPGA interrupts
Programmatic FPGA interface communication Windows, RT VI running on host
  • Data logging on the host
  • Integration of FPGA, RT, and desktop components into one application
  • Operations that cannot be performed on the FPGA
  • Test benches
  • Interacting with remote FPGA targets
  • Applications that use DMA FIFOs or FPGA interrupts
  • Most common programming method
  • Supports programmatic front panel communication
Peer-to-peer streaming Windows, RT VI running on host
  • Streaming data between two FPGA targets without going through the host processor
  • Streaming data from multiple digitizers to an FPGA target
  • Pipelining data from a digitizer to an FPGA target to a signal generator
  • Not all targets support
  • Requires two targets as well as host computer

NI recommends using programmatic FPGA interface communication and host VIs when possible. The advantage of using interactive front panel communication to communicate with an FPGA VI is that you do not need to program any additional VIs. However, using interactive front panel communication is not as powerful as using programmatic FPGA interface communication.

Using Interactive and Programmatic Communication Simultaneously

Although you can use both interactive front panel communication and programmatic FPGA interface communication simultaneously, NI recommends controlling and monitoring the FPGA VI with one communication option at a time. To debug the FPGA VI effectively using both communication options simultaneously, consider controlling the reading and writing of data from the host VI and monitoring the execution of the FPGA VI using interactive front panel communication.