Hi there, I am trying to gain a deeper understanding of the way testing is conducted on FPGA devices. I am interested in BIST testing for dynamic faults, not manufacturing testing. My question is: how exactly can you apply a test vector (or even just a 1 or 0) to an interconnect line? Can you just connect the output of a LUT to the wire and observe the output? I am asking this because of all the documentation I have read, nobody mentions where they get the test vectors from. Am i just being stupid and failing to see the obvious here? Thanks very much
BIST FPGA testing - Applying a test vector
Started by ●January 20, 2004
Reply by ●January 20, 20042004-01-20
BrakePiston wrote:> Hi there, I am trying to gain a deeper understanding of the way > testing is conducted on FPGA devices. I am interested in BIST testing > for dynamic faults, not manufacturing testing.FPGA *devices* are tested at the factory. The FPGA design function is tested using simulation. Dynamic faults are eliminated by using synchronous design style and by meeting static timing requirements.> > My question is: how exactly can you apply a test vector (or even just > a 1 or 0) to an interconnect line? Can you just connect the output of > a LUT to the wire and observe the output?In theory you can shift any pattern you like into the boundary scan registers on any compliment device. In practice, this requires lots of software to do anything useful. Here we license boundary scan software, but use it only in production for the purpose of finding solder opens and shorts on circuit boards.> I am asking this because of all the documentation I have read, nobody > mentions where they get the test vectors from. > > Am i just being stupid and failing to see the obvious here?I expect that the number of people actually doing functional test of fpgas using boundary scan vectors is near zero. It would be very difficult and very slow. -- Mike Treseler
Reply by ●January 20, 20042004-01-20
Each individual Xilinx FPGA is 100% functionally and performance tested ( at high temperature and low Vcc). We drive tens of millions of test vectors at hundreds of different device configurations, trying to test every little part of the device. We may not reach exactly 100%, but we are extremely close to it. This is a large effort, and it is based on almost 20 years of experience with our parts, and on intimate knowledge of all their features. If any device misses one test, it gets scrapped. That's the way we do it at Xilinx, and I am convinecd other manufacturers do it similarily. The days of "incoming inspection" by the customer are long gone... I do not quite understand what BrakePiston wants to achieve. Maybe he can elaborate... Peter Alfke Mike Treseler wrote:> > BrakePiston wrote: > > Hi there, I am trying to gain a deeper understanding of the way > > testing is conducted on FPGA devices. I am interested in BIST testing > > for dynamic faults, not manufacturing testing. > > FPGA *devices* are tested at the factory. > The FPGA design function is tested using simulation. > Dynamic faults are eliminated by using > synchronous design style and by meeting static timing requirements. > > > > My question is: how exactly can you apply a test vector (or even just > > a 1 or 0) to an interconnect line? Can you just connect the output of > > a LUT to the wire and observe the output? > > In theory you can shift any pattern you like into the boundary scan > registers on any compliment device. In practice, this requires lots > of software to do anything useful. Here we license boundary scan software, > but use it only in production for the purpose of > finding solder opens and shorts on circuit boards. > > > I am asking this because of all the documentation I have read, nobody > > mentions where they get the test vectors from. > > > > Am i just being stupid and failing to see the obvious here? > > I expect that the number of people actually doing functional test > of fpgas using boundary scan vectors is near zero. It would be > very difficult and very slow. > > -- Mike Treseler
Reply by ●January 20, 20042004-01-20
Peter Alfke <peter@xilinx.com> writes:> If any device misses one test, it gets scrapped. > That's the way we do it at Xilinx,Really? It doesn't get used for an EasyPath design? It thought the point of EasyPath was that you could sell devices that don't pass full functional test.
Reply by ●January 20, 20042004-01-20
Eric's statement is correct. When we have a customer who has a "frozen" design, and wants to buy large quantities of FPGAs at a significantly lower price, we create a program that compares the error file with that customer's specific design, and, if the failure does not affect that user's design in any way, the part gets specially marked and sold into that application. That's called EasyPath, since it offers an easy path to lower cost, without any timing differences nor the need to re-verify the design ( as was required by the now obsolete old Xilinx Hardwire and also by the not-so-old Altera alternative, two methods that really change the chip completely and offer a "functional alternative" with the possibility of nasty timing surprises ). I did not mention this, becauseEasyPath is a special case, and a fairly new development. All these "cheap" variations make the FPGA non-reconfigurable and must, therefore, be described as special cases ... Peter Alfke, Xilinx Applications =========================== Eric Smith wrote:> > Peter Alfke <peter@xilinx.com> writes: > > If any device misses one test, it gets scrapped. > > That's the way we do it at Xilinx, > > Really? It doesn't get used for an EasyPath design? It thought the > point of EasyPath was that you could sell devices that don't pass full > functional test.
Reply by ●January 20, 20042004-01-20
Mike Treseler wrote:> BrakePiston wrote: > >> Hi there, I am trying to gain a deeper understanding of the way >> testing is conducted on FPGA devices. I am interested in BIST testing >> for dynamic faults, not manufacturing testing.Can you clarify what you mean by 'dynamic fault' - is this a failure to config, or a timing violation, or ??> > > FPGA *devices* are tested at the factory. > The FPGA design function is tested using simulation. > Dynamic faults are eliminated by using > synchronous design style and by meeting static timing requirements.and by regular updates to the device speed/timing files, that the simulation SW engine uses :)>> >> My question is: how exactly can you apply a test vector (or even just >> a 1 or 0) to an interconnect line? Can you just connect the output of >> a LUT to the wire and observe the output?Some FPGA SW allows a 'flying probe' to be compiled with the design, rather like the 'Scope probe onto a PCB with a sea of TTL gates' many years ago. Mainly used for early design cycle debug problems. You design can (should?) also include test modes, allowing things like preload and readback. For example, if your FPGA is a slave to a Micro, it can be usefull for POST (and debug) uses to include read-back even of write registers. Slightly more logic is used, but rarely does that bump you into the next device.> > > In theory you can shift any pattern you like into the boundary scan > registers on any compliment device. In practice, this requires lots > of software to do anything useful. Here we license boundary scan software, > but use it only in production for the purpose of > finding solder opens and shorts on circuit boards. > >> I am asking this because of all the documentation I have read, nobody >> mentions where they get the test vectors from. >> >> Am i just being stupid and failing to see the obvious here? > > > I expect that the number of people actually doing functional test > of fpgas using boundary scan vectors is near zero. It would be > very difficult and very slow.We do Physical Vector Test a lot with SPLD/CPLD designs, but the FPGAs have a slightly different feature mix. FPGAs have much higher logic/pin ratios, and the high reliance on simulation puts pressure on the vendors to get the simulation files right asap. -jg
Reply by ●January 21, 20042004-01-21
Hello, Peter Alfke <peter@xilinx.com> wrote: [OP wants to know how to do BIST for dynamic faults on FPGAs]> Each individual Xilinx FPGA is 100% functionally and performance tested > ( at high temperature and low Vcc). We drive tens of millions of test > vectors at hundreds of different device configurations, trying to test > every little part of the device.Well, I believe you're achieving 100% of stuck-at failures, but do you really do some tests to achieve a 100% coverage for delay faults? I'm just curios because I know no way doing propper delay tests without a lot of additional testing hw on chip. But maybe there are some improvements made the last three years. Anyway, you can't do tests before selling a fpga, that replaces Bist for dynamic faults in the way I understood dynamic faults. Dynamic faults will occure sometime during lifetime of the fpga due to material aging or (especially in SRam based Fpgas) due to single event effects. bye Thomas
Reply by ●January 21, 20042004-01-21
Thank you very much for all your replies. I think I better clarify a few statements! :-) First of all: I have been looking at academic research in the fault and defect tolerance field. - Defect tolerance is aimed at, say, yield improvement whereby a chip with a specific defect can still be used in certain types of applications. Xilinx's Easypath solution is seen by academics as a defect tolerance problem. Or so I seem to understand. - Fault tolerance is aimed at dynamic faults, these are faults developed during the lifetime of a device, as Thomas Stanka explained in his post. All of the project I have looked at have described a way to detect and diagnose (locate) a fault. For what I have understood, there are 3 different ways of conducting these tests, with an unprogrammed FPGA. - Reconfigure the FPGA to implement a test circuit - Design for Testability (introduce extra hardware into the FPGA with the sole aim of testing) - Iddq testing I am interested exclusively in the first of these options. Now, these tests can be further subcategorized into BIST and non-BIST tests. Non-BIST tests require an external "test driver" which generates and analyses the test vectors. BIST, on the other hand, uses different configurations (stored in a ROM outside teh chip) to do all the testing on-chip without need for extra hardware. Now, a possible scenario where I would like to carry these tests is in mission critical applications, where I need to know that the device is working properly. I am not, at this stage, interested in having the chip on- or off-line during testing. Another possible scenario is (very unrealistic, of course) if I buy a Easypath device from Xilinx and want to use it for a different design than the original one. I would then have to test the device, and find where the defect is. So my original question was: if I want to test a wire between CLB A and CLB B, how would I configure CLB A to force a 1 (or a 0) onto the wire? All the work I have seen (academic research) does not tell me how the test vectors are applied, the only say how they are analysed. I would like to point out that I understand the limitations of these types of tests, and I do not want in any way breach any copyright from any manufacturer. I am just an FPGA enthusiast. Best regards to all Nick C On Tue, 20 Jan 2004 17:05:50 +0000, BrakePiston <brakepiston@REMOVEyahoo.co.uk> wrote:>Hi there, I am trying to gain a deeper understanding of the way >testing is conducted on FPGA devices. I am interested in BIST testing >for dynamic faults, not manufacturing testing. > >My question is: how exactly can you apply a test vector (or even just >a 1 or 0) to an interconnect line? Can you just connect the output of >a LUT to the wire and observe the output? > >I am asking this because of all the documentation I have read, nobody >mentions where they get the test vectors from. > >Am i just being stupid and failing to see the obvious here? > >Thanks very much >
Reply by ●January 21, 20042004-01-21
I think I gave you the Xilinx perspective already. We configure each device multiple times, and apply millions of test vectors. How we figured out these configurations and test vectors is beyond an e-mail message. It's the result of many engineers working for over 15 years on this problem, and continuously refining it. Our goal is 100% test coverage, and we are very, very close to that goal. Peter Alfke ============================= BrakePiston wrote:> > Thank you very much for all your replies. > > I think I better clarify a few statements! :-) > > First of all: I have been looking at academic research in the fault > and defect tolerance field. > - Defect tolerance is aimed at, say, yield improvement whereby a chip > with a specific defect can still be used in certain types of > applications. Xilinx's Easypath solution is seen by academics as a > defect tolerance problem. Or so I seem to understand. > - Fault tolerance is aimed at dynamic faults, these are faults > developed during the lifetime of a device, as Thomas Stanka explained > in his post. > > All of the project I have looked at have described a way to detect and > diagnose (locate) a fault. For what I have understood, there are 3 > different ways of conducting these tests, with an unprogrammed FPGA. > > - Reconfigure the FPGA to implement a test circuit > - Design for Testability (introduce extra hardware into the FPGA with > the sole aim of testing) > - Iddq testing > > I am interested exclusively in the first of these options. Now, these > tests can be further subcategorized into BIST and non-BIST tests. > Non-BIST tests require an external "test driver" which generates and > analyses the test vectors. BIST, on the other hand, uses different > configurations (stored in a ROM outside teh chip) to do all the > testing on-chip without need for extra hardware. > > Now, a possible scenario where I would like to carry these tests is in > mission critical applications, where I need to know that the device is > working properly. I am not, at this stage, interested in having the > chip on- or off-line during testing. Another possible scenario is > (very unrealistic, of course) if I buy a Easypath device from Xilinx > and want to use it for a different design than the original one. I > would then have to test the device, and find where the defect is. > > So my original question was: if I want to test a wire between CLB A > and CLB B, how would I configure CLB A to force a 1 (or a 0) onto the > wire? All the work I have seen (academic research) does not tell me > how the test vectors are applied, the only say how they are analysed. > > I would like to point out that I understand the limitations of these > types of tests, and I do not want in any way breach any copyright from > any manufacturer. I am just an FPGA enthusiast. > > Best regards to all > > Nick C > > On Tue, 20 Jan 2004 17:05:50 +0000, BrakePiston > <brakepiston@REMOVEyahoo.co.uk> wrote: > > >Hi there, I am trying to gain a deeper understanding of the way > >testing is conducted on FPGA devices. I am interested in BIST testing > >for dynamic faults, not manufacturing testing. > > > >My question is: how exactly can you apply a test vector (or even just > >a 1 or 0) to an interconnect line? Can you just connect the output of > >a LUT to the wire and observe the output? > > > >I am asking this because of all the documentation I have read, nobody > >mentions where they get the test vectors from. > > > >Am i just being stupid and failing to see the obvious here? > > > >Thanks very much > >
Reply by ●January 21, 20042004-01-21
Thomas Stanka wrote:> > Hello, > > Peter Alfke <peter@xilinx.com> wrote: > [OP wants to know how to do BIST for dynamic faults on FPGAs] > > Each individual Xilinx FPGA is 100% functionally and performance tested > > ( at high temperature and low Vcc). We drive tens of millions of test > > vectors at hundreds of different device configurations, trying to test > > every little part of the device. > > Well, I believe you're achieving 100% of stuck-at failures, but do you > really do some tests to achieve a 100% coverage for delay faults? I'm > just curios because I know no way doing propper delay tests without a > lot of additional testing hw on chip. But maybe there are some > improvements made the last three years. > > Anyway, you can't do tests before selling a fpga, that replaces Bist > for dynamic faults in the way I understood dynamic faults. Dynamic > faults will occure sometime during lifetime of the fpga due to > material aging or (especially in SRam based Fpgas) due to single event > effects. > > bye Thomas






