Company Events Academic NI Developer Zone Support Solutions Products & Services Contact NI MyNI

FPGA Module Application Development (FPGA Module)

LabVIEW FPGA Module 8.2 Help
August 2006

NI Part Number:
371599B-01

»View Product Info

FPGA Module applications range from a single FPGA VI running on an FPGA target to large LabVIEW solutions that include multiple FPGA targets, the LabVIEW Real-Time Module and one or more RT targets, and LabVIEW running on Windows. In any case, you need to create the FPGA VI that runs on the FPGA target. To create an FPGA VI, first create a LabVIEW project. You then can add an FPGA target and FPGA VIs.

Note  You can download and run only one FPGA VI at a time on a single FPGA target. If you download a second VI to the FPGA target, the second VI overwrites the first VI.

FPGA Targets

The VI you edit must appear under an FPGA target in a project to access the FPGA Module palettes, VIs, functions, and development tools. Even if the FPGA target physically is not present, you still can add an FPGA target to a project to develop an FPGA VI.

Execution of FPGA VIs

After you create an FPGA VI with the FPGA Module VIs, functions, and tools, use LabVIEW to compile and download the FPGA VI to the FPGA target. Click the Run button in the VI to automatically compile the FPGA VI on the FPGA target. If the FPGA target you use supports Interactive Front Panel Communication, clicking the Run button also downloads and runs the FPGA VI.

Communication with FPGA VIs

After you have an FPGA VI running on the FPGA target, you need a way to communicate with that VI. Depending on the application requirements and the FPGA target you use, you can communicate with the FPGA VI interactively or programmatically. Use Interactive Front Panel Communication to communicate with the FPGA VI directly from the front panel window of the FPGA VI. Use Programmatic FPGA Interface Communication to communicate with the FPGA VI from a VI running on the host computer. The VI running on the host computer is called the host VI.

Interactive Front Panel Communication

Use Interactive Front Panel Communication to communicate with an FPGA VI running on an FPGA target with no additional programming. With Interactive Front Panel Communication, the host computer displays the FPGA VI front panel window and the FPGA target executes the FPGA VI block diagram, as shown in the following figure.

Note  Support of Interactive Front Panel Communication varies by FPGA target. Refer to the specific FPGA target hardware documentation for more information.

The LabVIEW front panel window communicates with the FPGA target block diagram to exchange the state of the controls and indicators. You can communicate with an FPGA target located in the host computer or with an FPGA target located in a remote system. As the FPGA target block diagram continues to run, the host computer updates values on the FPGA VI front panel window as often as possible. The execution rate of the FPGA VI is not affected by the host computer updates to the controls and indicators. The front panel data you receive during Interactive Front Panel Communication is not deterministic.

Use Interactive Front Panel Communication between the FPGA target and the host computer to control and test VIs running on the FPGA target. After downloading and running the FPGA VI, keep LabVIEW open on the host computer to display and interact with the front panel window of the FPGA VI.

During Interactive Front Panel Communication, you cannot use LabVIEW debugging tools—including probes, execution highlighting, breakpoints, and single-stepping. To identify errors before you compile, download, and run the FPGA VI on the FPGA target, test the FPGA VI by running it on an FPGA target emulator. An emulator is target that simulates the behavior of the FPGA VI running on the FPGA target. Refer to Running an FPGA VI with an FPGA Target Emulator for more information about testing FPGA VIs with emulators. Support of FPGA target emulators varies by FPGA target. Refer to the specific FPGA target hardware documentation for more information.

Programmatic FPGA Interface Communication

With Programmatic FPGA Interface Communication, you programmatically monitor and control an FPGA VI with a separate host VI running on the host computer. You might write a host VI to send information between the host computer and the FPGA target for the following reasons:

  • You want to do more data processing than you can fit on the FPGA.
  • You need to perform operations not available on the FPGA target, such as floating-point arithmetic.
  • You want to create a multitiered application with the FPGA target as a component of a larger system.
  • You want to log data.
  • You want to run multiple VIs on the host computer.
  • You want to control the timing and sequencing of data transfer.
  • You want to control which components are visible on the front panel window because some controls and indicators might be more important for communication than others.

When you use Programmatic FPGA Interface Communication, the FPGA VI runs on the FPGA target, and the host VI runs on the host computer, as shown in the following figure. Use the FPGA Interface functions available for a Windows VI or an RT target VI to create a host VI that communicates with the FPGA VI and performs other required functions. Refer to FPGA Interface Functions for information about using the FPGA Interface functions in host VIs.

You can use a Windows computer or an RT target as the host computer. The RT target can use Programmatic FPGA Interface Communication to communicate with the FPGA target. You then can use a Windows computer to communicate with the RT target. The flexibility of FPGA targets integrates well with LabVIEW Real-Time Module applications, such as control and hardware-in-the-loop simulations, which require a significant amount of determinism.


Resources


 

Your Feedback! poor Poor  |  Excellent excellent   Yes No
 Document Quality? 
 Answered Your Question? 
Add Comments 1 2 3 4 5 submit