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
© Copyright 2026 Paperzz