Build Your Own I/O for LabVIEW FPGA

Publish Date: Mar 06, 2014 | 3 Ratings | 5.00 out of 5 |  PDF | Submit your review

Table of Contents

  1. NI FlexRIO Building Blocks
  2. NI FlexRIO Custom Adapter Modules
  3. NI FlexRIO for Component or Custom Circuit Validation
  4. Creating Custom I/O Nodes in LabVIEW FPGA
  5. Virtual Instrumentation Evolved

The most powerful trend in test and measurement during the last 30 years has been customization.

From the early days of virtual instrumentation with custom buttons, knobs, and user interfaces to complete system modeling with graphical system design, the balance of power has clearly shifted away from a vendor-defined view of the world to a user-defined view. Recently, this flexibility has extended from software down to silicon, with field-programmable gate arrays (FPGAs) offering greater customization from data acquisition applications to complex, dynamic test systems.

National Instruments tools have been at the forefront of this progression toward user-programmable instrumentation. The latest version of the NI LabVIEW FPGA Module features enhanced fixed-point intellectual property (IP) support, additional IP including windowing and rational resampling, and more efficient development and debugging tools. On the hardware side, NI R Series multifunction RIO devices feature the latest FPGA technology to provide faster code execution and increased LabVIEW code capacity. However, these advances do not always meet the specific I/O requirements for the most demanding or niche applications.

The latest leap in technology is NI FlexRIO hardware for PXI, which combines the same powerful LabVIEW FPGA technology found in other NI hardware targets and an open, user-customizable front end. By offering the host communication infrastructure of PXI and a large, programmable target for code deployment in the NI FlexRIO FPGA module, this new platform helps engineers customize their data acquisition or test application to meet the necessary requirements, including digital, analog, RF, or any other I/O type.

Figure 1. NI FlexRIO systems, consisting of an adapter module and a PXI FPGA module, offer engineers a new level of customization to LabVIEW FPGA applications.

1. NI FlexRIO Building Blocks

The most differentiating aspect of NI FlexRIO is what sits in front of the FPGA – nothing. With direct access to the physical FPGA pins, engineers can decide which type of signals they want to add to the LabVIEW FPGA target. To make this possible, all NI FlexRIO implementations require two distinct hardware pieces: an adapter module and a PXI FPGA module.

Like other NI FPGA-based hardware devices, NI FlexRIO FPGA modules have a Virtex-5 FPGA that engineers can program using LabVIEW (see Table 1). R Series devices integrate the FPGA with analog-to-digital and digital-to-analog converters as well as digital buffers to offer a standard set of I/O capabilities on a device. On an NI FlexRIO FPGA module, however, the FPGA pins go directly to the front connector; there is no additional circuitry specified for the engineer. For this reason, the NI FlexRIO FPGA module specifications are those of the FPGA itself: 66 differential lines at up to 1 Gb/s per pair or 132 single-ended lines at up to 400 Mb/s. In addition, an NI FlexRIO FPGA module features deep onboard memory and the ability to use external clocks, both of which offer significant advantages for high-performance test applications.

Each front-end adapter module defines the specific I/O capabilities of an NI FlexRIO system. NI, third parties, or end users, themselves, can develop adapter modules. Users with PCB layout experience can specify the exact front end needed for a test or design application and build an adapter module out of circuit components. Because the NI FlexRIO FPGA module for PXI handles complex data movement, memory interfacing, and software, the adapter module can be designed to manage only the application-specific interfacing requirements. With this in mind, users can ultimately customize each NI FlexRIO implementation to the exact converter, buffer, clock, or even I/O connector needed for the test system.

For example, one NI FlexRIO adapter module, the NI 6581, is a 100 MHz single-ended digital I/O adapter module with a hardware design similar to other high-speed digital I/O devices (without any fixed software programming interface outside LabVIEW FPGA). With 54 digital I/O pins, selectable voltage levels, and the ability to provide an external VOH/VIH reference, the NI 6581 offers functionality and flexibility for demanding, high-performance test applications. Engineers can implement algorithmic pattern generation, protocol-aware test, or other complex digital techniques in silicon with LabVIEW. While this high-speed I/O device lacks the ease of use or out-of-box capability of a fixed-functionality driver API (found on NI modular instruments), it offers extreme flexibility and processing power.

1All prices are subject to change without notice.

Table 1. NI FlexRIO FPGA modules provide Virtex-5 FPGAs and up to 128 MB of onboard memory for demanding application requirements.

Back to Top

2. NI FlexRIO Custom Adapter Modules

The goal of NI FlexRIO is to provide the best integration between commercial off-the-shelf (COTS) hardware and custom I/O front ends. Within the semiconductor industry, for example, many applications require specialized I/O. High-speed digital signals can range from 1 Gb/s to 10 Gb/s, often involving multiple digital standards (LVDS, ECL, XAUI, and more) and multigigabit transceivers (MGTs). Commercially available analog-to-digital converters can sample at several gigasamples per second with high bandwidth. Both cases require specialized front-end components, matched trace impedances, and different power considerations. Even specific mechanical pieces of the system become more important, from connector type to cable length. As test requirements become specialized, engineers have an increasingly difficult time building high-performance test systems with off-the-shelf hardware; while they seldom prefer custom development, this implementation is often necessary to achieve the specific system requirements.

The NI FlexRIO Adapter Module Development Kit (MDK) provides full documentation on electrical and mechanical design details, including CAD files and generic metal enclosures. Engineers can use these guidelines when developing the circuit schematic and choose from almost any brand of CAD software to design the PCB. Once engineers fabricate the PCB, they can populate components and add the exact mechanical connectors to make system connectivity as easy as possible.

Figure 2. The NI FlexRIO Adapter MDK provides step-by-step information for creating custom adapter modules – from layout, to module development, to final product.

Back to Top

3. NI FlexRIO for Component or Custom Circuit Validation

Beyond adding application-specific circuitry for I/O, engineers can use NI FlexRIO to evaluate cutting-edge electrical components and validate circuit designs within the adapter module itself. The NI FlexRIO FPGA module front connector provides 132 high-speed digital lines that can probe, control, communicate, and measure the various digital signals of an electrical design. With the LabVIEW FPGA Module, engineers can use high-level design tools to implement protocol-aware test benches with hardware-timed decision making and nanosecond response rates. They can then adapt the same test platform for a completely different circuit or evaluation chip by simply changing the adapter module. The fast pace of technology requires flexibility and adaptability from a test system, and NI FlexRIO can keep up with low-level specifications and minimize the time and expense of custom hardware designs.

Figure 3. The FPGA within the NI FlexRIO targets uses the CLIP Node to integrate third-party IP cores and communicate with the adapter module.

Back to Top

4. Creating Custom I/O Nodes in LabVIEW FPGA

Using NI FlexRIO, engineers can take full advantage of the new Component-Level IP (CLIP) Node feature introduced with the LabVIEW FPGA Module 8.6. The CLIP Node provides enhanced integration of VHDL or any hardware description language (HDL) with the LabVIEW block diagram. This new feature helps users run HDL code asynchronously with LabVIEW graphical programming to take advantage of third-party IP cores.

NI FlexRIO FPGA modules use a special version of the CLIP Node called a socketed CLIP that gives HDL code access to the physical I/O pins on the FPGA chip, bringing the custom inputs and outputs of the adapter modules into the LabVIEW FPGA block diagram. The HDL code in a socketed CLIP Node can be simple pass-through logic or a complex state machine to decode a data stream. An XML file is created to add LabVIEW FPGA I/O nodes to the LabVIEW Project and expose signals in the CLIP Node as standard LabVIEW data types. Once the CLIP Node defines the I/O, the programming experience of NI FlexRIO follows that of NI CompactRIO, R Series, or any other LabVIEW FPGA target.

Back to Top

5. Virtual Instrumentation Evolved

NI FlexRIO is a powerful next step in the trend toward user-defined test systems first generated by virtual instrumentation decades ago. With interchangeable adapter modules, engineers can create solutions that meet their exact I/O needs. Combined with the powerful back-end infrastructure of LabVIEW FPGA and Virtex-5 FPGA targets, NI FlexRIO hardware offers the flexibility of graphical system design for even the most complex design and test applications.

Vineet Aggarwal 

Vineet Aggarwal is a data acquisition product manager at National Instruments. He holds a bachelor’s degree in electrical engineering from The Ohio State University. 

Luke Schreier 

Luke Schreier is the modular instruments group manager at National Instruments. He holds a bachelor’s degree in mechanical engineering from the University of NebraskaLincoln.

View more information on NI FlexRIO adapter modules and the NI FlexRIO Adapter MDK.

This article first appeared in the Q4 2008 issue of Instrumentation Newsletter.

Back to Top

Bookmark & Share


Ratings

Rate this document

Answered Your Question?
Yes No

Submit