A Same/Different Fault Dictionary: An Extended Pass/Fail Fault Dictionary with Improved Diagnostic Resolution

Similar documents
On Test Generation by Input Cube Avoidance

Full Fault Dictionary Storage Based on Labeled Tree Encoding

REDI: An Efficient Fault Oriented Procedure to Identify Redundant Faults in Combinational Logic Circuits *

Scan-Based BIST Diagnosis Using an Embedded Processor

On Test Generation for Transition Faults with Minimized Peak Power Dissipation

Functional Test Generation for Delay Faults in Combinational Circuits

Outline. Definition. Targeted Defects. Motivation GOAL. Ferhani, RATS/SPRING , Center for Reliable Computing 1

Efficient RT-level Fault Diagnosis Methodology

Adaptive Techniques for Improving Delay Fault Diagnosis

An Efficient Method for Multiple Fault Diagnosis

At-Speed Scan Test with Low Switching Activity

A Diagnostic Test Generation System

Driving Toward Higher I DDQ Test Quality for Sequential Circuits: A Generalized Fault Model and Its ATPG

On Using Design Partitioning To Reduce Diagnosis Memory Footprint

Evaluation of FPGA Resources for Built-In Self-Test of Programmable Logic Blocks

Resynthesis of Combinational Logic Circuits for Improved Path Delay Fault Testability Using Comparison Units

Scalable Controller Based PMBIST Design For Memory Testability M. Kiran Kumar, G. Sai Thirumal, B. Nagaveni M.Tech (VLSI DESIGN)

Diagnostic Testing of Embedded Memories Using BIST

Gate Level Fault Diagnosis in Scan-Based BIST

On Minimizing the Number of Test Points Needed to Achieve Complete Robust Path Delay Fault Testability

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 7, February 2013)

AFault Diagnosis Methodology for the UltraSPARC TM -I. Sridhar Narayanan, Rajagopalan Srinivasan, Ramachandra P. Kunda,

Special ATPG to Correlate Test Patterns for Low-Overhead Mixed-Mode BIST

Collapsing for Multiple Output Circuits. Diagnostic and Detection Fault. Raja K. K. R. Sandireddy. Dept. Of Electrical and Computer Engineering,

An Efficient Test Relaxation Technique for Synchronous Sequential Circuits

Incremental Diagnosis of Multiple Open-Interconnects

TESTING OF FAULTS IN VLSI CIRCUITS USING ONLINE BIST TECHNIQUE BASED ON WINDOW OF VECTORS

N-Model Tests for VLSI Circuits

AN EFFICIENT LOGIC FAULT DIAGNOSIS FRAMEWORK BASED ON EFFECT-CAUSE APPROACH. A Dissertation LEI WU

A New Optimal State Assignment Technique for Partial Scan Designs

Diagnostic Test Vectors for Combinational and Sequential

Using Scan-Dump Values to Improve Functional-Diagnosis Methodology

Diagnostic Test Set Minimization and Full-Response Fault Dictionary

Fault Testing of CMOS Integrated Circuits Using Signature Analysis Method

Chapter 7. Logic Diagnosis. VLSI EE141 Test Principles and Architectures Ch. 7 - Logic Diagnosis - P. 1

Built-In Self-Test for Programmable I/O Buffers in FPGAs and SoCs

Computer-Aided Fault to Defect Mapping (CAFDM) for Defect Diagnosis

Figure 1.1. ROAR architecture. Memory. Reconfigurable Coprocessor. Multithreaded Processor. Interface Bus. I/O system

Bit-Fixing in Pseudorandom Sequences for Scan BIST

On Efficient Error Diagnosis of Digital Circuits

VLSI System Testing. Fault Simulation

Efficient Test Compaction for Combinational Circuits Based on Fault Detection Count-Directed Clustering

Reducing Control Bit Overhead for X-Masking/X-Canceling Hybrid Architecture via Pattern Partitioning

Two Pattern Test Cubes for Transition Path Delay Faults Test for ISCAS-85 C432

ALTERING A PSEUDO-RANDOM BIT SEQUENCE FOR SCAN-BASED BIST

On-Chip Diagnosis for Early-Life and Wear-Out Failures

Functional Fault Equivalence and Diagnostic Test Generation in Combinational Logic Circuits Using Conventional ATPG

Efficient Algorithm for Test Vector Decompression Using an Embedded Processor

Defect Localization Using Physical Design and Electrical Test Information

Single Stuck-At Fault Diagnosing Circuit of Reed-Muller Canonical Exclusive-Or Sum of Product Boolean Expressions

A New Scan Chain Fault Simulation for Scan Chain Diagnosis

SRAM Delay Fault Modeling and Test Algorithm Development

A Partition-Based Approach for Identifying Failing Scan Cells in Scan-BIST with Applications to System-on-Chip Fault Diagnosis

Transition Faults and Transition Path Delay Faults: Test Generation, Path Selection, and Built-In Generation of Functional Broadside Tests

Soft-Core Embedded Processor-Based Built-In Self- Test of FPGAs: A Case Study

Tailoring Tests for Functional Binning of Integrated Circuits

AN OPTIMAL APPROACH FOR TESTING EMBEDDED MEMORIES IN SOCS

Multiple Fault Models Using Concurrent Simulation 1

Built-in Self-Test and Repair (BISTR) Techniques for Embedded RAMs

298 IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, VOL. 35, NO. 2, FEBRUARY 2016

Exact Functional Fault Collapsing in Combinational Logic Circuits

Reconfigurable Linear Decompressors Using Symbolic Gaussian Elimination

Efficiently Utilizing ATE Vector Repeat for Compression by Scan Vector Decomposition

Delay Test with Embedded Test Pattern Generator *

Generation of Compact Test Sets with High Defect Coverage

Improving Encoding Efficiency for Linear Decompressors Using Scan Inversion

WITH integrated circuits, especially system-on-chip

Faults. Abstract. 1. Introduction. * Nur A. Touba is now with the Department of Electrical and Computer Engineering, University of Texas, Austin, TX

Test/Repair Area Overhead Reduction for Small Embedded SRAMs

Deterministic BIST ABSTRACT. II. DBIST Schemes Based On Reseeding of PRPG (LFSR) I. INTRODUCTION

SYNTHESIS OF MAPPING LOGIC FOR GENERATI TRANSFORMED PSEUDO-RANDOM PATTERNS FOR

TIMING-INDEPENDENT TESTING OF CROSSTALK IN THE PRESENCE OF DELAY PRODUCING DEFECTS USING SURROGATE FAULT MODELS *

X(1) X. X(k) DFF PI1 FF PI2 PI3 PI1 FF PI2 PI3

An enhanced barrel shifter based BIST scheme for word organized RAMs (EBBSR).

Parallelized Network-on-Chip-Reused Test Access Mechanism for Multiple Identical Cores

Fault diagnosis of VLSI designs: cell internal faults and volume diagnosis throughput

MULTIPLE FAULT DIAGNOSIS FOR HIGH SPEED HYBRID MEMORY ARCHITECTURE

Very Large Scale Integration (VLSI)

Design for Test of Digital Systems TDDC33

Testing Digital Systems I

BIST-Based Test and Diagnosis of FPGA Logic Blocks

ENG04057 Teste de Sistema Integrados. Prof. Eric Ericson Fabris (Marcelo Lubaszewski)

Contents 1 Basic of Test and Role of HDLs 2 Verilog HDL for Design and Test

Test Set Compaction Algorithms for Combinational Circuits

A Universal Test Pattern Generator for DDR SDRAM *

Use of Hierarchy in Fault Collapsing

An Advanced and more Efficient Built-in Self-Repair Strategy for Embedded SRAM with Selectable Redundancy

RTL Scan Design for Skewed-Load At-Speed Test under Power Constraints

VLSI Architecture to Detect/Correct Errors in Motion Estimation Using Biresidue Codes

Hardware Sharing Design for Programmable Memory Built-In Self Test

Evaluation of the Quality of N-Detect Scan ATPG Patterns on a Processor

FACTOR: A Hierarchical Methodology for Functional Test Generation and Testability Analysis

A Study on the Testing of VLSI Systems Using Reduced Power Consumption Methods

At-Speed On-Chip Diagnosis of Board-Level Interconnect Faults

Low-Power Weighted Pseudo-Random BIST Using Special Scan Cells

Chapter 9. Design for Testability

Self-Repair for Robust System Design. Yanjing Li Intel Labs Stanford University

Conflict Driven Techniques for Improving Deterministic Test Pattern Generation

E-LEARNING TOOLS FOR DIGITAL TEST. S. Devadze, R. Gorjachev, A. Jutman, E. Orasson, V. Rosin, R. Ubar. Tallinn Technical University, Tallinn, Estonia

An Area-Efficient BIRA With 1-D Spare Segments

Transcription:

A Same/Different Fault Dictionary: An Extended Pass/Fail Fault Dictionary with Improved Diagnostic Resolution Irith Pomeranz 1 and Sudhakar M. Reddy 2 School of Electrical & Computer Eng. Electrical & Computer Eng. Dept. Purdue University University of Iowa W. Lafayette, IN 47907, U.S.A. Iowa City, IA 52242, U.S.A. Abstract We describe a new type of fault dictionary called a same/different fault dictionary. The same/different fault dictionary is similar to a pass/fail fault dictionary in that it contains a single bit b i,j for every modeled fault f i and test vector t j. However, in a pass/fail fault dictionary, b i,j is determined by comparing the output vector of the faulty circuit with the output vector of the fault free circuit; while in a same/different fault dictionary, b i,j is determined by comparing the output vector of the faulty circuit with a preselected output vector called a baseline output vector. By selecting appropriately the baseline output vectors for all the test vectors, it is possible to obtain increased diagnostic resolution with a same/different fault dictionary compared to a pass/fail fault dictionary. We describe a procedure for selecting baseline output vectors and present experimental results. 1. Introduction Defect diagnosis is applied to manufactured chips, which are found to be faulty, in order to identify the locations and types of defects present in them [1]. The first step of a defect diagnosis procedure typically determines a set of candidate defect sites. The candidate sites are selected such that modeled faults (typically single stuck-at faults) at these sites produce the observed failing responses of the applied tests, or responses that match them most closely [1]-[23]. Thus, even though the final goal of any defect diagnosis procedure is to determine the location and nature of the defect (such as an open or a bridge), fault diagnosis that considers modeled faults is an important first step in defect diagnosis. There are two types of fault diagnosis procedures that differ in the way they use precomputed information. Dictionary based approaches [2]-[14], also called causeeffect procedures, use a precomputed dictionary that contains information about the responses of modeled faults to the test set applied to the circuit. The observed response of a faulty circuit is compared to the responses stored in the dictionary in order to identify the best matches, and the 1. Research supported in part by SRC Grant No. 2004-TJ-1244. 2. Research supported in part by SRC Grant No. 2004-TJ-1243. best matches are used to define the candidate defect sites. Dynamic or fault simulation based approaches [15]-[23], also called effect-cause diagnosis procedures, typically do not use any precomputed information. Given the observed response of a faulty circuit, they perform fault simulations to identify the faults whose responses best match the observed response. The size of a fault dictionary is determined by the number of faults, the number of tests, and the number of outputs, and it is typically very large. However, when a fault dictionary can be stored, it reduces the fault simulation effort required for fault diagnosis compared to approaches that do not use a fault dictionary [9]. In addition, two-phase approaches that combine the use of a dictionary with dynamic diagnosis allow smaller dictionaries to be used [8], [12], [14]. Methods to compute small fault dictionaries were considered in [9]-[14]. There are two basic types of fault dictionaries that can be used alone as in cause-effect procedures, or to assist effect-cause diagnosis procedures [8], [12], [14]. The fault dictionary that contains the largest amount of information about modeled faults is the f ull fault dictionary. A full fault dictionary contains the complete output vector of every modeled fault under every test vector. It provides the highest possible diagnostic resolution, i.e., it allows us to distinguish every pair of faults that can be distinguished by the test set on which it is based. A pass /f ail fault dictionary contains a single bit b i,j for every fault and test vector. The bit for fault f i and test t j is 1 if t j detects f i, and it is 0 otherwise. Many of the methods to produce small fault dictionaries attempt to achieve the diagnostic resolution of a full fault dictionary by adding as little information as possible to a pass/fail dictionary, e.g., [9] and [12]. In this work we define a new type of dictionary called a same/different fault dictionary. A same/different fault dictionary is similar to a pass/fail fault dictionary in that it contains a single bit b i,j for every fault f i and test vector t j. However, in a pass/fail fault dictionary, the value of b i,j is determined by comparing the output vector z i,j of f i under t j to a fault free output vector z ff,j (ff stands for f ault f ree ). In a same/different fault dictionary, the value of b i,j is determined by comparing the out- 978-3-9810801-3-1/DATE08 2008 EDAA

put vector z i,j of f i under t j to a preselected output vector denoted by z bl,j. Here, bl stands for baseline, indicating that z bl,j provides a baseline for comparison, similar to the way the fault free output vector z ff,j is used in a pass/fail dictionary. In the approach described in this work, a single baseline vector z bl,j is selected for a test vector t j, considering every test vector t j in the test set applied to the circuit. The flexibility in selecting z bl,j allows us to obtain a same/different fault dictionary that has a similar size to a pass/fail fault dictionary, but has a higher resolution. We demonstrate this point in Section 2. One can select more than one baseline vector for a test vector. In this work we select only one per test vector. In Section 3 we describe a procedure for selecting the baseline output vectors for a same/different fault dictionary. Experimental results are presented in Section 4. Throughout this work we represent fault dictionaries as two-dimensional arrays. Other representations include lists of detected faults, or tree structures [1]. 2. Same/different fault dictionary To demonstrate the definition and advantages of a same/different fault dictionary, we consider four faults, f 0, f 1, f 2 and f 3, under two tests, t 0 and t 1, in a twooutput circuit. In Table 1 we show the entries corresponding to a full fault dictionary. Row ff shows the fault free output vectors z ff,j, for j = 0,1. Row f i shows the output vectors z i,j obtained for f i under t j, for i = 0,1,2,3 and j = 0,1. The full fault dictionary distinguishes between all the pairs of faults based on their output vectors. For example, f 0 and f 1 are distinguished by t 0 since z 0,0 z 1,0 ; and f 2 and f 3 are distinguished by t 1 since z 2,1 z 3,1. Table 1: A full fault dictionary t 0 t 1 ff 00 11 f 0 00 10 f 1 10 11 f 2 01 10 f 3 01 01 A pass/fail fault dictionary for the same faults and tests is shown in Table 2. An output vector z i,j in the full dictionary is replaced with b i,j = 0 in the pass/fail dictionary if z i,j = z ff,j, and it is replaced with b i,j = 1 in the pass/fail dictionary if z i,j z ff,j. The pass/fail fault dictionary distinguishes between all the fault pairs except for the fault pair f 2,f 3. For example, f 0 and f 1 are distinguished by t 0 since b 0,0 b 1,0 ; however, for f 2 and f 3 we have b 2,0 = b 3,0 and b 2,1 = b 3,1. In a same/different fault dictionary we have the flexibility of selecting the baseline output vectors against which output vectors of faulty circuits will be compared. Table 2: A pass/fail fault dictionary t 0 t 1 ff 00 11 f 0 0 1 f 1 1 0 f 2 1 1 f 3 1 1 A same/different fault dictionary for the faults and tests above is shown in Table 3. We use z bl,0 = 01 and z bl,1 = 10 as baseline vectors. An output vector z i,j in the full fault dictionary is replaced with b i,j = 0 in the same/different fault dictionary if z i,j = z bl,j, and it is replaced with b i,j = 1 in the same/different fault dictionary if z i,j z bl,j. The same/different fault dictionary of Table 3 distinguishes between all the pairs of faults based on their entries. For example, f 0 and f 1 are distinguished by t 1 since b 0,1 b 1,1 ; and f 2 and f 3 are distinguished by t 1 since b 2,1 b 3,1. Table 3: A same/different fault dictionary t 0 t 1 bl 01 10 f 0 1 0 f 1 1 1 f 2 0 0 f 3 0 1 It can be seen that, in the example, the same/different fault dictionary provides the diagnostic resolution of a full fault dictionary. In general, by selecting appropriate baseline vectors, the diagnostic resolution of a same/different fault dictionary can be made higher than that of a pass/fail dictionary of a similar size. The need to store the baseline output vectors adds to the storage requirements. We discuss the relative sizes of the various dictionaries next. For the circuit under consideration, let the number of test vectors be k, let the number of faults be n, and let the number of outputs be m. Storing the fault free output response of the circuit requires k. m bits. We do not include this in the size of a dictionary. The size of a full dictionary for the circuit is k. n. m bits (a full dictionary contains a bit for every test vector, fault and output). The size of a pass/fail dictionary is k. n bits (a pass/fail dictionary contains a bit for every test vector and fault). The size of the proposed same/different dictionary is k. n +k. m = k. (n +m ) bits. The difference of k. m bits in the sizes of the pass/fail and same/different dictionaries is due to the need to store baseline vectors, assuming that a baseline vector is used for each test vector. For scan designs the number of outputs m is the sum of the number of scan cells and the number of primary outputs. If test response compaction is used, the number of outputs will be significantly smaller. In indus-

trial designs typically the number of outputs m is smaller than the number of faults n by one to two orders of magnitude. Hence, the additional memory requirement for the same/different fault dictionary relative to the pass/fail fault dictionary will be negligible. In addition, it is important to note that one may not need to use a baseline vector for every test vector. Instead, the fault free output vector may be used for some of the test vectors. This further reduces the difference in the sizes of these dictionaries. 3. Computing a fault dictionary To compute a same/different fault dictionary it is necessary to compute a baseline vector z bl,j for every test vector t j. In this section we describe a procedure for computing baseline vectors for a same/different fault dictionary. We consider a set of faults F = {f 0,f 1,...,f n 1 } and a test set T = {t 0,t 1,...,t k 1 }. We denote by z i,j the output vector of the faulty circuit in the presence of f i under t j. We denote by Z j the set of all the output vectors that may be produced by modeled faults under t j, i.e., Z j = {z i,j :0 i<n}. Since a test vector t j never detects all the faults in F, the fault free output vector z ff,j is included in Z j. We note that if z bl,j is selected such that z bl,j /Z j, we will have z i,j z bl,j, and consequently b i,j = 1, for every f i F. As a result, t j will not distinguish any pair of faults in the same/different fault dictionary. Therefore, it is only necessary to consider the vectors in Z j as candidates for z bl,j. For example, considering the output vectors of Table 1, we have Z 0 = {00, 10, 01}. If we use z bl,0 = 11, we will obtain b i,0 = 1 for every i, and t 0 will not distinguish any fault pair. Using z bl,0 = z ff,0 = 00 causes t 0 to distinguish f 0 from f 1, f 2 and f 3. Using z bl,0 = z 2,0 = 01 as in Table 3 causes t 0 to distinguish f 0 and f 1 from f 2 and f 3. We select the baseline output vectors z bl,j by considering the tests in T one at a time. During the selection process we maintain a set of target fault pairs P that need to be distinguished. Initially, P includes all the fault pairs defined based on F. After z bl,j is selected, all the fault pairs distinguished by t j are removed from P. When t j is considered, the candidates for z bl,j are the output vectors included in Z j. For every z Z j,we check how many fault pairs in P will be distinguished if z bl,j = z. We denote this number by dist (z ). Of all the vectors in Z j we select the one with the highest value of dist (z ), and we set z bl,j = z. In the example of Table 1, we have the options for z bl,0 shown in Table 4. These are all the vectors under column t 0 of Table 1. For each option we show the fault pairs that will be distinguished. We select z bl,0 = 01 since it distinguishes the highest number of fault pairs. The fault pairs distinguished are removed from consideration. Next, we consider the options for z bl,1 shown in Table 5. These are all the vectors under column t 1 of Table 1. We select z bl,1 = 10 to distinguish the remaining two fault pairs. This results in the same/different fault dictionary of Table 3. Table 4: Selection of z bl,0 z distinguished dist (z ) 00 f 0,f 1 ; f 0,f 2 ; f 0,f 3 3 10 f 0,f 1 ; f 1,f 2 ; f 1,f 3 3 01 f 0,f 2 ; f 0,f 3 ; f 1,f 2 ; f 1,f 3 4 Table 5: Selection of z bl,1 z distinguished dist (z ) 11 f 0,f 1 1 10 f 0,f 1 ; f 2,f 3 2 01 f 2,f 3 1 We observed that the highest values of dist (z ) are typically found after the first few output vectors in Z j are considered, and consideration of additional output vectors does not yield higher values of dist (z ). This allows us to avoid consideration of a large number of candidate output vectors when the number of faults is large and the number of candidate vectors in Z j is large. We implement this observation as follows. For a constant LOWER, if LOWER consecutive output vectors in Z j provide lower values of dist (z ) than the highest value obtained thus far, we do not consider any additional output vectors. We select one of the output vectors with the highest value of dist (z ) of all the output vectors in Z j for which dist (z ) was computed. The procedure described above is given next as Procedure 1. Procedure 1: Computing a same/different dictionary (1) Let F = {f 0,f 1,...,f n 1 } be the set of modeled faults, and let T = {t 0,t 1,...,t k 1 } be a given test set. Include in P every fault pair based on F. Set j = 0. (2) Set Z j = {z i,j :f i F }. Set best_dist = 1. Set lower = 0. (3) For every z Z j : (a) Find the number of fault pairs f i 1,f i 2 P such that f i 1,f i 2 will be distinguished if z bl,j = z, i.e., the number of fault pairs f i 1,f i 2 P such that z i 1,j = z and z i 2,j z, or z i 1,j z and z i 2,j = z. Let this number be dist (z ). (b) If dist (z ) > best_dist, set best_dist = dist (z ) and lower = 0. Else, if dist (z ) < best_dist, set lower = lower +1. (c) If lower = LOWER, go to Step 4.

(4) Select one of the vectors z Z j for which dist (z ) is the highest of all the vectors in Z j for which dist (z ) was computed. Set z bl,j = z. Remove from P every fault pair f i 1,f i 2 P such that f i 1,f i 2 are distinguished based on z bl,j, i.e., z i 1,j = z bl,j and z i 2,j z bl,j,orz i 1,j z bl,j and z i 2,j = z bl,j. (5) Set j = j +1. If j<kgo to Step 2. Procedure 1 includes all the fault pairs in the set P and considers them explicitly. It is possible to reduce the number of fault pairs considered by excluding from P fault pairs that are known to be easy-to-distinguish. In particular, if two faults cannot be detected by the same test the fault pair can be excluded from P. The order by which test vectors are considered in Procedure 1 can have a significant effect on the selection of the baseline vectors, and the number of fault pairs distinguished by the resulting same/different dictionary. Therefore, we apply Procedure 1 several times, each time with a different random order of the test vectors in T.We continue to reorder T and apply Procedure 1 until the number of distinguished fault pairs does not increase for CALLS 1 consecutive calls to Procedure 1, where CALLS 1 is a constant. We use the baseline vectors that result in the highest number of distinguished fault pairs. Starting from the baseline vectors that result in the highest number of distinguished fault pairs, we then attempt to replace individual baseline vectors with different ones. We accept a replacement if it increases the number of distinguished fault pairs. The candidates for replacing z bl,j are the vectors included in the set Z j defined earlier. The procedure for replacing baseline vectors is given next as Procedure 2. Procedure 2: Replacing baseline vectors (1) Let F = {f 0,f 1,...,f n 1 } be the set of modeled faults, and let T = {t 0,t 1,...,t k 1 } be a given test set. Include in P every fault pair based on F. Let z bl,j be the baseline vector selected for t j, for 0 j<k. (2) Find the number of fault pairs f i 1,f i 2 P that are distinguished by T with the current baseline vectors. Assign this number to BEST_DIST. (3) Set j = 0. (4) Set Z j = {z i,j :f i F }. (5) For every z Z j : (a) Set ẑ = z bl,j. Set z bl,j = z. (b) Find the number of fault pairs f i 1,f i 2 P that are distinguished by T with the current baseline vectors. Assign this number to DIST. (c) If DIST > BEST_DIST, set BEST_DIST = DIST. Else, set z bl,j = ẑ. (6) Set j = j +1. If j<kgo to Step 4. We apply Procedure 2 repeatedly as long as it is able to increase the number of distinguished fault pairs (BEST_DIST ). 4. Experimental results We applied Procedure 1 with LOWER = 10 and CALLS 1 = 100, followed by Procedure 2. We used two types of test sets for every circuit: a diagnostic test set for stuck-at faults, and a 10-detection test set for stuck-at faults. We used the set of collapsed single stuck-at faults as the set of faults F. The results are shown in Table 6. We include two rows for every circuit. In the first row we show the results obtained using a diagnostic test set. In the second row we show the results obtained using a 10-detection test set. Under column Ttype we show the type of the test set used, where diag stands for a diagnostic test set, and 10det stands for a 10-detection test set. Under column T we show the number of tests in the test set. Under column size we show the size (in bits) of the following fault dictionaries: a full fault dictionary (subcolumn f ull ), a pass/fail fault dictionary (subcolumn p/f ), and a same/different fault dictionary (subcolumn s/d). Under column indistinguished we show the number of fault pairs left indistinguished by the following fault dictionaries: a full fault dictionary (subcolumn f ull ),a pass/fail fault dictionary (subcolumn p/f ), the best same/different fault dictionary computed by Procedure 1 using several random test orders (subcolumn s /d rand ), and the same/different fault dictionary computed by Procedure 2 (subcolumn s /d repl ). We omit the entry for Procedure 2 if it does not improve the number of distinguished fault pairs compared to the same/different fault dictionary computed by Procedure 1. The following points can be seen from Table 6. The 10-detection test set is typically larger than a diagnostic test set. Nevertheless, the same/different dictionary based on the 10-detection test set is smaller than the full dictionary based on the diagnostic test set. The size of a same/different fault dictionary is close to that of a pass/fail dictionary. The diagnostic test set leaves a smaller number of indistinguished fault pairs when a full dictionary is used. For a pass/fail dictionary, the higher number of tests in a 10-detection test set is more effective in ensuring that fault pairs can be distinguished. In terms of test generation effort, diagnostic test generation is more computationally intensive than 10-detection test generation due to the number of targets that need to be considered (the number of fault pairs is significantly larger than 10 times the number of faults). Thus, each type of test set has certain advantages for fault diagnosis. In all the cases considered, a same/different fault dictionary can distinguish more fault pairs than a pass/fail

fault dictionary of a similar size. The difference is higher when the test set size is higher. Thus, the same/different fault dictionary is more effective as a replacement for a pass/fail dictionary when a 10-detection test set is used. This is due to the fact that the larger number of tests provides more opportunities for distinguishing fault pairs with appropriately selected baseline vectors. When a 10- detection test set is used, the same/different fault dictionary sometimes distinguishes all the fault pairs distinguished by a full dictionary. This is the best possible result. In all the cases, a same/different fault dictionary should be used instead of a pass/fail dictionary since the improvement in diagnostic resolution comes with only a small increase in dictionary size. In many cases, Procedure 1 finds a set of baseline output vectors that cannot be further improved by Procedure 2. In the case of 10-detection test sets, if Procedure 1 finds a set of baseline vectors that distinguishes all the fault pairs that can be distinguished by a full fault dictionary, Procedure 2 cannot improve the results any further. When improvements are possible, Procedure 2 finds them in several cases. 5. Concluding remarks We defined a new type of fault dictionary called a same/different fault dictionary. A same/different fault dictionary is based on a set of baseline output vectors, one for every test vector applied to the circuit. A same/different fault dictionary contains a single bit for every modeled fault and test vector. The bit is determined by comparing the output vector of the faulty circuit with the baseline output vector of the test. The bit is 0 when the vectors are the same, and 1 when they are different. By selecting baseline output vectors appropriately it is possible to obtain increased diagnostic resolution with a same/different fault dictionary compared to a pass/fail fault dictionary of a similar size. We described a procedure for selecting baseline output vectors for a given test set and set of modeled faults. The procedure was based on diagnostic fault simulation of each test with several options for its baseline output vector. Of all the options, the one that distinguished the largest number of fault pairs was selected. The selection was done in different orders to identify the one that distinguished the largest number of fault pairs overall. A procedure that modified the selection so as to distinguish additional fault pairs was also described. References [1] M. Abramovici, M. A. Breuer and A. D. Friedman, Digital Systems Testing and Testable Design, IEEE Press, 1995. [2] R. E. Tulloss, "Size Optimization of Fault Dictionaries", in Proc. Semiconductor Test Conf., 1978, pp. 264-265. [3] R. E. Tulloss, "Fault Dictionary Compression: Recognizing when a Fault May Be Unambiguously Represented by a Single Failure Detection", in Proc. Test Conf., Nov. 1980, pp. 368-370. [4] J. Richman and K. R. Bowden, "The Modern Fault Dictionary", in Proc. Intl. Test Conf., Sept. 1985, pp. 696-702. [5] V. Ratford and P. Keating, "Integrating Guided Probe and Fault Dictionary: An Enhanced Diagnostic Approach", in Proc. Intl. Test Conf., 1986, pp. 304-311. [6] R. C. Aitken and V. K. Agarwal, "A Diagnosis Method Using Pseudo-Random Vectors Without Intermediate Signatures", in Proc. Intl. Conf. on Computer-Aided Design, Nov. 1989, pp. 574-577. [7] S. D. Millman, E. J. McCluskey and J. M. Acken, "Diagnosing CMOS Bridging Faults with Stuck-at Fault Dictionaries", in Proc. Intl. Test Conf., Sept. 1990, pp. 860-870. [8] P. G. Ryan, S. Rawat and W. K. Fuchs, "Two-Stage Fault Location", in Proc. 1991 Intl. Test Conf., Oct. 1991, pp. 963-968. [9] I. Pomeranz and S. M. Reddy, "On the Generation of Small Dictionaries for Fault Location", in Proc. Intl. Conf. on Computer- Aided Design, Nov. 1992, pp. 272-279. [10] P. G. Ryan, W. K. Fuchs and I. Pomeranz, "Fault Dictionary Compression and Equivalence Class Computation for Sequential Circuits", in Proc. Intl. Conf. on Computer-Aided Design, Nov. 1993, pp. 508-511. [11] I. Pomeranz, "On Pass/Fail Dictionaries for Scan Circuits", in Proc. 10th Asian Test Symp., Nov. 2001, pp. 51-56. [12] D. B. Lavo and T. Larrabee, "Making Cause-Effect Cost Effective: Low-Resolution Fault Dictionaries", in Proc. Intl. Test Conf., Oct. 2001, pp. 278-286. [13] P. Bernardi, M. Grosso, M. Rebaudengo and M. Sonza Reorda, "A Pattern Ordering Algorithm for Reducing the Size of Fault Dictionaries", in Proc. VLSI Test Symposium, Apr. 2006, pp. 386-391. [14] W. Zou, W.-T. Cheng, S. M. Reddy and H. Tang, "Speeding Up Effect-Cause Defect Diagnosis Using a Small Dictionary", in Proc. VLSI Test Symp., 2007, Paper 6B-2. [15] M. Abramovici and M. A. Breuer, "Fault Diagnosis Based on Effect-Cause Analysis: An Introduction", in Proc. 17th Design Autom. Conf, June 1980, pp. 69-76. [16] M. Abramovici, "A Maximal Resolution Guided-Probe Testing Algorithm", in Proc of Design Autom. Conf., June 1981, pp. 189-195. [17] Y. Azounamian and J. A. Waicukauski, "Fault Diagnosis in an LSSD Environment", in Proc. Intl. Test Conf., Sept. 1981, pp. 86-88. [18] J. Savir and J. P. Roth, "Testing for, and Distinguishing between Failures", in Proc. 12th Intl. Symp. on Fault-Tolerant Computing, June 1982, pp. 165-172. [19] J. A. Waicukauski, V. P. Gupta and S. T. Patel, "Diagnosis of BIST Failures by PPSFP Simulation", in Proc. Intl. Test Conf., Sept. 1987, pp. 480-484. [20] J. A. Waicukauski and E. Lindbloom, "Failure Diagnosis of Structured VLSI", IEEE Design and Test of Computers, Aug. 1989, pp. 49-60. [21] M. Marzouki, J. Laurent and B. Courtois, "Coupling Electron- Beam Probing with Knowledge-Based Fault Localization", in Proc. Intl. Test Conf., Oct. 1991, pp. 238-247. [22] S. Venkataraman and S. B. Drummonds, "POIROT: A Logic Fault Diagnosis Tool and its Applications", in Proc. Intl. Test Conf., Oct. 2000, pp. 253-262. [23] T. Bartenstein, D. Heaberlin, L. Huisman and D. Sliwinski, "Diagnosing Combinational Logic Designs Using the Single Location At-A-Time (SLAT) Paradigm", in Proc. Intl. Test Conf., 2001, pp. 287-296.

Table 6: Experimental results indistinguished size s/d circuit Ttype T full p/f s/d full p/f rand repl s208 diag 41 88150 8815 9225 6 36 30 29 s208 10det 271 582650 58265 60975 12 26 12 - s298 diag 37 227920 11396 12136 21 125 116 115 s298 10det 234 1441440 72072 76752 30 110 30 - s344 diag 34 302328 11628 12512 5 200 178 172 s344 10det 138 1227096 47196 50784 14 122 14 - s382 diag 35 377055 13965 14910 23 210 191 184 s382 10det 253 2725569 100947 107778 26 155 26 - s386 diag 76 379392 29184 30172 0 131 117 - s386 10det 201 1003392 77184 79797 2 115 11 - s400 diag 31 347355 12865 13702 44 258 249 248 s400 10det 243 2722815 100845 107406 46 189 46 - s420 diag 73 565020 31390 32704 15 54 50 49 s420 10det 433 3351420 186190 193984 26 49 26 - s510 diag 78 571896 43992 45006 0 70 64 62 s510 10det 543 3981276 306252 313311 10 74 10 - s526 diag 81 1211598 44874 47061 36 139 120 114 s526 10det 492 7359336 272568 285852 42 131 42 - s641 diag 37 742997 17279 18870 9 243 224 221 s641 10det 227 4558387 106009 115770 10 101 10 - s820 diag 134 2733600 113900 117116 44 601 545 530 s820 10det 949 19359600 806650 829426 60 572 60 - s953 diag 140 7855120 151060 158340 3 323 270 243 s953 10det 766 42978728 826514 866346 13 341 13 - s1196 diag 237 9419328 294354 301938 20 209 162 146 s1196 10det 1233 49004352 1531386 1570842 34 219 34 - s1423 diag 95 11265005 142595 150100 154 417 366 323 s1423 10det 269 31897751 403769 425020 169 350 169 - s5378 diag 299 311068836 1364337 1432509 524 1818 1684 1664 s5378 10det 992 1032041088 4526496 4752672 563 1476 573 - s9234 diag 454 734912500 2939650 3053150 1273 3511 3354 - s9234 10det 1132 1832425000 7329700 7612700 1385 2623 1424 -