4 Ways To Boost Simulation Data Processing Using Python - Keysight - EDA - 4may2017 - Webcast - Slides
4 Ways To Boost Simulation Data Processing Using Python - Keysight - EDA - 4may2017 - Webcast - Slides
Test Data
Simulation Models
Results
5/4/2017
Keysight Technologies
2017 Page 2
Use the Force
StarWars.com
5/4/2017
Keysight Technologies
2017 Page 4
4 Ways to boost simulation data processing using Python
5/4/2017
Keysight Technologies
2017 Page 5
Introduction:
5/4/2017
Keysight Technologies
2017 Page 6
What is Python?
5/4/2017
Keysight Technologies
2017 Page 7
Basic Definitions
To create, edit, debug and execute scripts, you can download Editors and
Interactive Development Environments (IDEs)
IDEs here: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments
5/4/2017
Keysight Technologies
2017 Page 8
Quick Start
Download and install Anaconda https://www.continuum.io/downloads
Open Spyder App (Start Menu Anaconda Spyder) or
Run button
Variable explorer
Console
Editor
Page
Linking Simulation to Python
5/4/2017
Keysight Technologies
2017 Page 10
Data Link Setup
Both environments have a file which contains data link functions
5/4/2017
Keysight Technologies
2017 Page 11
ADS Data Link with Python: Multiply by 2
5/4/2017
Keysight Technologies
2017 Page 12
ADS Data Link with Python: Multiply by 2
Send
Directory to send data Data
V, I
5/4/2017
Keysight Technologies
2017 Page 13
ADS Data Link with Python: Multiply by 2
Send
Directory to send data Data
V, I
Receive
5/4/2017
Keysight Technologies
2017 Page 14
ADS Data Link with Python: Multiply by 2
Send
Directory to send data Data
V, I
Receive
5/4/2017
Keysight Technologies
2017 Page 15
ADS Data Link with Python: Multiply by 2
Send
Directory to send data Data
V, I 2*V
2*I
Receive Send
5/4/2017
Keysight Technologies
2017 Page 16
ADS Data Link with Python: Multiply by 2
Full path of
Send Receive Python file
Directory to send data Mydata.csv
Data
V, I 2*V
2*I
Receive Send
5/4/2017
Keysight Technologies
2015 Page 17
ADS Data Link with Python: Multiply by 2
Full path of
Send Receive Python file
Directory to send data Mydata.csv
Data
V, I 2*V
2*I
Receive Send
5/4/2017
Keysight Technologies
2017 Page 18
The Same Thing, in a SINGLE STEP
5/4/2017
Keysight Technologies
2015 Page 19
The Same Thing, in a SINGLE STEP
Send Receive
Myscript.py 2*V
V, I
2*I
5/4/2017
Keysight Technologies
2015 Page 20
The Same Thing, in a SINGLE STEP
Send Receive
Myscript.py 2*V
V, I
2*I
5/4/2017
Keysight Technologies
2015 Page 21
The Same Thing, in a SINGLE STEP
Send Receive
2*V
V, I
2*I
5/4/2017
Keysight Technologies
2015 Page 22
The Same Thing, in a SINGLE STEP
Send Receive
2*V
V, I
2*I
5/4/2017
Keysight Technologies
2015 Page 23
The Same Thing, in a SINGLE STEP
Send Receive
2*V
V, I
2*I
Send Receive
2*V
V, I
2*I
2015 Page 25
4 Ways to boost simulation data processing using Python
5/4/2017
Keysight Technologies
2017 Page 26
Overview: Broadband Amplifier Design
A Power Amplifiers performance is highly dependent upon load value
Load-pull: Present different loads to device, and create contours of constant power and efficiency
on the Smith Chart. Then, design a matching network to transform impedance into the contour.
Challenge in broadband design: usually, contours are only valid at a single frequency.
50
DUT
Contours and
impedance
Freq? change vs.
frequency
Freq: 1-2 GHz
Freq?
Efficiency
Power Matching Network Z Hard to visualize and
interpret all this data!
Page
5/4/2017
The Cylindrical 3D Smith Chart (Smith Tube)
A Smith Chart can be extended into 3D by adding a Cartesian Z-axis, in a manner similar
to a cylindrical coordinate system.
This representation of the Smith Chart, dubbed the Smith Tube was pioneered by a
team a Baylor University*.
Arbitrary
Z Z axis
*Matthew Fellows, Matthew Flachsbart, Jennifer Barlow, Charles Baylis, Robert J. Marks. The Smith tube:
Selection of radar chirp waveform bandwidth and power amplifier load impedance using multiple-
bandwidth load-pull measurements. IEEE WAMICON, June 2014.
Page
Implementing a 3D Smith Chart in Python
I wrote a custom sm3d library in Python to generate a 3D Smith Chart. The library can be
accessed from Python and also has built in plotting capability for points, lines, contours etc.
5/4/2017
Page
Implementing a 3D Smith Chart in Python
Plot a surface (sm3d.plot_3ds_surface) or Contours (sm3d.plot_3ds_contours)
5/4/2017
http://www.keysight.com/find/eesof-3dsmithchart
Page
Automatically open a Smith Tube after an ADS simulation
Results or
Data to status message
Plot
5/4/2017
Keysight Technologies
2017 Page 31
DEMO: 3D SMITH CHART
5/4/2017
Keysight Technologies
2017 Page 32
Better Understand a Matching Network
Data selected on
the 3DSC is
returned to ADS
automatically
C3
L2
C2
C1
L1
5/4/2017
Keysight Technologies
2017 Page 33
Loadpull contours, stretched out
nd=30,40,45% contours
5/4/2017
Keysight Technologies
2017 Page 34
Thread the Needle
Goal is to adjust the matching network values to thread the needle of impedance
through the contour rings across frequency
C3 f=1700 MHz
C2
L2
C1
L1
5/4/2017
Keysight Technologies
2017 Page 35
Put it together
Page
4 Ways to boost simulation data processing using Python
5/4/2017
Keysight Technologies
2017 Page 37
Loadpull Measurement System
Loadpull contours can be created by measurement, using the test setup below
The device is in a fixture, which shifts the contours wrt the device reference plane
Fixture de-embedding can be done using an EM simulation
Test Fixture
(Want to De-embed
w/ EM simulation)
1 DUT 1
2
plane
Tunable
BiasT BiasT RF Load
Fixture Plane
2
SWEPT DUT
Signal X dB
Gain
X
Source Compression Contours of constant
power delivered at X-
dB Gain compression
Pinx
Pin
Due to the structure of the measured data, it is difficult to generate contours using built in functions
Page
Surface Data in Python
Measured Data Structure: Python Approach:
Create 3 new, gridded
Efficiency Values are de-coupled from load values: Eff(load index, pin index)
array variables which
Swept Data is irregular (number of points varies from sweep to sweep) contain explicit x, y, z
In Python, we first create a uniform XY grid Then, interpolate Z values onto the grid
Linear
X and Y
The griddata function uses cubic interpolation to fill in
Gridded Gridded Z the Z-values on top of the uniform X-Y grid
X and Y The meshgrid function
builds a 2D XY grid
5/4/2017
Keysight Technologies
2017 Page 40
Generating and De-embedding contours from measured data
(.lpc file)
5. Return 4. Grid data and
contours generate contours
6. Combine contours with EM
simulation to de-embed fixture
De-embedded
Measured
Contours
Measured Contours
Page
DEMO: GENERATING LOADPULL CONTOURS
5/4/2017
Keysight Technologies
2017 Page 42
4 Ways to boost simulation data processing using Python
5/4/2017
Keysight Technologies
2017 Page 43
PAM-4 Channel: Simulation vs. Measurement
PAM-4 waveforms have high data rates, but noise and distortion requirements are challenging
Channel simulation to measurement correlation can be difficult, even for the case of a cable*
- Signal Processing might be different in oscilloscope vs. simulation data function !
Goal: Eliminate uncertainty for PAM-4 eye diagram by loading the simulation results into the same
oscilloscope used for measured data, so both waveforms are processed in the same way.
QSFP28 - 3m
(DUT) Measurement
Oscope
AWG Tx RX
Tx
Simulation (AWG)
Eye
Rx
Tx Probe
DUT (DCA
Scope)
Pass through Rx
(Diff to SE)
DUT:
*PAM-4 Simulation to Measurement Validation with Commercially 3m QSFP28 cable
Available Software and Hardware. DesignCon2016 Page
Pyvisa: Connecting to Measurement Test Equipment though Python
The pyvisa package can be used to communicate with any VISA compatible instrument.
I/O libraries must be installed. http://www.keysight.com/find/iolibraries
SCPI commands can now be directly sent to the instrument through Python.
Keysight Flex-DCA
Flex-DCA is the UI for the 86100D DCA-X Oscilloscope. It can load waveform data directly.
http://www.keysight.com/find/flexdca
Page
Controlling the instrument to post process results
ADS calls a python script which uses SCPI commands to load and process waveforms in
Flex-DCA from both simulation and measurement for direct comparison. Then, logic
level measurement results are returned to ADS.
This ensures both waveforms are processed and measured in the same manner.
AWG Tx
5/4/2017
Keysight Technologies
2017 Page 47
4 Ways to boost simulation data processing using Python
5/4/2017
Keysight Technologies
2017 Page 48
Acoustic Ladder Filter Synthesis
Acoustic Resonators (SAW/BAW/FBAR) are widely used in RF systems for filtering.
For many filters, Synthesis is the first step in design. But for acoustic filters, synthesis often
required computationally intensive algorithms
Goal: Synthesize an Acoustic Ladder Filter using a Python script, then simulate to validate the
synthesis results. Automate the process as much as possible to minimize unnecessary transfer of
information between synthesis tool (Python) and simulation tool (ADS).
Overlap
Capacitance
Series Resonance
Capacitive Below Fs
Series
Resonance
1 1 C C
fs fp Lm m o
2 LmCm 2 Cm Co
Page
Model of an Acoustic Resonator
Inductive between
Fs and Fp
Capacitive Below Fs
Series Parallel
Resonance Resonance
1 1 C C
fs fp Lm m o
2 LmCm 2 Cm Co
Page
Ladder Networks
Filters are built by cascading sets of series and shunt resonators
fp
shunt
fs
series
fs shunt fp series
Typically, shunt resonators are detuned to be lower in frequency than series resonators
Shunt sets the low frequency performance, Series sets the high frequency performance
Page
Ladder Networks
Adding more identical sections gives deep nulls and high out of band rejection, but
results in non ideal passband and input return loss performance.
Response of Series / Shunt Resonators in Cascade
non ideal
passband
fp
response
shunt
fs
series
Page
Ladder Network Synthesis in Python
1. Obtain characteristic equation for ideal lowpass prototype (Chebyshev)
5/4/2017
Keysight Technologies
2015 Page 55
DEMO: ACOUSTIC FILTER SYNTHESIS
5/4/2017
Keysight Technologies
2017 Page 56
Additional References
The material presented today was based in part on the following work. Please see
these references for more details regarding each application example:
5/4/2017
Keysight Technologies
2017 Page 57
Closing
For more information, check out these videos
Data Link Setup (Prerequisite):
http://www.keysight.com/find/eesof-ads-data-link-setup
Advanced Plotting:
http://www.keysight.com/find/eesof-ads-3d-plots
Instrument Connectivity:
http://www.keysight.com/find/eesof-ads-instrument
Keysight Technologies
2017 Page 58
www.keysight.com/find/eesof-how-to-videos
http://www.keysight.com/find/mytrial.rfmw.wc
Keysight Technologies
2017 Page 59