Reconfigurable oscilloscopes can be programmed with several levels of flexibility. The fastest way to get a reconfigurable oscilloscope up, running, and collecting data as part of a test system is using the instrument driver. NI oscilloscopes are programmed with the NI-SCOPE instrument driver and can also be programmed with the oscilloscope IVI driver set. Instrument drivers allow you to get traditional instrument capability from an oscilloscope quickly. These drivers include the ability to configure sampling rate, record length, and vertical range among many other settings. However, an instrument driver may allow you to call only a limited set of the total features of the oscilloscope. A driver absolutely does not allow for customization of the firmware of an instrument to meet a new measurement demand.
One instance of an instrument driver limiting your ability to use the full potential of an oscilloscope is invoking trigger modes. The oscilloscope IVI driver only allows for the use of a few trigger modes: edge, level, and window. An oscilloscope may have many more triggering modes, but the instrument driver can only configure the device to use those few. You may also want a very specific set of trigger logic that is not built into an oscilloscope that is available on the market. In this case, you could use the FPGA in the data path of the oscilloscope to program a logical trigger that will operate on the hardware of the instrument.
The LabVIEW FPGA Module extends LabVIEW system design software to FPGAs on NI reconfigurable I/O (RIO) hardware such as the PXIe-5171R and PXIe-5164 oscilloscopes, high-speed serial instruments, RF vector signal analyzers, and vector signal transceivers (VSTs), which introduced the concept of software-designed instruments in 2012.
LabVIEW is an ideal tool for programming FPGAs because of its inherent parallelism and dataflow concepts, which resemble the dataflow in FPGAs. LabVIEW abstracts the processing and data movement performed on the different computing elements of a system (such as FPGAs in instruments and microprocessors in PCs) and therefore enables you to use the power of software-designed instruments without requiring extensive knowledge of FPGA programming such as Verilog or VHDL, computing architectures, or data streaming.
The Instrument Design Library is a software stack built on the LabVIEW FPGA Module and NI RIO architecture. It provides several starting points for applications including reference designs, examples, and LabVIEW sample projects. These starting points all feature default LabVIEW FPGA personalities and prebuilt FPGA bitfiles to help you get started quickly without extensive programming.
Figure 3 shows the software architecture of a software-designed instrument (in this case, a reconfigurable oscilloscope). The architecture consists of routines implemented on the FPGA for the actual acquisition and real-time processing, as well as corresponding software modules on the host PC that interact with their FPGA counterparts to configure and control the measurements, handle the data transfer across the PXI Express bus, and present the data to the user.
Host PC components are very similar to instrument drivers; FPGA code is comparable to traditional oscilloscope firmware. In contrast to traditional oscilloscopes, you can use these components to build custom oscilloscope IP, and because they are open, you can modify and extend them to match specific needs.