200 likes | 322 Views
Discover the journey of building a robust automation solution for SoC testing with Matlab through BART. Learn how to create flexible test scenarios, organize results efficiently, and enable seamless sharing between engineers. Explore the advantages, common mistakes, and valuable insights gained from this automation project.
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!