CALIFORNIA STATE UNIVERSITY NORTHRIDGE Testing Framework of Virtex-4 FPGA Burn In board A graduate project submitted in partial fulfillment ofthe requirements Forthe degree of Masters of Science In Electrical Engineering By Parth Patel December 2012 The graduate project of Parth Patel is approved: Dr. Ali Amini Date Dr. Kourosh Sedghisigarchi Date Dr. Ramin Roosta, Chair Date California State University, Northridge ii Acknowledgement It was almost impossible without incredible help and constant encouragement from ECE (Electrical & Computer Engineering Department) faculty members, family and friends. My special thanks to Dr. Ramin Roosta for giving me an opportunity to work under his excellent guidance while giving me an exposure to real world challenges. This experience will lead me to further success in future. Thanks to Dr. Ali Amini and Dr. Kourosh Sedghisigarchi for their guidance and expert advices for making my project work successful. Finally I dedicate this project to my parents Bharat Patel &Varsha Patel and my sister Anna Patel for their endless help to make my graduation successful. I could not expect any better than this. iii Table of Contents Signature Page.....................................................................................................................ii Acknowledgement .............................................................................................................iii List of Figures .....................................................................................................................v Abstract...............................................................................................................................vi CHAPTER 1: Introduction……………………………………………………………….1 CHAPTER 2: History of Burn in Test ………………………………………………...…5 CHAPTER 3: Testing framework ………………………………………………………..7 CHAPTER 4: ML403 evaluation board features…………………………………………9 CHAPTER 5: Testing Chamber Setup…………………………………………………..11 CHAPTER 6: Xilinx Design tools…………………………………………….………...14 CHAPTER 7: HTML Code for testing framwork………………………………………16 CHAPTER 8: Summary and Conclusion………………………………………………..29 REFERENCES………………………………..….…………………………………….30 iv List of Figures Figure1.1 “The Bathtub Curve” [10]………………………………………………...……1 Figure1.2 “Infant Mortality Curve - Failure Rate vs. Time” [10]………………………...2 Figure1.3 Design Overview………………………………………………………….……3 Figure1.4 Design flow……………………………………………………………….……4 Figure2.1 “Virtex 2 FPGA Burn In test Hardware” [1]………………………….……….5 Figure3.1 Testing Framework template…………………………………………………..6 Figure4.1 “ML-403 Xilinx Virtex 4 Evaluation board”……………………………….….9 Figure 5.1 heating oven/chamber………………………………………………………...11 Figure5.2 heating oven/chamber testing space……………………………………….….12 Figure6.1 Xilinx platform studio design settings…………………………………….….14 Figure6.2 Xilinx platform studio component address for mapping ………………….….15 Figure7.1 CMD console ping test to board IP address……………………………….….16 Figure7.2 Testing framework homepage………………………………………………...17 Figure7.3 Testing framework component testing page……………………………….…19 Figure7.4 Testing setting for RAM………………………………………….………..…23 Figure7.5 Testing setting for SRAM………………………………………………….…25 Figure7.6 Testing setting Block RAM…………………………………………………..27 v Abstract Testing Framework of Virtex-4 FPGA Burn In board By Parth Patel Master of Science in Electrical Engineering Virtex-4 PFGA Burn In test is one of the most important tests which determine the overall reliability of FPGA (Field Programmable Gateway Array). The main purpose of the Burn In board is to test Virtex-4 FPGA chip at 125 Degree Celsius, by doing this test we would be determining the performance grade of the FPGA to be successfully usable in Space and Military applications. In order to make test successful it was absolutely necessary to have a framework or a reliable method of getting the test done efficiently. To do so it shall serve a GUI (Graphical User Interface), in overview a GUI in form of a webpage where you can send test vectors and receive it back while burn in board is inside the chamber. This webpage shall be access by any browser and it can be accessed anywhere since it will be internet based. Also this enhances possibilities of future Virtex Series FPGA’s burn in test. vi CHAPTER 1: Introduction Burn in Test Burn in test is the process of determining whether the component will work properly before putting them in service. In this test components are tested at higher temperature to see their ultimate working capabilities. This test will determine which of the system will not work under those higher temperature situations and fail under “bathtub curve” which will be determining chip or any system reliability. [9][10] “Bath Tub Curve” “Bath tub Curve” is being used to determining any products life span or life cycle. It has three major components as per below. 1) “Infant Mortality” 2) “Normal Life (Useful Life)” 3) “End of Life Wear-Out” As shown in figure 1.1 “Bath tub curve” has above mentioned components and how it affects the whole product life cycle or product reliability. [9] [10] Figure 1.1: “The Bathtub Curve” [10] 1 “Infant Mortality” [10] It’s a common problem being occurred in manufacturing of products due to Defect in manufacturing process. It means when product is supplied to customer it is “Dead on arrival”. This problem is totally unaccepted due to leading down customer Satisfaction. In order to resolve this issue following steps should be taken. 1234- Well test product before launching in to market Do stress testing of product to know it’s limit High temperature stress test or “Burn in test” might help knowing product limit Making product to fail at extreme situations will determine product life So by following above stepsproduct manufacturing and test over time should have data as represented in figure 1.2 [10]. Figure 1.2: “Infant Mortality Curve - Failure Rate vs. Time” [10] 2 Burn in test typical setup Burn In test is an environmental test for FPGA chips, to determine the overall redundancy. In burn in test FPGA chips shall be tested at higher temperature ranges around 125 Degree Celsius. While the FPGA is being tested at higher temperature sending test vectors and receiving it back and forth for several hours or sometimes several consecutive days determines that the particular FPGA has passed the burn in test and it’s ready for military and aerospace applications. Figure1.3Design Overview 3 Embedded system Design flow Figure 1.4 represents design flow for any typical embedded system development process. For ease of understating it has been divided in to 4 stages. 1) 2) 3) 4) Design stage Circuit & PCB design stage Software design stage Testing stage All of the above mentioned stages have same importance. Starting from the design stage as you can see the figure 1.4 the application has to be laid out with all necessary peripherals. If it’s an embedded system we decide which microprocessor or microcontroller will be used. All following stages has its own importance in embedded system design process flow as described in figure 1.4. Figure1.4Design flow 4 CHAPTER 2: History of Burn in Test In “California State University Northridge (CSUN)” Burn in test for FPGA series is running from a long time. Around year 2006 some of the Electrical Engineering students started to working on “Burn in test for Virtex 2 FPGA” [1]. The goal was to test FPGA at 125 degree Celsius in an oven for at least 12 hours. At the time of testing a FPGA chip is putted under high stress temperature to verify the overall reliability by sending and receiving test vectors. Any simple circuit like RAM or SRAM can be implemented with VHDL or Verilog code. These circuits should be able to communicate with some kind of communication protocol to be able to record the test vectors and results since it’s a long test and failure could happen any time. Figure 2.1: “Virtex 2 FPGA Burn In test Hardware” [1] Figure 2.1 is a setup of for Virtex 2 FPFA Burn In test explained by “Shant Moses” a previous CSUN(California State University Northridge) student in 2006. [1] Communication with main board and computer should be efficient enough since burn in board circuit will be inside the oven at 125 degree Celsius. Only wires can be pulled out from the heating chamber to send and receive test vectors, to get data about internal and external board temperature using some kind of framework. In the earlier version of the Virtex 2 FPGA testing was successfully done using serial protocol communication with some limitations. Those limitations were testing station has to locally connected, limitation due to length of serial communication for example DB-9 cable cannot be extended more than its standard length, from computer end user has to write a C or C# programming script on top of the developed hardware. Serial communication can be established by UART (Universal Asynchronous Receive and 5 Transmit) protocol or using SPI (Serial Peripheral Interface). Virtex 2 testing was done by UART programing and writing a C# script to have a GUI (Graphical User Interface) [4]. For Virtex 4 series FPGA from Xilinx is the next generation chips, 2 years ago numbers of students started to working on Burn in board with different parts to be implemented. Since circuits will be different than Virtex 2 FPGA Burn in board it was easy to change the testing platform to make it more efficient than the previous generation chips[2] [3] [4] [5]. Instead of Serial peripheral interface I recommended to have an Ethernet Protocol which can be easily replaced on the existing circuit. By adding Ethernet port Virtex 4 Burn in board does not need DB-9 pin port or communication since Ethernet protocol has up to 10GB data transfer receive and sending capacity. Another advantage of Ethernet protocol is once the board is connected through CAT-5 cable to any computer it can be server and any authorized user from anywhere who has internet access will be able to run test and be able to see results, which makes this test enhances mobility and eliminated the local testing set up issue. Furthermore Virtex 4 Burn in board has been designed and verified using PCB and Circuit design Software available in lab,the board is in its final assembly state. We are in the process of getting quotes for assembly and PCB design. When board will become available for testing my framework will be able to test the whole design in the heating oven. The goal of the Virtex 4 burn in board testing is to be able to determine will the FPGA chip survive at 125 degree Celsius so can be used in Aero Space and Military applications without any temperature outage issues [7]. 6 CHAPTER 3: Testing framework Testing framework is an advance way of testing any embedded systems. It provides an automated way of testing platform which is subjected to change in the future. Having testing framework shall help any long term projects to be tested for long time which eliminates human dependencies. For example a platform needs to be tested for continues 60 hours, test vectors and results needs to be stores every few minutes. At this time automated testing framework help makes test very efficient and accurate. Figure3.1 Testing Framework template Figure 3.1 shows basic components of any automated testing framework. The basic component of testing framework is an “Eclipse environment” which can combine hardware components and software components on the same platform. On the top of the “eclipse environment”you need an engine to communicate with external peripherals and logic units. As shown in the figure 3.1to access object repository “eclipse environment” needs to be connects threw the concurrent interface. Once it is connected it can send and receive data in test vector according to the communication protocols. 7 The benefits of having a testing framework are as per below 1) Easily modifiable 2) Automated way of testing any embedded systems 3) Less hardware dependencies 4) Error correction algorithm can save failure of test 5) No human error involved at the time of testing 6) Changing a hardware platform will not affect testing framework 7) Same framework works with other hardware platform with minor changes. Test vectors for this project shall be any small FPGA components for example, 1. SRAM (Serial Random Access Memory) 2. BRAM (Block of Random Access Memory) 3. RAM (Random Access Memory) 8 CHAPTER 4: ML403 evaluation board features This project has been developed on “Xilinx ML403 Evaluation platform” as shown in the figure. It has so many peripherals and features shall be developed for making different applications. Out of all available features this project needs Ethernet port, Serial DB-9 port, JTAGdebugging port, SD card Slot, Expansion headers. Figure4.1 “ML-403 Xilinx Virtex 4 Evaluation board” [6] 1. Ethernet port 2. VIRTEX 4 FPGA 3. Serial port DB-25 4. Serial port DB-9 5. USB A 9 6. JTAG connector 7. SD card slot 8. System selector switch 9. Flash or ACE selector switch 10. Power on /off switch 11. Expansion headers 12. Reset switch 10 CHAPTER 5: Testing Chamber Setup The burn in test will be performed in the oven/chamber shown in the figure below. California State University Northridge has this chamber in FPGA/ASIC lab located in Jacaranda Building. This Chamber has never been operated before so I had an opportunity to make it ready for the test whenever the hardware becomes available. Figure 5.1 heating oven/chamber Figure 5.1 shows oven/chamber has an operating capacity up to 300 degree Celsius,which is more than enough for our purpose since we are testing this for military and aerospace application operating range. The Standard military and aerospace operating range is125 degree Celsius. This chamber has been designed for high temperature stress test so it has upper and back holes to transport the wires through it. As you can see in theFigure 5.1 11 has upper hole which can be sealed with sliding mechanism. We will need to have an Ethernet CAT 5cableto pass through that whole to be attached to the computer. Figure 5.2 heating oven/chamber testing space Figure 5.2 shows space inside the chamber where actual burn in board will be tested. This chamber has automatic timer setting and temperature rising falling with respect to time features. As you can see in the right hand side corner of the chamber a touch screen LCD has been attached to control this oven as per test requirement. 12 In order to be prepared to get ready for final burn in test I run this chamber for short period of this to make sure everything is working and chamber is heating up to required temperature. Also this testing chamber has a GPIB (General Purpose interface bus) connection which can be connected to the computer to automate the operation. Instead of entering manually a lab view code can be written to make the whole testing automated. Lab view automation provides reliable means of testing framework with some extended features. 13 CHAPTER 6: Xilinx Design tools “Xilinx design tools 13.1” or later version is required for this project to work. This design is based on“PowerPC 405 Processor” which is Virtex-4 FPGA Embedded Processor.[8] Figure 6.1 Xilinx platform studio design settings 14 Figure 6.2 Xilinx platform studio component address for mapping 15 CHAPTER 7: HTML Code for testing framwork Figure 7.1 CMD console ping test to board IP address Figure 7.1 is a screen shot of CMD console shows ping test to Virtex 4 Evaluation platform. If you get reply back from the IP address that means Ethernet port and connection has been successfully established. If you get an error message or destination host unreachable message that means connection problem or error. Note: Board IP address shall be assigned as per user’s requirement. 16 Figure 7.2 Testing framework homepage <body bgcolor="silver"> <p> &nbsp;</p> <p> &nbsp;</p> <p> <title></title> </p> <h1 style="text-align: center;"> <span style="font-size:26px;">Testing Framework of Virtex-4 FPGA Burn In Board</span></h1> 17 <p style="text-align: center;"> <span style="font-size:26px;"><strong><span style="color:#ff0000;">Californa State University, Northridge</span></strong></span></p> <p style="text-align: center;"> <span style="font-size:22px;"><span style="color:#000000;">ECE DEPARTMENT</span></span></p> <p style="text-align: center;"> <span style="font-size:20px;">By: Parth Patel</span></p> <p style="text-align: center;"> <span style="font-size: 20px;">ID: 103652755</span></p> <p style="text-align: center;"> <span style="font-size:20px;">Guided By: Dr. Ramin Roosta</span></p> <p style="text-align: center;"> &nbsp;</p> <p style="text-align: center;"> &nbsp;</p> <p style="text-align: center;"> <u><span style="font-size:20px;"><strong><a href="parth project/PAGE 2.htm">START TEST</a></strong></span></u></p> </body> 18 Figure 7.3 Testing framework component testing page <body bgcolor="silver"> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> 19 <title></title> </p> <h1 style="text-align: center;"> <span style="font-size:26px;">Testing Framework of Virtex-4 FPGA Burn In Board</span></h1> <p style="text-align: center;"> <span style="font-size:24px;">SAMPLE TESTING COMPONENTS</span></p> <p style="text-align: center;"> <span style="font-size:20px;">Choose Test Components</span></p> <table align="center" border="1" cellpadding="1" cellspacing="1" style="width: 750px;"> <tbody> <tr> <td style="text-align: center;"> <span style="font-size:18px;"><strong>Component 1</strong></span></td> <td style="text-align: center;"> <span style="font-size:18px;"><strong>Component 2</strong></span></td> <td style="text-align: center;"> <span style="font-size:18px;"><strong>Component 3</strong></span></td> </tr> <tr> 20 <td style="text-align: center;"> <p> <strong style="font-size: 16px;">RAM</strong></p> </td> <td style="text-align: center;"> <span style="font-size:16px;"><strong>SRAM</strong></span></td> <td style="text-align: center;"> <span style="font-size:16px;"><strong>BLOCK RAM</strong></span></td> </tr> <tr> <td style="text-align: center;"> <p> &nbsp;</p> <p> <span style="font-size:22px;"><input name="TEST 1" type="button" value="TEST 1" /></span></p> </td> <td style="text-align: center;"> <p> &nbsp;</p> <p> 21 <span style="font-size:22px;"><input name="TEST 2" type="button" value="TEST 2" /></span></p> </td> <td style="text-align: center;"> <p> &nbsp;</p> <p> <span style="font-size:22px;"><input name="TEST 3" type="button" value="TEST 3" /></span></p> </td> </tr> </tbody> </table> <p style="text-align: center;"> &nbsp;</p> </body> 22 Figure 7.4 Testing setting for RAM <body bgcolor="silver"> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> 23 <title></title> </p> <h1 style="text-align: center;"> <span style="font-size:26px;">Testing Framework of Virtex-4 FPGA Burn In Board</span></h1> <p style="text-align: center;"> <br /> <font size="5">Testing Settings For RAM</font></p> <p style="text-align: center;"> <font size="5">Set time:&nbsp;</font><input name="RESULT1" type="text" value="" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<font size="5">&nbsp;Temperature:&nbsp;</font><input name="RESULT1" type="text" value="" /></p> <p style="text-align: center;"> &nbsp;</p> <p style="text-align: center;"> <span style="font-size:24px;"><input name="Send Test Vector" type="button" value="Send Test Vector" /></span></p> <p> &nbsp;</p> </body> 24 Figure 7.5 Testing setting for SRAM <body bgcolor="silver"> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> 25 <title></title> </p> <h1 style="text-align: center;"> <span style="font-size:26px;">Testing Framework of Virtex-4 FPGA Burn In Board</span></h1> <p style="text-align: center;"> <br /> <font size="5">Testing Settings For SRAM</font></p> <p style="text-align: center;"> <font size="5">Set time:&nbsp;</font><input name="RESULT1" type="text" value="" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<font size="5">&nbsp;Temperature:&nbsp;</font><input name="RESULT1" type="text" value="" /></p> <p style="text-align: center;"> &nbsp;</p> <p style="text-align: center;"> <span style="font-size:24px;"><input name="Send Test Vector" type="button" value="Send Test Vector" /></span></p> <p> &nbsp;</p> </body> 26 Figure 7.6 Testing setting Block RAM <body bgcolor="silver"> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> &nbsp;</p> <p> 27 <title></title> </p> <h1 style="text-align: center;"> <span style="font-size:26px;">Testing Framework of Virtex-4 FPGA Burn In Board</span></h1> <p style="text-align: center;"> <br /> <font size="5">Testing Settings For BLOCK RAM</font></p> <p style="text-align: center;"> <font size="5">Set time:&nbsp;</font><input name="RESULT1" type="text" value="" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<font size="5">&nbsp;Temperature:&nbsp;</font><input name="RESULT1" type="text" value="" /></p> <p style="text-align: center;"> &nbsp;</p> <p style="text-align: center;"> <span style="font-size:24px;"><input name="Send Test Vector" type="button" value="Send Test Vector" /></span></p> <p> &nbsp;</p> </body> 28 CHAPTER 8: Summary and Conclusion In conclusion testing framework will be very useful at the time of actual testing stage since it has all necessary components implemented for testing needs. Replacing the UART (Universal Asynchronous Receiver and Transmit) framework to Ethernet 10/100 GB transmission protocolhas made the testing very handy and easy. It will be very easy for user to access the framework or getting testing results anywhere any time since it can be access online using particular IP address. Testing results can be stored in a word or excel file format and can be imported to any platform or software since they are standard formats. When working on this testing framework at the time of testing, it had not been provided enough security while accessing on line or over the network. It is recommended that network IP address should be only provided to limited know users. It can obviously affect the testing result and may damage the running hardware platform. Another solution shall be to prevent the security and privacy of test it is recommend adding some network level security framework then it will have no issues or possible threat of misuse. 29 REFERENCES [1] Moses, S (2006). An automated high temperature stress testing of FPGAs using a Dynamic burn-in platform Retrieved March 2012 from DR. RaminRoosta [2] Bermudez, J Design and Implementation of a Burn in Board for Xilinx Virtex-4 FPGA Retrieved March 2012 from DR. RaminRoosta [3] Ponce, R Virtex 4 LX200 Automated Temperature Stress Test Serial Interface and Test Control Logic Design Implementation Retrieved March 2012 from DR. RaminRoosta [4] Savra, R. Dynamic Burn-in Test of Xilinx Virtex-4 FPGA Software Application Retrieved March 2012 from DR. RaminRoosta [5] AliteaLaya Ramos, Bram & DSP Design Configuration for Burn-In Test of Virtex-4 FPGA Retrieved March 2012 from DR. RaminRoosta [6] http://www.xilinx.com/support/documentation/boards_and_kits/ug080.pdf Retrieved March 2012 [7] http://www.landandmaritime.dla.mil/downloads/milspec/docs/mil-std883/std883.pdf Retrieved April 2012 [8] http://www.xilinx.com/support/documentation/application_notes/xapp434.pdf Retrieved April 2012 30 [9] http://en.wikipedia.org/wiki/Burn-in Retrieved Nov 2012 [10] Dennis J. Wilkins, ―The Bathtub Curve And Product Failure Behavior Part One—The Bathtub Curve, Infant Mortality And Burn-In,‖ ReliabilityHotwire, Issue 21, November 2002.http://www.weibull.com/hotwire/issue21/hottopics21.html Retrieved Nov 2012 31