Overview of Keysight Software and Programming Tools

This chapter contains an overview of the following software and programming tools:

Keysight SD1 SFP Software

Overview of Keysight SD1 SFP Software

Keysight M3201A/M3202A PXIe AWGs, M3100A/M3102A PXIe Digitizers, and M3300A/M3302A PXIe AWG/Digitizer Combos can be operated as classical bench-top instruments using Keysight SD1 SFP software; no programming is required.

When SD1 SFP is opened, it identifies all Keysight PXIe hardware modules that are connected to the embedded controller or desktop computer, and opens a corresponding soft front panel for each piece of hardware.

   
SD1 SFP  

Keysight Programming Tools

The following programming tools are available to control Keysight M3100A/M3102A PXIe Digitizers, M3201A/M3202A PXIe AWGs, and M3300A/M3302A PXIe AWG & Digitizer Combinations:

 

 

Keysight SD1 Programming Libraries

Keysight supplies a comprehensive set of highly optimized software instructions that can control off-the-shelf functionalities of Keysight hardware. These software instructions are compiled into the Keysight SD1 Programming Libraries. Programs can be written with these libraries and run on an embedded controller or desktop computer.

 

The use of customizable software to create user-defined control, test and measurement systems is commonly referred as Virtual Instrumentation. In 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 also provides dynamic libraries, for example: DLLs, that can be used in virtually any programming language.

 

Keysight native programming libraries ensure full compatibility, providing effortless and seamless software integration 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.

 

For more information, refer to the following sections:

 

Keysight M3601A Hard Virtual Instrument (HVI) Design Environment Software

Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizer must have Option HV1 to use Keysight M3601A software; Option HV1 is only available at time of purchase.

Because the Keysight M3201A and M3202A PXIe AWGs have different output latencies, triggering both at the same time from HVI will always result in a 65 to 70 ns offset between their outputs.

The following section is only an overview of the Keysight M3601A software; To learn how to use Keysight M3601A software, refer to the User's Guide for the [3] Keysight M3601A Hard Virtual Instrument (HVI) Design Environment Software.

HVI Programming

Keysight’s HVI technology provides the capability to create time-deterministic execution sequences that are executed by the Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers with Option HV1. HVIs are programmed with Keysight M3601A, an HVI design environment with a user-friendly flowchart-style interface.

HVI Functions

Keysight’s HVI Technology uses the same programming instructions that are available in the Keysight SD1 Programming Libraries, with the difference that in an HVI, those instructions are executed by the hardware modules in hard real-time, not by the embeded controller or desktop computer.

 

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 (HVI), the user application is executed by the hardware modules independently of the computer, which stays free for other VI tasks, like visualization.

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 Hard Virtual Instrument (HVI) Design Environment Software, with a user-friendly flowchart-style interface, compatible with Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers.

   
M3601A  

Keysight M3601A is based on flowchart programming, providing an easy-to-use environment to develop hard real-time applications.

 

 

Keysight M3601A Hard Virtual Instrument (HVI) Design Environment Software provides:

 

Tip: 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 SD1 Programming Libraries.

 

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.

Keysight M3602A FPGA Design Environment Software

Keysight FPGA programming technology is managed with Keysight M3602A FPGA Design Environment Software, an intuitive graphical FPGA programming environment.

Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers must have Option FP1 to use Keysight M3602A software; Option FP1 is only available at time of purchase.

The following section is only an overview of the Keysight M3602A software; To learn how to use Keysight M3602A software, refer to the User's Guide for the Keysight M3602A FPGA Design Environment Software.

Some applications require the use of custom on-board real-time processing which might not be covered by the comprehensive off-the-shelf functionalities of standard hardware products. For these applications, Keysight supplies Option FP1 (Enabled FPGA Programming), that provide the capability to program the on-board FPGA.

 

All Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers can add Option FP1, which provide the same built-in functionalities of their standard counterparts, giving the users more time to focus on their specific functionalities. For example, using Option FP1 on a Keysight M3100A/M3102A PXIe 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.

   
M3602A  
   

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.
An FPGA programming environment provides the following features:

Keysight M3602A is a complete FPGA programming environment that allows the user to customize Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers with Option FP1. Keysight M3602A provides the necessary tools to design, compile, and program the FPGA of the module.

User-friendly graphical FPGA programming environment:
5x faster project development

Graphical environment without performance penalty

Streamlined design process:
Include MATLAB/Simulink

Projects: MATLAB/Simulinkin conjunction with Xilinx

System Generator for DSP provides a powerful tool to implement digital signal processing. The user can go from the design/simulation power of MATLAB/Simulink to M3602A code in just a few clicks.

Add and remove built-in resources to free up space: The user can remove unused built-in resources to free up more FPGA space.

One-click compiling and programming:

Design Process: Customization vs. Complete Design

Keysight FPGA technology allows the user to customize Keysight M3201A/M3202A PXIe AWGs and M3100A/M3102A PXIe digitizers with Option FP1; 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 add/remove blocks from the Keysight Block Library, External Blocks, or Xilinx IP cores.

 

FPGA Programming Overview

Keysight FPGA Block Library: Keysight M3602A provides a ready-to-use FPGA block library that reduces the requirement on FPGA know-how. Please check the M3602A User Guide to see a full description of the available FPGA blocks.

 

Keysight M3602A provides up to x3 faster FPGA compiling and hot programming without having to reboot the system.

M3602A Diagram Blocks


M3602A ControlCH Block

This block provides all the control parameters set by the user software using the
Keysight SD1 Programming Libraries.

Parameters
Name Description
Outputs  
AngleModCtrl Angle modulation control (frequency or phase)
AmpModCtrl Amplitude modulation control
WaveShape Selects the output waveform
Amplitude Signal amplitude value
Offset DC offset value
Frequency Signal frequency value
Phase Signal phase value
PhaseRst Signal to reset the phase of the function generator
M3602A AWG Block

This block is the Dual Arbitrary Waveform Generator.

Parameters
Name Description
Inputs  
Control AWG operation control
QueueCtrl AWG queue control
Outputs  
Data_A Waveform A output (for dual waveforms), main waveform for single waveforms
Data_B Waveform B output (for dual waveforms only)
WFstart Signal that indicates when the AWG starts a waveform

 

M3602A FuncGen Block

This block is a function generator with angle modulation capabilities.

Parameters
Name Description
Inputs  
AngleModCtrl Configures the angle modulation (frequency or phase)
WaveShape Selects the output waveform between Sine, Triangular or Square
AWGsignal Arbitrary waveform coming from the AWG. It is used as the modulating signal
Frequency Signal frequency value
Phase Signal phase value
WFstart Signal that indicates when the AWG signal starts a waveform
PhaseRst Signal to reset the phase of the function generator
Outputs  
WaveShapeOut Indicates which of the output signals is valid
Sine Sinusoidal waveform
Triangular Triangular waveform
Sawtooth Not used
Square Square waveform

M3602A ModGain Block

This block has the following functionalities:

Parameters
Name Description
Inputs  
AmpModCtrl   Configures the amplitude modulator
WaveShape Selects the output waveform between:
Sine, Triangular, Square, Partner Channel, or AWG
WFstart Signal that indicates when the AWGsignal starts a waveform
Amplitude Signal amplitude value
OffsetDC offset value
Sine Sinusoidal waveform coming from the Function Generator
Triangular Triangular waveform coming from the Function Generator
Sawtooth         Not used
Square            Square waveform coming from the Function Generator
PartnerIn         Waveform coming from the Partner Channel.
Used only in odd channels
AWGsignal Arbitrary waveform coming from the AWG. It can be routed
to SignalOut, or it can be used as the modulating signal
Outputs  
SignalOut Output signal
PartnerOut Copy of the output signal used for the even Partner Channel.
M3602A DOut Block

This block sends the data directly to the hardware analog output.

Parameters
Name Description
Inputs  
data data to be sent to the analog output channel