Professional Documents
Culture Documents
The NI LabVIEW FPGA Module extends the LabVIEW graphical development platform to target FPGAs on NI reconfigurable I/O
(RIO) hardware. With every release, the module offers powerful new features for shortening your development time and improving
your applications performance. See highlights of features from past and most recent versions of the module.
Table of Contents
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Advanced applications such as radio frequency communications, image and audio processing, heat distribution, and cryptography
require high-performance algorithms on reconfigurable hardware. The LabVIEW 2013 FPGA Module includes new IP libraries that
give you the ability to implement FPGA-based high-performance algorithms.
Building basic linear algebra operations with specific timing, resource utilization, and throughput requirements in FPGAs can be a
challenge. To alleviate this challenge, the LabVIEW 2013 FPGA Module introduces a new IP library that includes the most
common linear algebra functions: matrix transpose, dot product, vector norm square, and matrix multiply.
Figure 1. The LabVIEW 2013 FPGA Module includes a new IP library that features the most common linear algebra operations.
These operations serve as basic building blocks for many numerical linear algebra applications, including the solution of linear
systems of equations, linear least square problems, eigenvalue problems, and singular value problems.
Figure 2. The linear algebra library helps you meet your requirements on timing, resources, and throughput.
1/15
www.ni.com
Figure 2. The linear algebra library helps you meet your requirements on timing, resources, and throughput.
Instrument Driver FPGA Extensions
Test engineers now have even more options for programming their software-designed instruments such as NI vector signal
transceivers (VSTs) with the release of instrument driver FPGA extensions. This feature combines the compatibility of the
full-featured NI-RFSA and NI-RFSG instrument drivers with the flexibility of the completely open-source LabVIEW sample projects
and instrument design libraries. You can add application-specific IP to your VST FPGA while preserving all of the features of the
NI-RFSA and NI-RFSG instrument drivers, and without modifying those APIs. Potential FPGA enhancements include custom
and/or novel instrument capabilities such as frequency mask triggering, better system integration through hardware-timed device
under test (DUT) control and the deterministic triggering of other instruments, accelerated test throughput with FPGA-based
measurement acceleration and coprocessing, and even closed-loop or protocol-aware tests in which the instrumentation
hardware responds to the DUT in real time.
Figure 3. Instrument driver FPGA extensions give you the ability to define custom capabilities for software-designed instruments,
while preserving instrument driver functionality and APIs.
You can use traditional debugging tools such as probes, execution highlighting, breakpoints, and single-stepping when simulating
your FPGA VIs on the development computer. However, in FPGA designs that involve communication protocols, you need to view
signals in relation to each other with history data in order to debug the application. The LabVIEW 2013 FPGA Module introduces a
new probe based on sampling events that makes it easy to visualize signals on a waveform graph, including relevant timing
information.
Figure 4. The Sampling Waveform Probe gives you the ability to visualize multiple signals on a waveform graph based on
sampling events.
2/15
www.ni.com
The Sampling Waveform Probe can use While Loops, For Loops, and FPGA clock domains as sampling event sources. Multiple
wires on the block diagram can be associated to those sampling sources so they can be visualized together on the Sampling
Probe Watch Window. This new way of visualization makes it easier to analyze multiple signals, especially when they are
generated within a single-cycle Timed Loop.
Extended I/O Simulation and Timing Control Capabilities
LabVIEW FPGA gives you the ability to generate I/O signals to simulate the functionality of real-world I/O. This is traditionally done
by simulating random data or configuring a custom simulation VI. The LabVIEW 2013 FPGA Module offers a more direct path for
providing simulated data to your LabVIEW FPGA VI.
Figure 5. The FPGA Desktop Execution Node facilitates the simulation of FPGA VIs in the development environment.
The FPGA Desktop Execution Node in the LabVIEW 2013 FPGA Module facilitates the simulation of individual FPGA VIs on the
development computer. Based on a configuration dialog, it allows the selection of the appropriate I/O terminals as well as the
FPGA clock to be used during the simulation within While Loops, and interaction with models inside of simulation loops using the
LabVIEW Control Design and Simulation Module. These simulations have increased timing fidelity with respect to primitives,
dynamics of DMA FIFOs, and single-cycle Timed Loops.
Figure 6. The FPGA Desktop Execution Node is a configuration-based simulation harness that provides direct access to I/O
terminals and timing resources of the FPGA.
Dynamically Loading Multiple FPGA Interfaces
Dynamically specifying a bitfile at run time gives you the ability to create field upgradeable FPGA-based applications. Traditionally,
LabVIEW FPGA users had to use multiple static references using the Open FPGA VI Reference Node to share an FPGA interface
with multiple bitfiles.
3/15
www.ni.com
Figure 7. Before the LabVIEW 2013 FPGA Module, users had to specify static references to manipulate multiple bitfiles.
In the LabVIEW 2013 FPGA Module, you can use the new Open Dynamic Bitfile Reference function to select multiple bitfiles at
run time through a given path input. With this function, multiple bitfiles can use a common FPGA interface as long as they share
the same named set of controls, indicators, and DMA FIFOs. You can use this function to create more flexible host interfaces for
advanced applications.
Figure 8. The LabVIEW 2013 FPGA Module allows the sharing of a single FPGA interface with multiple bitfiles specified at run
time by a path input.
Web-Based Bitfile Deployment
New in 2013, you can update the FPGA bitfile on next-generation NI CompactRIO devices through the Web-Based Configuration
and Monitoring interface. This process requires only a Silverlight-enabled web browser and an FPGA bitfile, and makes it easier to
manage the embedded targets configuration.
Figure 9. Bitfiles for FPGA chips in CompactRIO targets can now be updated through the Web-Based Configuration and
Monitoring interface.
4/15
www.ni.com
Figure 1. Sample projects provide proven, reliable architecture starting points for embedded control and monitoring applications.
If youre beginning a new application, the sample projects provide a starting point that can shorten your development time and
ensure your design is reliable. If you have an existing LabVIEW RIO application that you would like to optimize or improve, you
can use the sample projects to learn LabVIEW FPGA design techniques and architectural best practices that are specific to
embedded applications. To learn more about LabVIEW sample projects for control and monitoring applications, watch the
LabVIEW Real-Time 2012 Sample Projects Webcast and read the LabVIEW Templates and Sample Projects white paper.
Better Verification of FPGA VI With Execution on Development Computer
Compiling an FPGA VI can take minutes to hours. However, you can test the logic of an FPGA VI before compiling it by running
the FPGA VI on a development computer with simulated I/O. When you run the FPGA VI on the development computer, you can
use all traditional LabVIEW debugging techniques, such as probes, execution highlighting, breakpoints, and single-stepping. In the
LabVIEW 2012 FPGA Module, when you run your FPGA VI on your development PC, you will notice improved fidelity with respect
to time when executing multiple single-cycle Timed Loops at the same or different clock rates, and when sharing resources
between two or more single-cycle Timed Loops.
Figure 2. Notice improved fidelity when executing your FPGA VI on a development computer.
Floating-Point Support Within LabVIEW FPGA
Previous versions of LabVIEW FPGA required developers to use the fixed-point data type when fractional data was needed. While
the fixed-point data type is efficient for hardware-based designs when it comes to speed and resource utilization, it does not
provide the flexibility that the floating-point data type offers. In the LabVIEW 2012 FPGA Module, the single-precision floating-point
data type is natively supported. Not only does this give users the ability to directly retrieve floating-point data from DMA FIFOs,
avoiding an expensive conversion from fixed-point to floating-point on the real-time or Windows host, but it gives DSP designers
the ability to solve linear-algebra problems in LabVIEW FPGA that require a wider dynamic range than what fixed-point or integer
data type provide. Note that although the floating-point data type offers many benefits, it has limited support when used in
single-cycle Timed Loops, and uses significantly more FPGA resources than the fixed-point data type for certain operations.
5/15
www.ni.com
Figure 3. Floating-point data type is supported in the LabVIEW 2012 FPGA Module.
For more information on the functions and structures that support the floating-point data type, see Functions That Support the
Single Precision Floating-Point Data Type in FPGA VIs. For benchmarks that compare floating-point data type resource
utilization to fixed-point, see LabVIEW FPGA Floating-Point Data Type Support.
Array and Cluster Support Within Single-Cycle Timed Loops
In the LabVIEW 2012 FPGA Module, Boolean, numeric, and comparison operations within single-cycle Timed Loops now support
cluster and array data types. Each primitive operation is parallelized on the FPGA for maximum performance, so you no longer
need to break out each operation individually. This idea originated in the LabVIEW FPGA Idea Exchange.
Figure 4. Cluster and array data type support has been added to single-cycle Timed Loops.
Faster Compilations With Support for Linux
When its time to compile your LabVIEW FPGA VI, you can iterate faster with new Linux-based FPGA compilation options.
Linux-based compilation workers offer substantial performance benefits over Windows-based workers. For large, complex FPGA
VIs, NI has seen a significant decrease in compilation times. The performance gains vary based on the specifications of the
machine performing the compilation and the size of the FPGA target. Linux-based compilation is available with the LabVIEW
FPGA Compile Cloud Service, in addition to remote PC compile works and the LabVIEW FPGA Compile Farm Toolkit. For more
information on using Linux machines as a compile worker with the LabVIEW 2012 FPGA Module, see NI LabVIEW FPGA
Compilation Options and FPGA Compile Worker Performance Benchmarks.
www.ni.com
To compile single-cycle Timed Loops at higher clock rates for large streaming applications, the compiler, under certain conditions,
can remove enable chain for the single-cycle Timed Loops that have no dataflow dependences. Removing this enable chain
decreases routing congestion and improves timing performance. For more information on how to use this new feature, see
Improving Timing Performance in Large FPGA VIs.
Array Support With High-Throughput Math Nodes
When designing sophisticated DSP algorithms for high-throughput applications, there is often a need to perform high-throughput
math on arrays. In the LabVIEW 2012 FPGA Module, the High-Throughput Math Nodes support fixed-size array inputs, eliminating
the need to perform math operations element by element with multiple nodes.
Figure7. LabVIEW FPGA IP Builder gives you the ability to design an algorithm in LabVIEW, and compile it for multiple
applications with different performance requirements.
FIFO Improvements for Faster Streaming
The LabVIEW 2012 FPGA Module includes several new features that improve streaming performance with FIFOs for NI FlexRIO
targets for PXI Express. One example is a deeper and wider DMA FIFO. The depth of a DMA FIFO has been increased from 32k
samples to 256k samples, which makes it easier to achieve sustainable rates when streaming data at high rates.
Additional improvements to both the DMA FIFO and peer-to-peer FIFO give you the ability to pack small data size elements into a
64-bit array before sending to a host. With this new feature, you can obtain higher transfer rates when transferring smaller data
size elements between an FPGA target and host. The number of elements that can be sent with a FIFO depends on the data type
of the elements.
7/15
www.ni.com
Figure 8. Write four 16-bit integers in parallel with DMA and peer-to-peer FIFOs for NI FlexRIO targets for PXI Express.
Improved Ability to Create Reusable SubVIs
You now have the option to use a new LabVIEW FPGA construct, the register, to write lightweight, reusable code for
communication between loops executing in parallel. You can think of the register as a single-element memory implemented with
flip-flops. Like globals, you can write and read registers in the same or different clock domains. Similar to FPGA I/O, memories,
FIFOs, and clocks, registers can be specified via name controls, which is how you write reusable subVIs with registers.
Figure 9. Register functions are consistent with those for memories and FIFOs.
For more information on creating reusable subVIs with LabVIEW FPGA, see Using Register Items in SubVIs. For more
information on the register, see Register Items.
3. New LabVIEW 2011 Features
Figure 1. Module improvements for 2011 reduce the time required for common edit-time operations, which helps you develop your
custom logic faster.
Learn how these LabVIEW FPGA improvements help reduce development time.
Simplified Xilinx CORE Generator IP Access
You can now drag and drop configurable Xilinx CORE Generator IP blocks directly from the LabVIEW FPGA palette onto the block
diagram. This streamlines integrating existing communications, math, and even image or video processing IP using the same IP
Integration Node introduced in the LabVIEW 2010 FPGA Module.
8/15
www.ni.com
Figure 2. The new Xilinx CORE Generator IP palette makes it easier to access existing FPGA IP that you can use to speed up
your development process.
See details on using the new palette to import Xilinx CORE Generator IP into LabVIEW FPGA.
Expanded Options for Cycle-Accurate Simulation
In addition to executing cycle-accurate LabVIEW FPGA application simulations with the Mentor Graphics ModelSim tool, you can
now use the Xilinx iSim environment included with the module. Furthermore, when working with ModelSim simulations, you can
now use LabVIEW to quickly create test benches that use cosimulation to validate logic signal propagation, rather than working
directly with HDL.
Learn about incorporating cycle-accurate simulation into your LabVIEW FPGA development process.
4. New LabVIEW 2010 Features
IP Integration Node
The IP Integration Node replaces the HDL Interface Node as a way to integrate third-party IP. Point the node to existing VHDL or
use the built-in compatibility with the Xilinx CORE Generator. This node also automatically creates a simulation model for the IP.
Because of this, you can simulate the FPGA diagram on the development computer even if it has CoreGen or straight VHDL. After
you have configured the node, you can use the IP just like any other LabVIEW node with inputs and outputs.
Figure 1.
New Compilation Features With Compile Farm/Cloud Software and Build Specifications
LabVIEW FPGA now uses build specifications to hold properties of compilations for a particular VI. This helps you organize your
compiles and easily experiment with different Xilinx tool configurations. NI also released a toolkit that you can use to create a
multimachine compile farm to offload FPGA compiles from their development machines. NI is experimenting with incorporating this
technology in the cloud as well. The LabVIEW FPGA Cloud Compile Service, a beta feature for LabVIEW 2010, helps you easily
use high-end dedicated machines for lengthy FPGA compilations.
Figure 2.
9/15
www.ni.com
10/15
www.ni.com
Figure 1.
Control, Filtering, and Signal-Generation IP
The LabVIEW FPGA Module 8.5 includes new IP in the FPGA palette as well as enhanced existing IP for improved resource use
on the FPGA.
Control: Included in the LabVIEW PID and Fuzzy Logic Toolkit, the PID block in FPGA now works with multiple channels, so
you can input an array of channels into the same PID logic on the FPGA. This enhancement is especially important for
high-channel-count applications. The number of possible channels rose from eight to 256 for a 1M gate target. Additionally, the
single-channel benchmark is three times faster and uses almost 20 percent fewer FPGA resources.
Filtering: All filters are also compatible with multiple channels. Additionally, LabVIEW FPGA includes a new notch filter,
rounding out the existing Butterworth highpass and lowpass filters.
Signal generation: In addition to the existing sine generator, LabVIEW FPGA now features a square wave generator and
noise generators (Gaussian and white).
Modularity and Code Reuse Features
I/O name controls: Put I/O nodes, methods, and properties inside subVIs to specify the I/O item through a wire.
Clock controls: Use a wire to specify which clock, such as an onboard or derived clock, to use in a particular single-cycle
Timed Loop.
11/15
www.ni.com
Figure 2.
Enhanced Feedback Node: Place a Feedback Node anywhere in a block diagram to escape the context of a loop. A
Feedback Node can be useful for state storage or pipelining and now works anywhere, including subVIs.
LabVIEW Statechart Module
NI now offers additional ways to program FPGAs graphically. Many designers prefer using statecharts to represent the system
they want to build. With this new module supporting LabVIEW FPGA, you can not only represent FPGA-based systems with
statecharts but also program them with the same visual paradigm.
Pioneer-Level Support for Fixed-Point Data Type
There is a new fixed-point data type in LabVIEW that is especially useful for FPGA programming. Previously, LabVIEW FPGA
supported only integers. However, with support for new fixed-point data types, you can bring fractional numbers and arbitrary
bit-width data types to FPGA programming. LabVIEW 8.5 features fixed-point support for a small number of primitive math and
comparison functions. Future releases may expand support for this important data type.
8. New LabVIEW 8.2 Features
Figure 1.
New Memory VIs
With the new memory read and write interface, you can access all 80 KB of memory on 1M gate devices and all 190 KB of
12/15
www.ni.com
With the new memory read and write interface, you can access all 80 KB of memory on 1M gate devices and all 190 KB of
memory on 3M gate devices. You can use memory to store data for waveform generation or data logging without using arrays that
inefficiently use FPGA gates.
9. New LabVIEW 8.0 Features
LabVIEW Project
With a LabVIEW project, you can not only target and open VIs in LabVIEW for Windows and LabVIEW FPGA, LabVIEW
Real-Time, and other LabVIEW modules simultaneously but also develop LabVIEW FPGA applications. A LabVIEW project can
help you create and manage all FPGA resources, including:
VIs
FPGA I/O
Custom clocks
CompactRIO configurations
FPGA FIFOs
Figure 1.
DMA Data Transfers
The LabVIEW FPGA Module 8.0 DMA capabilities eliminate throughput limitations between the FPGA device and host. Although
FPGAs on RIO devices can run at rates up to 20 MHz, the fastest data-streaming rate without DMA is approximately 1 MB/s. The
module implements DMA on all NI R Series and CompactRIO devices for at least a 20 times increase in data-streaming rates
between the FPGA and a host application compared to other implementations such as using interrupt requests.
DMA provides a direct data-to-RAM link on the host machine. Relying on the host processor to stream data from the device to the
host often leads to latencies and causes a data transfer bottleneck. Using interrupt requests also consumes processor clock
cycles and increases the overall load on a host CPU. With LabVIEW 8.0, you gain more efficient device-to-host and host-to-device
data transfers that bypass the CPU, creating a higher performance data acquisition system for all applications.
To use DMA, simply create two memory buffers: one in memory on the FPGA device and another in memory on the host
processor. LabVIEW efficiently and transparently transfers data over the PCI bus. The module uses FPGA FIFOs configured for
DMA to write and read to DMA memory and uses FPGA invoke methods on the host side to create, write, and read from host
memory. DMA significantly enhances RIO hardware for applications such as buffered intelligent data acquisition, communication
device digital streaming, in-vehicle data acquisition, and online machine condition monitoring.
13/15
www.ni.com
Figure 2.
Drag-and-Drop FPGA I/O
With LabVIEW FPGA, you can quickly access RIO device I/O through specific device I/O functions. (However, the LabVIEW
FPGA function palettes mentioned in this document are specific to FPGA execution targets and contain functions available only
when targeted to an FPGA device or FPGA device emulator.) The module gives you direct single-point access to analog and
digital I/O on NI RIO hardware. With the LabVIEW FPGA Module 8.0, you can directly drag and drop I/O from the LabVIEW project
window onto the block diagram of your FPGA VI.
The module offers many device I/O functions, including:
Analog input
Analog output
Digital input
Digital output
Digital port input
Digital port output
I/O Method Node
I/O Property Node
Figure 3.
10. New LabVIEW 7.1 Features
www.ni.com
Figure 1.
11. Next Steps
Evaluate LabVIEW Real-Time and LabVIEW FPGA programming with the NI Embedded Software Evaluation Kit
Learn how to upgrade your NI software in the most cost-effective way with the Upgrade Advisor
Purchase the LabVIEW FPGA Module now
The registered trademark Linux is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the
mark on a worldwide basis.
15/15
www.ni.com