There’s a saying around the industry that goes something like “everyone trusts a measurement, except the person who made it, and no one trusts a simulation, except for the person who did the simulation”. Either way, both have lots of nuances which can impact the end result. Comparing simulation to measurement can be a very difficult task.
For example, consider the case of a PAM-4 signal through a channel. By transmitting 2 bits per clock cycle, PAM-4 (Pulse-Amplitude-Modulation, 4 amplitude levels) offers high data rate transmission (56 Gb/s), but there are challenges to implementation; with 4 levels, the traditional eye diagram splits into 3 eyes, meaning less noise and distortion can be tolerated in the channel.
Figure 1. PAM-4 waveform.
Because the signal in PAM-4 is more sensitive, an accurate simulation of the channel is essential. A channel simulation takes the modulated signal and sends it through a physical link (like a cable) to see how the clean signal gets distorted by the channel. Given the straightforward setup, it may seem simple to correlate simulation to measurement – after all, we can potentially use the same waveform in both simulation and measurement (using an AWG), or measure the S-parameters of the channel directly and use that data in the simulation. The results should easily correlate, right? Unfortunately, there are still nuances that can lead to different results.
Figure 2. Channel measurement setup.
In an eye diagram measurement on an oscilloscope, the signal will likely be preprocessed prior to measurement. For example, the waveform will be filtered or noise will be injected into the raw waveform. Modern instruments contain all kinds of tools and functions for data analysis – and these are not always easy to recreate elsewhere (sometimes they’re even proprietary!).
There are also functions in simulation tools that generate eye diagrams– but we wonder what processing is being done in the background? It’s not always clear. We could have the exact same signal on the scope and in the simulation, and due to different data processing techniques, get different eye diagrams! Yikes!
Figure 3. Measured eye diagram on Keysight DCA-X 86100D oscilloscope compared to a simulated eye diagram in Keysight ADS.
To eliminate uncertainty, its best to process both waveforms in the same place with the same functions. But getting measurement data into the simulation environment can be tricky, and getting simulated data onto an oscilloscope could be even trickier.
Wouldn’t it be great if you could just talk to the instrument directly from the simulation tool? That way, you could configure the instrument, load a waveform, make some measurements, and maybe even return data back to simulation – all without ever leaving your desk.
Well, now you can! Using a link between Keysight ADS and Python, it’s possible to transfer data between the simulation and measurement environments, and even control the instrument directly using SCPI commands. And the great thing is, you don’t even need to know Python to do basic instrument IO.
ADS functions are now available which invoke Python behind the scenes, allowing you to send SCPI commands from ADS to configure a measurement or capture a waveform trace. All you need to do is load the ADS functions, set up your libraries (www.keysight.com/find/iolibraries) and you’ll be controlling instruments in no time. The figure below shows how it’s possible to capture a measured PAM-4 waveform directly into ADS with a few simple SCPI commands.
Figure 4. Capturing measured PAM-4 waveform into ADS using SCPI commands.
In the case of the PAM-4 signal mentioned at the beginning, it might be better to process the simulated waveform on the measurement test equipment because the Keysight DCA-X 86100D oscilloscope has lots of built in functionality. In this case, we can use a Python script to do the heavy lifting: loading the simulation data into the DCA-X 86100D, configuring the scope, processing the eye statistics, and returning the levels back to ADS. At the same time, you could also measure the physical channel for direct comparison with simulation, using the exact same processing algorithms. After the Python script has been developed, you can do this all in one step using the ADS Data Link to call the script, transfer the data and receive results back.
Figure 5. Calling a Python script from ADS to load simulated channel output waveform and compare it directly with the measured waveform. ADS calls the script and the corresponding PAM-4 levels for both simulation and measurement are returned to ADS.
For more information watch these videos on YouTube:
- Video: ADS Data Link Basics (Part 1 of 3)
- Video: Advanced Plotting Using the ADS Data Link (Part 2 of 3)
- Video: Instrument Connectivity (Part 3 of 3)
Registered users can view the following application notes in the Keysight EEsof EDA Knowledge Center (register here):
Apply today for your free 30-day full-version trial of Keysight ADS.