200 likes | 317 Views
Lab & Production ATE Solution with Matlab. BART’s True Story David Zisner Founder, LeAndolini Solutions. Who Are We?. Automation professional services provider Strong advocate of OO methodologies and frameworks: .NET, Java, C++
E N D
Lab & Production ATE Solution with Matlab BART’s True Story David Zisner Founder, LeAndolini Solutions
Who Are We? • Automation professional services provider • Strong advocate of OO methodologies and frameworks: .NET, Java, C++ • Experienced in designing and developing automation solutions for SoC
Main Needs • Single environment to rule them all • Flexibility for future requirements • Various user types within R&D and production (screening) • Enable sharing between engineers • Robust
We Added… • Must be orthogonal to the tests & product • Each engineer is independent and doesn’t conflict with others • Flexible test scenarios • Organize results in an easily-collectible manner – reduce time & errors • Easy deployment
The Common Mistake • Built a system and not an architecture • Architecture ≠ Framework
And We’re Off! • Project nicknamed BART: BXX Automated RF Tester • Team of 4 – a winning combination: • 4WW from architecture to initial release
Eyes on the Ball! • The dilemmas: • Object oriented vs. native MATLAB? • Java invocation? • Deployment: m-files or exe?
What MATLAB Gave Us • Loose typing + function handles super-fast v-table! • Vectoring actions – i.e. user inputs • Access & debug of advanced mathematics inside the tests • Deployment options: as m-code via svn for R&D, or deploytool for production
Defining Sessions & Scenarios • Scenarios are defined in XML • Each scenario contains multiple sessions • Several XMLs can be executed • Each XML produced its results, log, verdict • Why XML?
Code Snippet ======================================================== % Create the Log object as a regular MATLAB struct Log = []; ======================================================== % Initialize log type based on user's requests if strcmp(logType, 'Text') Log.WriteLine = @Log_Text_WriteLine; else Log.WriteLine = @Log_Html_WriteLine; endif Log.Options = struct('Detailed', 1, 'Warning', 2, 'Info', 3,'Error', 4,'Fatal' ,5); ======================================================== % Using the 'Log' object inside a test Log.WriteLine(Log.Options.Info, sprintf('NF test is finished, NF: %f dB', Result), Log); ========================================================
User Perspective • Creating test cases with varying looping combinations (i.e. PVT, registers) via XML & GUI (MATLAB’s GUIDE) • Simple API for accessing system blocks: DB, Log, equipment
Management Perspective • Complete separation between infra & tests higher reliability in the results • Higher lab equipment utilization over night / weekends • Sharing environments and tests between sites (IL / USA) “free” R&D extension!
Life With BART • Full automation from system Excels to output pivot tables • More than 20 lab stations using the same code base for various testing needs • Full equipment automation • For the next chip, the ATE was ready two months before the chip’s arrival!
Want to Know More? • Participate in our free quarterly automation workshops • Get our free guide – “The 7 Mistakes Automation Developers Must Not Make” • How? SMS auto+ youremailto 03-6161888 (i.e. auto david@leandolini.com) now!