MULTIPLE TPS REHOST FROM GENRAD 2235 TO S9100 AL L I A N C E S U P P O R T PAR T N E R S, I N C. D AV I D G U I N N ( D AV I D. G U I N N @ A S P - S U P P O R T. C O M ) L I N YAN G ( L I N. YAN G @ A S P - S U P P O R T. C O M ) H AN S AS H L O C K ( H AN S. A S H L O C K @ A S P - S U P P O R T. C O M )
WHAT IS THE PROBLEM? Obsolete Equipment Over 30 years old Difficult to Maintain 2235 Continued Coverage Required UUTs used in critical plant safety control Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 2
SOLUTION 1. NEW TESTER 2. NEW ITA 3. REHOSTED TPS Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 3
UPGRADE TO S9100 2235 Digital only 120 channels Single bay S9100 tester with two Di- Series cards 128 channels. Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 4
NEW ITA Old ITA New ITA Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 5
ITA DESIGN Forensics Reverse Engineering Forensics Hand-drawn personality cards not 100% accurate Photo of hardware to reverse engineer No GenRad 2235 tester hardware reference document Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 6
NEW ITA ALL IN ONE Multiple UUT insertion positions + cables PCB based personality card - Incorporate signal switching - Eliminate wiring errors - Add accessibility for debug Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 7
TPS REHOST HARDEST PART 47 Test Programs on 8 inch floppy Customer does not have all UUT design specification Customer has no in-house knowledge of existing GenRad tester or the TPS Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 8
TPS REHOST TRACEABILITY IS MUST 2235 Tester Architecture Programming language No time and resources to do-it-all-over; certification will take years No tools such as TPS Converter Studio for L200 to provide traceability Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 9
TPS REHOST 1. TPS TRANSLATOR 2. EMULATE GENRAD BEHAVIOR 3. ADD NEW TESTS Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 10
WHAT DOES THE TRANSLATOR DO? Main.cpp Original TPS 10050 IH 29,30,22,34,5; X Translator //10050 IH 29,30,22,34,5; X SetPinState(PIN_IH,PIN_29); SetPinState(PIN_IH,PIN_30); SetPinState(PIN_IH,PIN_22); SetPinState(PIN_IH,PIN_34); SetPinState(PIN_IH,PIN_5); End_Of_Pattern(); XFunction( LINE ); Source code level traceability Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 11
HOW DID WE IMPLEMENT THE TRANSLATOR? Use GNU Tools Flex A fast lexical analyzer generator It is a GNU tool for generating programs that perform pattern-matching on text http://flex.sourceforge.net/ Bison General-purpose parser generator http://www.gnu.org/software/bison/ Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 12
WHAT DOES IT LOOK LIKE? Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 13
HOW TO MAKE IT PERFECT? Update Translator Code Oops Run all TPS thru Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 14
WHY DID WE HAVE SO MANY OOPS? No 8-inch floppy drive, so rehosted from paper copy TPS were printed on paper with dot matrix printer years ago TPS code on printout was scanned and ran thru OCR (optical character recognition) OCR is not perfect! Human inspectors multiple of them are required! Multiple passes too! 47 Test Programs on 8 inch floppy Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 15
EMULATE GENRAD BEHAVIOR Main.cpp Translated program calls Common functions DTI_Functions.cpp GenFunc.cpp calls Teradyne Di-Series Driver Shared Emulation Library Used by all translated TPS Emulate GenRad test behavior Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 16
EMULATE GENRAD BEHAVIOR Timing Differences Execution Differences Power Differences 2235 Tester Architecture Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 17
TIMING DIFFERENCES GenRad Interpretive Language: commands executed as they are read Timing between test states is the time it takes the CPU to read, parse and then execute a test command Apply digital stimulus one pin at a time with a ~32us gap before it can drive the next input pin Di Series Precise, repeatable digital stimulus and measurements independent of PC Drive all stimulus pins in the same state all at the same time Dynamic Mode; Set TSET period to 40us Example: IL 5,40,46 GenRad Di-Series Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 18
TIMING DIFFERENCES DIGITAL ANALYSIS Digital circuit The logic circuits outputs are dependent on their input(s) and respond immediately when the input changes Both testers use the same 10us timing to test the output giving the logic circuits ample time to change their output Verified with several typical logic test setup GenRad Di-Series Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 19
TIMING DIFFERENCES ANALOG ANALYSIS Analog circuit Typical analog circuits in this project use logic circuits to directly control the analog circuit's input Allows each tester to use digital stimulus to control the analog circuits with precise timing Di-Series Card results showing - pin 40 driven high - waiting 15ms - driving pin 40 low - causing the input into the 20ms latch to go low Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 20
TIMING DIFFERENCES CLOCK IS SPECIAL Genrad digital commands execute in 40 microseconds CLOCK statement toggles at its own timing CLOCK timing not documented Verified GenRad s Clock is a fixed pattern 8us high and 8 us low Resolution Add second timing set on Di-Series to be assigned to clock pins TSET 0 is set to 40us period while TSET 1 is set to 8us. Whenever the setclock() function is called the TSET is changed from 0 to 1 Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 21
EXECUTION DIFFERENCES Di-Series Load up the patterns and then execute dynamic burst GenRad - executed statement by statement Patterns are not preloaded Decision making in the middle of a pattern is part of timing The X statement is part of the timing Resolution Insert patterns to account for GenRad decision making delay At X statement, insert extra pattern Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 22
TESTER POWER DIFFERENCES GenRad Power supply had a hardcoded/hardware current limit of 20mA Tester can drive 500mA per channel Test was designed to turned on the digital channels to provide extra power when the board needed it S9100 Tester Power supplies current limit can be programmed Di-Series drives 80mA Resolution Removed code using digital channel to assist power-up board Set the power supply current limit based on the UUT design specification Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 23
NEW TEST CAPABILITIES Added Additional tests Shorts and Opens Tests Current Limiting Tests Voltage Measurement Improved Test Diagnostics Detailed Failure Information Improved Component Failure Information Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 24
INTEGRATION - PUTTING IT ALL TOGETHER Pieces to Integration Translated Test Program Code Test Studio TPS Project Added Tests Test with Simulation Test the lower level implementation Test Drivers Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 25
TPS TRANSLATED INTEGRATION & VALIDATION Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 26
WELCOME TO ILLINOIS Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 27
ACCEPTANCE TASKS ITA design review Translator validation Each TPS source code compare / Validation Don t take the engineer(s) word for it ITA self test Passing known good boards Fault insertion and detection Prove it can catch faults Demonstrates failure logging Hands-on customer training Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 28
VALIDATION CHALLENGES Known Good Boards are Hard to Come By Timing Matters Test Results Not Correlating Between Testers UUT Configured Improperly Fault Inject Issues Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 29
KNOWN GOOD BOARD HARD TO COME BY Some boards were at unknown states Some boards required calibration Some boards identified incorrectly (labeled wrong) Some boards with components out of spec Capacitor out of tolerance Supposed to be 0.47uF, but on the board was a 0.61uF Caused timing problem Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 30
TIMING DOES MATTER! Spectrum test execution is too fast for the UUT to keep up GenRad system is slow enough not to see this problem UUT design specified the requirement of minimum settling time between test bursts Resolution Add a delay of 30ms delay to comply with UUT specification of 3% max duty cycle on the line Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 31
TEST RESULTS NOT CORRELATING BETWEEN TESTERS One variant of UUT failed on Spectrum, but passed on GenRad Power input fluctuates on the Failed UUT UUT Drawing Power from DI Cards Related to Power Differences Mentioned Earlier Drive Monitor Pin Failure Only Resolution Change Drive Monitor to Drive Only on the failed pin A working variant with clean output A failed variant with transformers cores being saturated Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 32
UUT BOARD NOT CONFIGURED PROPERLY Compared similar RC circuit between failed UUT and a passing UUT; computed the capacitive value Concluded the adjustable resistors on the failed UUT were not set to the correct values and need to be adjusted to values similar to the passing UUT s resistor values Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 33
DEFAULT PIN STATE MATTERS Default state of channels matters On the GenRad tester, the tri-stated pins drift HI On the DI, the tri-stated pins were pulled to VCOM, in this case were set to LO Resolution Match the GenRad behavior and fail the same pin under the fault injection condition Modified the tester initial setup to ensure the proper pin is pulled up to HI when it is not driven This modification done in the Shared Emulation Library No re-translation required Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 34
BOARD POWER OFF BOARD STILL RUNNING!? Board power off but charged by capacitors GenRad does not meet board specification Complying caused pass when it should fail Resolution SOF test will catch the missing fuse before executing functional test White paper to document the difference Leave Spectrum test as it GenRad Di-Series Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 35
RECAP The problem The solution Implementation Debug and Validation Lessons Learned Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 36
WHAT HAVE WE LEARNED? TPS rehost means Matching the old tester, for better or for worse We have to prove the tests are equivalent for both systems Emulating lower performance hardware is harder than you think White papers! A lot of them! Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 37
HOW DO WE THINK ABOUT OUR APPROACH? TPS translator is an adaptive learning process Existing GNU tools make this easier Development takes longer than expected because of continuous improvement TPS translator + Tester Emulation is efficient for multiple TPS Rehost Provided traceability Provided consistency across all TPS Provided easy code change TPS translator can t replace people (yet!) There are always special conditions Hands-on tester characterization required Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 38
QUESTIONS? T H AN K Y O U Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 39
ENCORE - BONUS SLIDE Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 40
SHAMELESS PLUG JOIN ASP S WIKI w w w. a s p - s u p p o r t. c o m / w i k i Teradyne Users Group Conference April 30 May 2, 2012 Hilton Head, SC 41