Open topic with navigation
Programming Tools
The diagram shown in Figure 9 summarizes the programming tools available to control any Keysight Hardware.
Figure 9: Programming tools for all Keysight hardware
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 also provides 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, such as 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:
- Ultra-fast hard real time execution, processing and decision making: Execution is hardware-timed and can be as fast as 1 nanosecond, matching very high-performance FPGA-based systems and outperforming any real-time operating system.
- User-friendly flowchart-style programming interface: Keysight M3601A provides an intuitive flowchart-style program- ming environment that makes HVI programming extremely fast and easy (Figure 12 on the facing page). Using M3601A and its set of built-in instructions (the same instructions available for VIs), the user can program the hardware modules without any knowledge in FPGA technology, VHDL, etc.
- Off-the-shelf intermodule synchronization and data exchange: Each HVI is defined by a group of hardware modules which work perfectly synchronized, without the need of any external trigger or additional external hardware (Figure 13 on page 52). In addition, Keysight modules exchange data and decisions for ultra-fast control algorithms.
- Complete robustness: Execution is performed by hardware, without operating system, and independently of the user PC.
- Seamless integration with Keysight FPGA technology FPGA Programming: Keysight M3602A Design Environment M3XXXA PXIe hardware with -FP1 option:HVIs can interact with user-defined FPGA functions, making the real-time processing capabilities of HVIs unlimited.
- Seamless integration with Keysight SD1 Programming Libraries: In a complex control or test system, there are still some non- time-critical tasks that can only be performed by a VI, like for example: user interaction, visualization, or processing and decisions tasks which are too complex to be implemented by hardware. Therefore, in a real application, the combination of VIs and HVIs is required. This task can be performed seamlessly with the Keysight SD1 programming tools, e.g. the user can have many HVIs and can control them from a VI using instructions like start, stop, pause, etc.
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.
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:
- User-friendly graphical FPGA programming environment
- Complete platform, from design to FPGA programming: Keysight M3602A provides the necessary tools to design, compile and program the FPGA of the module (Figure 15 )
- 5x faster project development
- Graphical environment without performance penalty
- FPGA know-how requirement minimized: The graphical environment provides a tool which does not require an extensive know how in FPGA technology, improving drastically the learning curve.
Streamlined design process
- Ready-to-use Keysight Block Library: M3602A provides a continuously-growing library of blocks which reduces the need for custom FPGA-code development.
- Include VHDL, Verilog, or Xilinx VIVADO/ISE projects: Experienced FPGA users can squeeze the power of the onboard FPGA.
- Include MATLAB/Simulink projects: MATLAB/Simulink in 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.
- Include Xilinx CORE Generator IP cores: Xilinx CORE Generator can be launched by M3602A to create IP cores that can be seamlessly included in the design.
- 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:
- 3x faster ultra-secure cloud FPGA compiling: An ultra-fast cloud compiling system provides up to 3 times faster compiling. An ultra-secure TLS encrypted communication protects the IP of the user.
- 100x faster hot programming via PCI Express without rebooting: Hardware can be reprogrammed without external cables and without rebooting the system.

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