Scaling Application on High Performance Computing Clusters and Analysis of th...
Adam_Mcconnell_SPR11_v3
1. The World Leader in High Performance Signal Processing Solutions
ADI Confidential InformationADI Confidential Information –– Not for external distributionNot for external distribution
COOP Presentation
Spring 2011
Adam McConnell
2nd
Rotation
ATV Group
Supervisor: Brent Scholten
2. —Analog Devices Confidential Information—
Overview of Projects
Implement a Debugger within the XRC Board Evaluation
software
First extensive use of the Python language
Goal: GUI-based Debugger integrated into XRC.py
Use excel to model a Low Pass Filter with two different
architectures: Sallen-Key topology & Cascaded 1st
Order RC
filters
First attempt at AC simulations and design in general
Goal: Want to compare between the two architectures and see
which implementation is more suitable for what Ralph Moore
wants
3. —Analog Devices Confidential Information—
Debugger Project – Before status
Why is it needed?
Old debugger uses PyShell and the pdb (Python DeBugger)
module
This is not user-friendly
Old debugger wasn’t being used that often
Following slide will illustrate how old debugger works
When an error occurred in the script, users must wait for the script
to finish, try to correct it and run again.
This can become tedious, if not impossible
Efficiency comes to a standstill for huge script files or scripts with long
loops
5. —Analog Devices Confidential Information—
Illustration of Old debugger
How to set breakpoints
How to start debugger
Continue/Step through script
6. —Analog Devices Confidential Information—
Debugger Project Goals
1. Use wxPython instead of pdb & cmd (Command) modules
wxPython has become a popular alternative over Tkinter
XRC GUI-features are already written in wxPython
Makes no sense to write a GUI program using different GUI-wrappers
Other advantages
2. Create a more visual, graphical approach to the debugger
Buttons needed for “step” and “start” functions
Read back and highlight the current line number that the
debugger is currently on
1. Want Debug class to act independently from the Script
Editor frame
Allows access to rest of the software instead of being focused
on using just the debugger when active
7. —Analog Devices Confidential Information—
Debugger Project
Before: no buttons Now: with buttons
Set breakpoints
Go to next line
Continue to next breakpoint
Start debugger
9. —Analog Devices Confidential Information—
Debugger Project – Challenges
Ability to program, understand & modify code with the Python
book closed.
Reading and understanding professional code spread across
multiple files
This includes understanding pdb, bdb, cmd (modules found in
python standard library) and understanding XRC software which
included at least 10 different modules
It’s the shortest block of code that’s the hardest to understand
Looking at large amounts of documentation to find what I need
To look up what a function does or how it is implemented
To find a function that is related to what I want to do
Highlighting and reading back the current line was the
hardest feature for me to implement
10. —Analog Devices Confidential Information—
Debugger Project – Final Status
Initial Objectives:
Create a Debug class which use wxPython as an interface
Include functional buttons to:
Start Debugger
Step to next line in script
Correctly highlight current line in script
Close the debugger when reached end of script file
Added Features:
2 additional buttons:
Set/Remove breakpoints
Continue to next breakpoint
Change the color of ‘Debug’ Button to indicate that Debugger is on and working
Drawback:
Debugger Class only works when XRC.py program is opened through terminal and
run through Python Interpreter instead of using the executable file (.exe)
11. —Analog Devices Confidential Information—
Excel AC Sims: Need & Goals
Big Picture: Can excel be a viable alternative to other more
expensive tools?
MathCAD
MatLab
Goals:
To act as test bench simulations for certain filters
Such as a Butterworth Filter
See the effects of a non-ideal amplifier on a transfer function of a
second-order low-pass filter
To optimize and model an active filter
12. —Analog Devices Confidential Information—
AC Sims – Modeling Flow using Excel
Create a model of an amplifier with a 1st
order transfer function
Gain (Ao), Cutoff Frequency, & Resistive value are to be entered
What’s the outcome?
Based on values entered, get to compare against -3dB reference and the
Ideal Transfer Function
Model the Cascaded 1st
Order LPF
C1,C2 are values to be entered; R1,R2 are values to be calculated
based on given cutoff frequency
Determine an equation for Q (Quality Factor)
Show the effects of an amplifier on the overall transfer function
Model Sallen-Key LPF
Model key nodes of S-K LPF as described in app_report.pdf given by
Ralph Moore
13. —Analog Devices Confidential Information—
Model of Amplifier
Cascaded 1st
Order LPF and Sallen-Key LPF excel tabs also have the
same flow as shown above
Values entered
Values calculated
15. —Analog Devices Confidential Information—
Excel – Modeling Cascaded LPF
Finding an equation for Q:
Put the transfer function in standard form:
Set components as ratios: R1=R, R2=mR, C1=nC, C2=C
Q becomes an equation based on ratios, Q(m,n) instead of
Q(r1,r2,c1,c2)
Finding the highest Q possible:
If C1,C2 are fixed, what resistance for R1,R2 gives the highest
possible Q?
C’s are fixed, means ‘n’ is unchanging. To find maximum of Q, find
when ∂/∂m = 0
Q is at a max when m = n+1
BA
16. —Analog Devices Confidential Information—
Modeling Cascaded LPF – Finding maximum Q
No matter what values are chosen for R, C, m, or
n, the Quality Factor for the cascaded LPF
cannot exceed 1/2
19. —Analog Devices Confidential Information—
Excel AC Sims - Challenges
Switching gears from Python to analyzing circuits and
obtaining transfer functions
Spent ~2 months focusing on Python and the Debugger project
Maintaining realistic values for all electric components
If components would have realistic values, Damping or Quality
factor would be incredibly large (ex. 10^11)
Had to do large sweeps to find the optimal component values
Figuring out why damping factor = .707 no matter what values
I chose for LRC components when considering a transfer
function of a 2nd
order Butterworth Filter
I thought I was doing something wrong, the answer was found within
the Butterworth Polynomial
20. —Analog Devices Confidential Information—
Excel – Final Status
Objectives:
Create a model for the non-ideal amplifier with a 1st
order transfer
function
Model cascaded 1st
order LPF followed by a non-ideal amplifier
Model key nodes of Sallen-Key LPF as described in s-k app
report.pdf
Showing bode magnitude and phase plots of each node
Model sallen-key LPF by setting components as ratios and gain =
unity
Some of my work has been integrated in Ralph’s final
worksheets for the design process
It has been shown that Excel is a good alternate and will be used
for the next PLL design
21. —Analog Devices Confidential Information—
What I Learned overall
Python 2.6/2.7
The only true exposure I had to Python was last rotation when
writing scripts to automate several machines in lab
wxPython
Excel programming
Using imaginary & complex arguments
Programming User-Defined functions using VBA
What a Sallen-Key topology is
And how it applies to Low-Pass filters
Close relationship between Damping Factor, Quality Factor,
and the Resistance/Capacitance values that make up the filter
Small insight of what design can be like
22. —Analog Devices Confidential Information—
Other things I did during this rotation
Updated & Modified WATAutomation_GUI program to
successfully parse through 65nm WAT data in addition to the
original .18um WAT data
Updated IEEE_1481 program to handle much larger SPEF
(Standard Parasitic Exchange Format) files of sizes ranging
~200mB – 1 GB
Earlier SPEF files were only 2 – 20mB large
This is still a work in progress, will continue to work on it during 3rd
rotation
Data collecting on ADV7511 parts in lab
FA testing
CRC testing
23. —Analog Devices Confidential Information—
Thanks to:
Brian Campbell
Harry Goings
Ted Hecht
Brian Holford
Matt McCarn
Rod Miller
Ralph Moore
Meredith Morgan
Steven Reed
Brent Scholten
Barry Stakely
Glenn Templeman
Chris Vaugn
Any questions, comments, concerns, requests?
Editor's Notes
Introduce yourself, rotation, what group your in, your supervisor.
Then say your major, expected graduation date
State who gave you the projects:
XRC Debugger: Matt McCarn
Excel Model : Ralph Moore
I got to say “Debugging the debugger”
Here is how debugging worked before I worked on it. It takes several steps and you need prior knowledge of how things work. As you can see, you must first open PyShell under Tools, then import pdb & os modules.
The first line is the command to run pdb, you have to specify what script and where it can be found. Once pdb is running, the command prompt will have (pdb) in front of every command. To set breakpoints you must either type ‘break’ or ‘b’, the pathname to the script and then the line number to set the breakpoint. To step or continue, simply type s(tep)/ cont(inue)
Other advantages: Large library of widgets
Flexible
Huge online-user community for FAQ <- I went to yellow-brain and wxPywiki a lot
3.) -> If Debug class wasn’t acting independently, then when you run Debugger user will only be able to work within debuggers features which would be so limiting that it would be more harmful than helpful
Explain why ‘highlighting and reading back the current line’ was the hardest feature for me to implement:
needed to look in PythonSTC, go online for STC documentation
understand the relationship between markers, margins, lexers,
Even when I figured out how to highlight a line, updating and refreshing was difficult to get right; example: I thought using the update() method within XRC would work, but it changed the pixel height of each word, and shortened the script, it changed the overall visual. It was changing setStyles
Re-State what this Excel AC Sims project is about: To model a second-order low pass filter with two different architectures
Why would people usually choose MathCAD/MatLab over Excel in the first place?
I have a different sheet tab in excel file for each objective stated
Q=.33 is when Capacitances are equal & Resistances are equal (i.e. n=m=1)
To give an example of how little python I knew, I thought .bdb of Bdb.bdb was a file extension instead of calling Bdb as a superclass inside bdb module
I will be using excel to help me when dealing with similar topics in my upcoming classes, such as Linear Systems.
State who gave you the two additional projects:
WATAutomation_GUI: Brent Scholten but went to Rod Miller for updates, comments and questions
IEEE_1481: Brian Holford