4 - Keysight

Matt Ozalas
RF Power Amplifier & Module Design Expert
© Keysight Technologies 2017
Why?
– The solution to most engineering problems can be found somewhere in the
data…but where?
Test Data
Simulation
Results
Charts
White board
Models
Production Data
Lab notebook
© Keysight Technologies
2017
5/4/2017
Page
2
Use the Force
StarWars.com
May the Fourth: Happy Star Wars Day!
© Keysight Technologies
2017
5/4/2017
Page
3
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
2. Enhance analysis of measured data using simulation
3. Directly compare simulation with measurement though VISA interface
4. Compute circuit or model values prior to running simulation
© Keysight Technologies
2017
5/4/2017
Page
4
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
Designing a Broadband amplifier with a 3D Smith Chart
2. Enhance analysis of measured data using simulation
De-embedding measured load pull data using EM analysis of fixture
3. Directly compare simulation with measurement though VISA interface
PAM-4 simulation to measurement validation on DCA oscilloscope
4. Compute circuit or model values prior to running simulation
Synthesizing an Acoustic Filter by a residual extraction technique
© Keysight Technologies
2017
5/4/2017
Page
5
Introduction:
© Keysight Technologies
2017
5/4/2017
Page
6
What is Python?
– Widely adopted, user friendly programming environment
• Lots of Engineering and Scientific Functionality
- The function you want probably already exists
• Open Source
- You can usually look at that function in detail
• Totally free
- It doesn’t cost anything to download and use
– Lots of learning resources…
Videos: http://www.keysight.com/find/python-test-and-measurement
• Great intro to Python for Hardware Engineers!
Books: www.learnpythonthehardway.org/
Courses: https://developers.google.com/edu/python
Answers to questions: https://stackoverflow.com/questions/tagged/python
© Keysight Technologies
2017
5/4/2017
Page
7
Basic Definitions
– To create, edit, debug and execute scripts, you can download Editors and
Interactive Development Environments (IDE’s)
• IDE’s here: https://wiki.python.org/moin/IntegratedDevelopmentEnvironments
– Packages contain useful functions –for example, the “sine” function –
• These can be “imported” into a script
• 105748 packages here: https://pypi.python.org/pypi
– Distributions are preloaded with Python + Packages + Editors/IDE’s
• List of distributions here: https://wiki.python.org/moin/PythonDistributions
• Recommended: ANACONDA: https://www.continuum.io/downloads
- This includes a two great IDE’s (SPYder / JuPYter) and a lots of scientific packages
© Keysight Technologies
2017
5/4/2017
Page
8
Quick Start
– Download and install Anaconda
https://www.continuum.io/downloads
– Open “Spyder” App (Start Menu  Anaconda  Spyder)
or
• View  Panes and select EDITOR, IPYTHON CONSOLE, VARIABLE EXPLORER
• Type the 4 lines below and click the “RUN” button (green arrow)
Run button
Variable explorer
Console
Editor
Page
Linking Simulation to Python
© Keysight Technologies
2017
5/4/2017
Page
10
Data Link Setup
Both environments have a file which contains “data link” functions
Simulator: Keysight ADS
Python Distribution: Anaconda
https://www.continuum.io/downloads
AEL File: python_utilities.ael
Python Library: ads.py
Contains Python “Data Link” functions for ADS.
ADS needs to be configured to load this
This file needs to be in the directory
with the Python script(s) you will call
– 5 minute step by step video plus workspace here:
http://www.keysight.com/find/eesof-ads-data-link-setup
5/4/2017
© Keysight Technologies
2017
Page
11
ADS Data Link with Python: “Multiply by 2”
© Keysight Technologies
2017
5/4/2017
Page
12
ADS Data Link with Python: “Multiply by 2”
Send
Directory to send data
Data
V, I
© Keysight Technologies
2017
5/4/2017
Page
13
ADS Data Link with Python: “Multiply by 2”
Send
Directory to send data
Data
V, I
Receive
© Keysight Technologies
2017
5/4/2017
Page
14
ADS Data Link with Python: “Multiply by 2”
Send
Directory to send data
Data
V, I
Receive
© Keysight Technologies
2017
5/4/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
© Keysight Technologies
2017
5/4/2017
Page
16
ADS Data Link with Python: “Multiply by 2”
Send
Full path of
Python file
“Mydata.csv”
Receive
Directory to send data
Data
V, I
2*V
2*I
Receive
Send
© Keysight Technologies
2015
5/4/2017
Page
17
ADS Data Link with Python: “Multiply by 2”
Send
Full path of
Python file
“Mydata.csv”
Receive
Directory to send data
Data
V, I
2*V
2*I
Receive
Send
© Keysight Technologies
2017
5/4/2017
Page
18
The Same Thing, in a SINGLE STEP
Directory path of script Script Name
Data
© Keysight Technologies
2015
5/4/2017
Page
19
The Same Thing, in a SINGLE STEP
Send
V, I
Receive
Myscript.py
2*V
2*I
All of this happens automatically once the ADS equation is executed
© Keysight Technologies
2015
5/4/2017
Page
20
The Same Thing, in a SINGLE STEP
Send
V, I
Receive
2*V
2*I
Myscript.py
Import the Python library (ads.py)
© Keysight Technologies
2015
5/4/2017
Page
21
The Same Thing, in a SINGLE STEP
Send
V, I
Receive
2*V
2*I
Bring ADS Data into Python
D=numerical data
S=string data
© Keysight Technologies
2015
5/4/2017
Page
22
The Same Thing, in a SINGLE STEP
Send
Receive
2*V
2*I
V, I
Process the data in Python somehow
© Keysight Technologies
2015
5/4/2017
Page
23
The Same Thing, in a SINGLE STEP
Send
Receive
2*V
2*I
V, I
Send Python data back to ADS
© Keysight Technologies
2015
5/4/2017
Page
24
The Same Thing, in a SINGLE STEP
Send
V, I
Receive
2*V
2*I
Close the ADS-Python Channel
© Keysight Technologies
2015
5/4/2017
Page
25
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
Designing a Broadband amplifier with a 3D Smith Chart
2. Enhance analysis of measured data using simulation
De-embedding measured load pull data using EM analysis of fixture
3. Directly compare simulation with measurement though VISA interface
PAM-4 simulation to measurement validation on DCA oscilloscope
4. Compute circuit or model values prior to running simulation
Synthesizing an Acoustic Filter by a residual extraction technique
© Keysight Technologies
2017
5/4/2017
Page
26
Overview: Broadband Amplifier Design
– A Power Amplifier’s 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.
– Goal: Design a broadband power amplifier using loadpull contours.
Power and Efficiency Contours,
Plus OMN Impedance vs. Freq
Discrete
Matching Network
50 Ω
DUT
Contours and
impedance
change vs.
frequency
Freq?
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 axis
Z
Ɵ
R
Cylindrical Coordinates
3D Smith Chart
*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 multiplebandwidth 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.
Generate (sm3d.generate_3d_smith)
Plot a line (sm3d.plot_3ds_line)
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
Data to
Plot
Results or
status message
Python script “pops up” a
3D plot automatically
© Keysight Technologies
2017
5/4/2017
Page
31
DEMO: 3D SMITH CHART
© Keysight Technologies
2017
5/4/2017
Page
32
Better Understand a Matching Network
What creates the
resonance around
1.3 GHz?
Data selected on
the 3DSC is
returned to ADS
automatically
C3
L2
C2
L1
C1
© Keysight Technologies
2017
5/4/2017
Page
33
Loadpull contours, “stretched out”
Sweep Load, Freq
Power, Eff contours
Pout=24 dBm contour
nd=30,40,45% contours
© Keysight Technologies
2017
5/4/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
Selected result is then returned to ADS
24 dBm power contour
f=1700 MHz
C3
C2
L2
L1
C1
© Keysight Technologies
2017
5/4/2017
Page
35
Put it together
Output Power
Efficiency
Page
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
Designing a Broadband amplifier with a 3D Smith Chart
2. Enhance analysis of measured data using simulation
De-embedding measured load pull data using EM analysis of fixture
3. Directly compare simulation with measurement though VISA interface
4. Compute circuit or model values prior to running simulation
© Keysight Technologies
2017
5/4/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
– Goal: Use an Electromagnetic simulation to de-embed the measurement test fixture
from a set of measured loadpull contours for a power transistor.
Test Fixture
(Want to De-embed
w/ EM simulation)
1
Tunable
RF Load
BiasT
BiasT
DUT 1
plane
2
Fixture Plane
2
DUT
Gain
SWEPT
Signal
Source
X
Pin
X dB
Compression
Contours of constant
power delivered at XdB Gain compression
Pinx
Due to the structure of the measured data, it is difficult to generate contours using built in functions
Page
“Surface Data” in Python
Python Approach:
Measured Data Structure:
Create 3 new, gridded
array variables which
contain explicit x, y, z
• Efficiency Values are de-coupled from load values: Eff(load index, pin index)
• Swept Data is irregular (number of points varies from sweep to sweep)
Data must be interpolated onto a uniform XY grid for contouring
Measured Data is a
collection of Points
X (Real RL) Y (Imag RL) Z (Efficiency)
6.97
1.94
54.9725
4.21
1.28
57.48225
4.17
0.12
61.428
6.73
0.1
62.231
7.56
-3.6
64.9364
6.92
-1.75
65.8133
8.78
-5.44
59.11595
5.53
-2.02
69.0246
6.45
-4.98
65.0662
To plot this in 3D, we must have Z=f(x,y),
So the input data must be interpolated onto a uniform grid
X
4
4.5
5
5.5
6
In Python, we first create a uniform XY grid…
Linear
X and Y
Gridded
X and Y
The “meshgrid” function
builds a 2D XY grid
Y
-5
Z(4,-5)
Z(4.5,-5)
Z(5,-5)
Z(5.5,-5)
Z(6,-5)
-2.5
Z(4,-2.5)
Z(4.5,-2.5)
Z(5,-2.5)
Z(5.5,-2.5)
Z(6,-2.5)
0
Z(4,0)
Z(4.5,0)
Z(5,0)
Z(5.5,0)
Z(6,0)
2.5
Z(4,2.5)
Z(4.5,2.5)
Z(5,2.5)
Z(5.5,2.5)
Z(6,2.5)
5
Z(4,5)
Z(4.5,5)
Z(5,5)
Z(5.5,5)
Z(6,5)
Then, interpolate Z values onto the grid
Gridded Z
The “griddata” function uses cubic interpolation to fill in
the Z-values on top of the uniform X-Y grid
Now we have 3 gridded, plottable variables: xgrid, ygrid, zgrid
Page
Creating Surfaces and Contours in Python
– From the grid variables, can generate a surface or extract contours of constant elevation
These utilize the pyplot functions in Matplotlib
(its also possible to extract data from the contours)
© Keysight Technologies
2017
5/4/2017
Page
40
Generating and De-embedding contours from measured data
1. Measured Results
2. Import and Filter data
(.mdif file)
3. Pass in X dB
compression data
(.spl file)
(.lpc file)
5. Return
contours
4. Grid data and
generate contours
6. Combine contours with EM
simulation to de-embed fixture
De-embedded
Measured
Contours
Measured Contours
Page
DEMO: GENERATING LOADPULL CONTOURS
© Keysight Technologies
2017
5/4/2017
Page
42
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
Designing a Broadband amplifier with a 3D Smith Chart
2. Enhance analysis of measured data using simulation
De-embedding measured load pull data using EM analysis of fixture
3. Directly compare simulation with measurement though VISA interface
PAM-4 simulation to measurement validation on DCA oscilloscope
4. Compute circuit or model values prior to running simulation
© Keysight Technologies
2017
5/4/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.
PAM-4: Pulse Amplitude Modulation with 4 amplitude levels
QSFP28 - 3m
(DUT)
AWG Tx
Tx
(AWG)
Simulation
Tx
Measurement
Oscope
RX
DUT
Eye
Probe…
Rx
(DCA
Scope)
Pass through Rx
(Diff to SE)
*PAM-4 Simulation to Measurement Validation with Commercially
Available Software and Hardware. DesignCon2016
DUT:
3m QSFP28 cable
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.
Flex DCA: Sim, Meas PAM-4 Eye Diagrams
Measure DUT
QSFP28 - 3m
(DUT)
AWG Tx
Simulate DUT
Sim Waveform
CSV file
Return
Level
data
Pass waveform file
pointer and specs
Load waveform, configure
instrument, measure levels
Capture data
Logic Levels
are measured
Page
DEMO: INSTRUMENT CONTROL AND DATA TRANSFER
© Keysight Technologies
2017
5/4/2017
Page
47
4 Ways to boost simulation data processing using Python
1. Visualize and understand simulation data
Designing a Broadband amplifier with a 3D Smith Chart
2. Enhance analysis of measured data using simulation
De-embedding measured load pull data using EM analysis of fixture
3. Directly compare simulation with measurement though VISA interface
PAM-4 simulation to measurement validation on DCA oscilloscope
4. Compute circuit or model values prior to running simulation
Synthesizing an Acoustic Filter by a residual extraction technique
© Keysight Technologies
2017
5/4/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
Image Credit:
http://www.edn.com/5G/4413442/SAW--BAW-and-the-future-of-wireless
Acoustic
Resonator
Modified ButterworthVan Dyke Model
Page
Model of an Acoustic Resonator
Series Resonance
Capacitive Below Fs
Series
Resonance
fs 
1
2 LmCm
fp 
1
2
 C C 
Lm  m o 
 Cm  Co 
Page
Model of an Acoustic Resonator
Inductive between
Fs and Fp
Series Resonance
Parallel Resonance
Capacitive Below Fs
Series
Resonance
Parallel
Resonance
fs 
1
2 LmCm
fp 
1
2
 C C 
Lm  m o 
 Cm  Co 
Page
Ladder Networks
Filters are built by cascading sets of series and shunt resonators…
Response of Series / Shunt Resonators in Cascade
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
response
fp
shunt
fs
series
fs shunt
fp series
More
Rejection
To achieve an equi-ripple passband response, filter elements cannot be identical, rather
they must be tuned, optimized, or designed to achieve an equal-ripple passband…
Page
Ladder Network Synthesis in Python
1. Obtain characteristic equation for ideal lowpass prototype (Chebyshev)
Input is return loss and zero location specs
Output is the S-domain Polynomial for the
prototype (low pass) filter S11(s)=F(s)/E(s)
2. Extract resonator element values using a residue extraction technique*
Input is polynomial and zero locations
Output is the ideal Resonator Component Values
*Ladder-type FBAR Filter Synthesis
Methodology. IEEE DCIS Page
2004
Implementation
– Pass specifications from ADS to Python, view prototype filter response, then simulate
1. Pass in filter specs
(Passband / Return Loss / zeros)
2. Synthesize Filter
based on input specs
3a. Prototype Response
returned from Python to ADS
3. Return Prototype LP freq.
response for analysis in ADS
Frequency Response
simulated in ADS
Access resonator
data for simulation
Create file containing values for resonators
Simulate ladder filter with synthesized resonator values
© Keysight Technologies
2015
5/4/2017
Page
55
DEMO: ACOUSTIC FILTER SYNTHESIS
© Keysight Technologies
2017
5/4/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:
– 3D Smith Chart (aka the “Smith Tube”)
• Joseph Barkate, Matthew Fellows, Jennifer Barlow, Charles Baylis, and Robert J. Marks II. The
Power Smith Tube: Joint Optimization of Power Amplifier Input Power and Load Impedance
for Power-Added Efficiency and Adjacent-Channel Power Ratio. IEEE WAMICON 2015.
– Loadpull Simulation and Measurement
• Andy Howard. “Advances in Load Pull Simulation.” IMS2014 (Microapp).
• Gary Simpson. A Beginner’s Guide to All Things Loadpull: Microwaves & RF, Dec. 2014.
– PAM-4 Simulation to Measurement Correlation
• Lieven Decrock, Heidi Barnes, Rutger Smink,Fangyi Rao, Joris Van Kerrebrouck, Timothy De
Keulenaer, Johan Bauwelinck. “PAM-4 Simulation to Measurement Validation with
Commercially Available Software and Hardware”. DesignCon 2016.
– Acoustic Filter Synthesis
• Alexandre A. Shirakawa, Jean-Marie Pham, Pierre Jarry, Elias Hanna..
© Keysight Technologies
2017
5/4/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
ADS Data Link Basics:
http://www.keysight.com/find/eesof-ads-data-link
Advanced Plotting:
http://www.keysight.com/find/eesof-ads-3d-plots
Instrument Connectivity:
http://www.keysight.com/find/eesof-ads-instrument
Each video links to a workspace on the Keysight Knowledge Center
© Keysight Technologies
2017
Page
58
www.keysight.com/find/eesof-how-to-videos
– “How To” Video Series
– Application Focused
(10 min each)
– Free workspace
http://www.keysight.com/find/mytrial.rfmw.wc
© Keysight Technologies
2017
Page
59