Programming Tools

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

 

SW Programming

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 SD1 Programming Libraries

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.

 

HW Programming

HVI Technology: Keysight M3601A

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 vs VIs: Virtual Instrumentation is fully supported making use of the Keysight SD1 Programming Libraries. On the other hand, Keysight’s exclusive Hard Virtual Instrumentation (HVI) technology provides the capability to create time-deterministic execution sequences which are executed by the hardware modules in parallel and with perfect intermodule synchronization. HVIs provide the same programming instructions available in the Keysight SD1 Programming Libraries.

 

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:

 

New hardware functionalities without FPGA programming: Keysight’s HVI technology is the perfect tool to create new hardware functionalities with FPGA-like performance and without any FPGA programming knowledge. Users can create a repository of HVIs that can be launched from VIs using the Keysight Programming Libraries.

 

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.

 

FPGA Programming: Keysight M3602A

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-programmable Hardware:  Keysight FPGA technology is available for M3XXXA hardware product with -FP1 option enabled providing the same built-in functionalities of their standard counterparts.

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

 

FPGA programming made simple:  Full language compatibility (including the graphical environment MATLAB/Simulink) and an easy-to-use FPGA graphical IDE, make Keysight FPGA programming extremely simple.

 

Keysight M3602A: An FPGA Design Environment

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:

 

Streamlined design process

 

One-click compiling and programming:

 

Figure 15: Keysight M3602A: a platform that provides the complete flow from design to FPGA programming

 

Design Process: Customization vs. Complete Design

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