Fault localization is the process of tracing back signals through an integrated circuit to locate the first failing node. This process can be performed using either mechanical probing or electron beam probing. The task of fault localization is heavily dependent on the design of the IC and usually requires individuals knowledgeable about the design of the IC and the test patterns needed to stimulate the IC. Although some tools, such as Schlumberger's Diagnostic Assistant, exist to help automate this process, fault localization is usually a manual task with highly complex ICs.
Proper design and test considerations up front can help reduce the complexity of this task. Techniques such as scan design, IDDQ testing, and structured design and test principles can eliminate many hours of fault isolation later on during design validation and qualification.
Fault localization is necessary to determine the location of the defect. In most cases, the location of the defect is necessary to determine the root cause of failure. It is worth noting, however, that fault localization may not be necessary to give a satisfactory response to the requester. Many times, the requester is satisfied with a determination as to whether the defect is a wafer fabrication problem, a packaging problem, a testing problem, or an end use problem such as EOS/ESD.
Once the IC has been characterized electrically and the packaging material has been removed, the signal should be traced from the failing node back into the IC. At some point, gate causing the incorrect output can be found. While this sounds simple, with the complexity of modern ICs and the high fan outs found on many nodes, this process can get very tedious very quickly. Other non-contact methods, such as voltage contrast, are better suited to handle complicated ICs, but if they are not available, mechanical signal tracing is a very inexpensive alternative.
After the IC is placed in the failing electrical state and contact can be made to the metal or poly layer of interest, the rest is easy. Start from the failing output and trace the signals backward until a node is found in the wrong state. A common way to determine if a node is in the wrong state is to probe the same node on a comparison IC that is in the same electrical state. If possible, placing the two ICs side by side under the same probe station will help facilitate this process. Care must be taken at all times not to damage the IC with the probes.
The most cumbersome part of this process is dealing with complicated branching that takes place on many circuits. Remember that these ICs were not laid out for ease of signal tracing for failure analysis.
These guidelines below assume that you can stimulate the IC with assembly code.
Probe the address strobes to determine whether the failure is a data failure or a control failure. If the failure is a data failure, divide and conquer using a binary search strategy on the line. If the failure is a control failure, probe the status bits for clues as to the location of the failure. Use the status bits as a starting point for a backwards trace.
Probe the address strobe. Next, probe the micro address buslines one at a time. Probe the clocks on the IC and group the signals together in time to evaluate them. Look at the micro address decode boxes to determine the transfer gates to probe. Probe the obvious failure point first (this is probably the bond pad). Next, probe the transfer gates using layout software to drive to the appropriate transfer gate if applicable. Start with the micro address box right before the failure is visible from the pins and work backwards through the vector set.
Obtain the physical layout to electrical data diagram from the designer or product engineer. Next, using the test data results, map the electrical failures into the physical address space. This should allow you to determine if the failure is a single bit, single row, single column, multiple columns, or a block failure. You should also be able to determine if the failure is potentially in the address control logic. Once you know where to look on the IC physically, you can begin examining waveforms using an electron beam probe or mechanical probing. The following is an example of this process.
SN746 failed functional testing with the following pattern. Data at locations (addresses) 0, 192, 256, 704, 768, 1216, 1280, etc. were failing when checkboard, inverse checkboard, and unique address patterns were written and then read. The failures occurred across all eight bits of the data byte in a random fashion. The failure mode indicated that incorrect data were being read from the IC, suggesting a possible problem with addressing.
After exhausting the rapid localization techniques, we then moved to the electron beam probe to begin troubleshooting the three ICs. AN ATE provided stimulus to the IC in the electron beam probe. The diagram below, which describes the physical layout of the memory array, facilitates the following discussion (see Figure 1). The EEPROM uses X and Y decode signals to select rows. The X decode is a set of eight signals based on the values of address lines 6 through 8. The eight Y decode signals are based on the values of address lines 9 through 11. For example, if A8-6 has the value 011, then the X3 signal is high or active, if A8-6 has the value 101, then the X5 signal is active, and so on. The Y signals work in the same fashion as the X signals.
The failure on SN746 (0, 192, 256, 704, 768, etc.) produces the following binary sequence. This corresponds to the address lines of interest, which are A6-A8 (X decode signals). In particular, when the X group of addresses switches from X2 to X3 or from X3 to X4, the data on the first address is incorrect. This would indicate a delay on signal line X3. When signal line X3 was examined in the electron beam probe, a delay was observed after a particular metal 1 - metal 2 contact just before the signal line goes out to the memory array (see Figure 2).
Y | X | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Addresses | A12 | A11 | A10 | A09 | A08 | A07 | A06 | A05 | A04 | A03 | A02 | A01 | A00 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
192 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
256 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
704 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
768 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1216 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
Fault localization is performed usually after faster isolation techniques have been tried. You should first utilize techniques such as light emission, liquid crystal, fluorescent microthermographic imaging, CIVA, and LIVA before performing fault localization. In addition, before setting up for a manual fault isolation effort, check to see if there are any scan or IDDQ based techniques you can first try.
Fault localization using an e-beam probe should be performed before the top glass layer is removed. Fault localization using mechanical probes should be performed after the top glass layer is removed.
Array Test technology designs
IDDQ based fault localization
Electron beam tester waveforms showing the internal node signals related to the fault.