The diagram shown in Figure 9 summarizes the programming tools available to control M3XXA Keysight PXIe Hardware.
Figure 9: Programming tools for the following Keysight PXIe AWGs and digitizers: M3100A, M3102A, M3201A, M3202A, M3300A and M3302A
A comprehensive set of highly optimized software instructions controls the off-the-shelf functionalities of the compatible Keysight hardware. These instructions are compiled into the Programming Libraries. The use of customizable software to create user-defined control, test and measurement systems is commonly referred as Virtual Instrumentation. In all Keysight documentation, the concept of a Virtual Instrument (or VI) describes user software that uses programming libraries and is executed by a computer
Keysight provides native programming libraries for a comprehensive set of programming languages, such as C, C++, Visual Studio (VC++, C#, VB), MATLAB, National Instruments LabVIEW, Python, etc., ensuring full software compatibility and seamless multivendor integration. Keysight provides also dynamic libraries, e.g. DLLs, which can be used in virtually any programming language.
Virtual Instrumentation is the use of customizable software and modular hardware to create user-defined measurement systems, called Virtual Instruments (VIs). Thus, a Virtual Instrument is based on a software which is executed by a computer, and therefore its real-time performance (speed, latency, etc.) is limited by the computer and by its operating system. In many cases, this real-time performance might not be enough for the application, even with a real-time operating system. In addition, many modern applications require tight triggering and precise intermodule synchronization, making the development of final systems very complex and time consuming. For all these applications, Keysight has developed an exclusive technology called Hard Virtual Instrumentation. In a Hard Virtual instrument (or HVI), the user application is executed by the hardware modules independently of the computer, which stays free for other VI tasks, like visualization.
Figure 10: Keysight native programming libraries ensure full compatibility, providing effortless and seamless software integration and user interaction, etc. The I/O modules run in parallel, completely synchronized, and exchange data and decisions in real-time. The result is a set of modules that behave like a single integrated real-time instrument.
HVIs are programmed with Keysight M3601A, an HVI design environment with a user-friendly flowchart-style interface, compatible with all M3XXXA Keysight PXIe hardware modules.
![]() |
||
M3601A | ||
Figure 11: Keysight M3601A, a user-friendly flowchart-style HVI programming environment
Keysight’s Hard Virtual Instrumentation technology provides:
Figure 12: HVI flowchart elements. Keysight M3601A is based on flowchart programming, providing an easy-to-use environment to develop hard real-time applications
Figure 13: HVI example with two hardware modules. In an HVI, all Keysight modules run in parallel and completely synchronized, executing one flowchart per module. This results in simpler systems without the need of triggers.
Some applications require the use of custom onboard real-time processing which might not be covered by the comprehensive off-the- shelf functionalities of the standard hardware products. For these applications, Keysight M3XXXA PXIe models are supplied with -FP1 option, hardware products that provide the capability to program the onboard FPGA.
The Keysight M3100A, M3102A, M3201A, M3202A, M3300A and M3302A PXIe modular hardware family of products offers an optional -FP1 Enabled FPGA Programming capability with -K32 or -K41 logic. This capability provides the same built-in functionalities of their standard counterparts, giving the users more time to focus on their specific functionalities. For example, using the -FP1 enabled FPGA Programming with -K32 or -K41 logic version of a Keysight digitizer, the user has all the off-the-shelf functionalities of the hardware (data capture, triggering, etc.), but custom real-time FPGA processing can be added in the data path, between the acquisition and the transmission of data to the computer.
Keysight FPGA programming technology is managed with Keysight M3602A [1], an intuitive graphical FPGA programming environment.
![]() |
||
M3602A | ||
Figure 14: Keysight M3602A provides an intuitive graphical FPGA customization interface
Keysight M3602A is a complete FPGA design environment that allows the user to customize M3XXXA PXIe hardware products. M3602A provides the necessary tools to design, compile and program the FPGA of the module (Figure 15).
Keysight M3602A provides the following features:
One-click compiling and programming:
Figure 15: Keysight M3602A: a platform that provides the complete flow from design to FPGA programming
The M3602A FPGA Design Environment simplifies the development of custom processing functions for the following -FP1 enabled FPGA programming PXIe modules: M3100A, M3102A, M3201A, M3202A, M3300A, M3302A. These products are delivered with all the off-the-shelf functionalities of the standard products, and therefore the development time is dramatically reduced. The user can focus exclusively on expanding the functionality of the standard instrument, instead of developing a complete new one.
In Keysight M3602A, FPGA code is represented as boxes (called blocks) with IO ports. An empty project contains the ”Default Product Blocks” (off-the-shelf functionalities), and the ”Design IO Blocks” that provide the outer interface of the design. The user can then add/remove blocks from the Keysight Block Library, External Blocks or Xilinx IP cores