首页    期刊浏览 2024年11月28日 星期四
登录注册

文章基本信息

  • 标题:Hierarchical physical defect reasoning in digital circuits/Hierarhiline fuusikaliste defektide analuus digitaalskeemides.
  • 作者:Kostin, Sergei ; Ubar, Raimund ; Raik, Jaan
  • 期刊名称:Estonian Journal of Engineering
  • 印刷版ISSN:1736-6038
  • 出版年度:2011
  • 期号:September
  • 语种:English
  • 出版社:Estonian Academy Publishers
  • 摘要:Rapid advances in the areas of nanoscale electron technology and design automation tools enable engineers to design larger and more complex integrated circuits. On the other hand, the increasing integration densities pose severe problems with respect to the quality assurance. The quality and reliability of microelectronic circuits depend essentially on the efficiency of debug and diagnosis of failures in circuits. Traditional approaches to diagnosis of digital circuits are based on gate-level models [1-4]. However, due to the continuous increasing of the gate count in circuits under diagnosis, the gate-level methods are becoming less efficient and obsolete.
  • 关键词:Integrated circuits;Product quality;Reasoning;Semiconductor chips

Hierarchical physical defect reasoning in digital circuits/Hierarhiline fuusikaliste defektide analuus digitaalskeemides.


Kostin, Sergei ; Ubar, Raimund ; Raik, Jaan 等


1. INTRODUCTION

Rapid advances in the areas of nanoscale electron technology and design automation tools enable engineers to design larger and more complex integrated circuits. On the other hand, the increasing integration densities pose severe problems with respect to the quality assurance. The quality and reliability of microelectronic circuits depend essentially on the efficiency of debug and diagnosis of failures in circuits. Traditional approaches to diagnosis of digital circuits are based on gate-level models [1-4]. However, due to the continuous increasing of the gate count in circuits under diagnosis, the gate-level methods are becoming less efficient and obsolete.

Two main trends can be observed when searching solutions for the problems of testing and diagnosis: defect-orientation, and high-level modelling [5]. The trend towards high-level modelling helps us to cope with the complexity, but moves us even more away from the real life of physical defects and, hence, from accuracy of diagnosis. To handle adequately defects in nanoscale technologies, new fault models and defect-oriented diagnosis methods should be used. But the defect-orientation is increasing again the complexity. To get out from the deadlock, these two opposite trends--high-level modelling and defect-orientation--should be combined into hierarchical approaches.

The classical fault diagnosis algorithms follow two different paradigms: cause--effect and effect--cause analysis [6]. The cause-effect approach begins with mapping the causes of failure to a specific fault type e.g. stuck-at fault (SAF) model. Then, the fault tables or fault dictionaries are built by fault simulation. Once the fault dictionary is available, the effect (or syndrome) of the failing chip is analysed using dictionary look-up. This approach is also called fault-dictionary based paradigm or combinational diagnosis approach [7]. However, as designs grow in complexity, dictionary-based fault diagnosis approaches are becoming infeasible due to prohibitively large dictionary sizes. Effect--cause approach looks at the failing outputs and starts reasoning on the logic or topological structure of the circuit to be diagnosed. Because of the sequential character of reasoning, this approach is called also sequential fault diagnosis.

Traditional approaches to the cause--effect fault diagnosis lay on the stuck-at fault model. Many researchers have focused on developing new fault models for particular types of failure mechanisms like signal line bridges [6,8], transistor stuck-opens [9,10] or failures due to changes in circuit delays [11]. Another trend has been to develop general fault modelling mechanisms and corresponding test tools that can effectively analyse arbitrary fault types like in [12] where D-cubes are used to model any arbitrary change in the logic function of a circuit block. A generalization of this approach has been found in the input pattern fault model [13] and in the pattern fault model [14], which can model any arbitrary change in the logic function of a circuit block, where a block is defined to be any combinational subcircuit, described at any level of the design hierarchy.

A similar pattern-related fault modelling approach, called functional fault model, was proposed earlier in [15] for the module-level fault diagnosis in combinational circuits based on solving systems of Boolean differential equations. The functional or pattern fault model allows an arbitrary set of signal lines to be grouped into activation conditions for a single fault site, allowing a variety of fault types to be modelled. The functional faults can be either static or dynamic [16].

In [17], a similar model, called conditional faults, was proposed for test generation purposes, and in [18] for diagnosis purposes. A conditional fault allows additional signal line objectives to be combined with the detection requirements of a particular fault or physical defect.

The main objective of this work is to carry out the fault diagnosis at two levels (Fig. 1). To reduce the complexity of the diagnosis problem we represent the circuit as a network of modules whereas the modules can be arbitrary gate subnetworks. The task of diagnosis is considered as a task to locate faulty modules in the network of modules by using module-level fault dictionaries. The module size can be decided as the trade-off between the size of the faulty subcircuit to be located at the higher level and the size of the fault dictionary. Arbitrary and multiple faults in the module are allowed. However, it is assumed that no more than a single module is faulty at a time.

[FIGURE 1 OMITTED]

As the result of the fault diagnosis at the higher level, a faulty module or a subset of suspected faulty modules in the tested circuit is located. In the next step, this subset will be suppressed by a special defect reasoning based on using the functional fault (conditional SAF) model.

At the lower level, the defect location in the suspected faulty module will be determined. For this purpose we need the defects dictionaries for suspected modules. In the case when the modules represent library components used during design, we can precalculate the dictionaries for each library component beforehand and store the dictionaries in the library as well. Otherwise, the defects libraries should be created by simulation ad hoc.

The main objective of this work is to apply the cause-effect fault diagnosis hierarchically at two levels; first, in the module network to locate the faulty module, and thereafter, to locate a defect inside the faulty module by defect reasoning.

At the high level, we use the fault dictionary where instead of enumerating all the possible fault cases (or defects), we list only the modules as potential faulty items in the circuit. This helps to cope with the complexity of the fault dictionaries. At the lower level, two approaches may be used. In case when the modules represent library complex gates, we use the low-level defect dictionaries to diagnose the suspected defect(s). In case when the modules represent logic subcircuits not described in the component libraries, either low-level effect-cause reasoning can be carried out to locate the defects, or the defects libraries should be created for the low-level diagnosis purpose.

The rest of the paper is organized as follows. In Section 2 we describe the general flow of fault diagnosis. Section 3 presents the method of high-level fault diagnosis based on modules dictionaries. In Section 4, we describe the functional fault model. A defect-reasoning method for pruning the set of suspected faulty modules is explained in Section 5. Section 6 presents the ideas of the low-level defect diagnosis, and in Section 7, we describe the experimental results. Section 8 concludes the paper.

2. GENERAL DESCRIPTION OF THE METHOD

In this paper, we propose a hierarchical approach for the fault diagnosis in combinational circuits. The high-level model of a circuit is presented as a network of modules. The modules may be library components (complex gates) and/or arbitrary single-output logic subcircuits. A high-level fault dictionary is generated for the given test where for each test pattern it will be shown in which modules the defects may be detected by this pattern. The task of the high-level diagnosis is to determine the faulty module or a subset of candidate faulty modules.

In the first step, by the procedure of the cause--effect diagnosis, based on using the high-level fault dictionary, a subset of candidate modules, suspected as faulty, is determined. On the next step, by using effect--cause high-level module reasoning, the initial subset of candidate faulty modules will be suppressed (Fig. 2). The high-level module reasoning is defect oriented, however the direct defect analysis is avoided. The defects are modelled indirectly by using the functional fault model, which is represented by pairs of SAF and defect conditions [15,18]. In the process of reasoning, only the defect conditions are considered, which allows to avoid dealing directly with the whole huge list of defects in the circuit.

Low-level fault diagnosis is carried out in the modules determined during the high-level reasoning as faulty. For low-level diagnosis purposes, the modules are represented by sets of local test patterns, which are treated as conditions for activating physical defects in modules. This diagnostic information is captured in the form of defect dictionaries and is stored in the component libraries. Using pre-generated defect dictionaries, low-level cause-effect reasoning is carried out to locate the defects in the modules. If the defect location with the help of defect dictionaries is not possible, or if no dictionaries for given modules are available, effect-cause low-level defect reasoning should be carried out to locate the defects in suspected modules.

[FIGURE 2 OMITTED]

3. CAUSE-EFFECT HIGH-LEVEL FAULT DIAGNOSIS

Consider a combinational circuit C, synthesized as a network of modules with a single output (library complex gates or arbitrary sub-circuits) with a set of primary outputs OUT, a set of primary inputs IN, and a set of internal nodes INT. The network C consists of a set of modules M where each module [m.sub.i] [member of] M has an output node [y.sub.i] [member of] OUT [union] INT and a set of input nodes [X.sub.i] [member of] IN [union] INT.

The circuit represents a graph C = (M, [GAMMA]), where the nodes correspond to the modules m [member of] M, and [GAMMA] is a relation on M, where [GAMMA] (m) [subset] M denotes the successor nodes of m, and [[GAMMA].sup.-1] (m) [subset] M is the set of the predecessor nodes of m. For all the output nodes [m.sub.j] [member of] M, j: [y.sub.j] [member of] OUT, we have [GAMMA]([m.sub.j]) = [empty set]. For all the input nodes [m.sub.j] [member of] M, which represent the modules with only primary inputs j : [X.sub.j] [subset] IN, we have [[GAMMA].sup.-1] ([m.sub.j]) = [empty set].

Example 1. An example of a combinational network C is presented in Fig. 3, where to each network component (functional block F) a module corresponds. The graph C = (M, [GAMMA]) of the network is depicted in Fig. 4, where are shown modules that correspond to respective functional blocks (e.g. [F.sub.1] [right arrow] 1) and the connections between the modules (e.g. [F.sub.1] is connected to [F.sub.4] and [F.sub.7]). The task of the high-level fault diagnosis is to locate the faulty module if the testing of the circuit has been failed.

In general case, there will be no restrictions to the fault types inside the modules (some restrictions considered later may be introduced to simplify the fault diagnosis at the cost of worse diagnostic resolution).

The first phase of the high-level fault diagnosis is carried out in the network of modules according to the cause--effect approach by using its pre-generated fault dictionary. The module-level fault dictionary is represented as the matrix D = [parallel] [d.sub.ij] [parallel], where i denotes th number of test pattern, and j denotes the module [m.sub.j] [member of] M (a subcircuit or a library component in the network). We say [d.sub.ij] = 1 if the test pattern [t.sub.i] may detect a faulty signal on the output [y.sub.j] of the module [m.sub.j].

[FIGURE 3 OMITTED]

Let [M.sub.i] = {[m.sub.j]} [subset] M be the subset of modules corresponding to the i-th row of the matrix D, so that [m.sub.j] [member of] [M.sub.i] if [d.sub.ij] = 1.

[FIGURE 4 OMITTED]

Let us have a test set T to be used for fault diagnosis. Partition the set T in accordance with the results of test experiment into two subsets: T = [T.sub.F] [union] [T.sub.P], where [T.sub.F] [intersection] [T.sub.P] = [empty set], [T.sub.F] is the subset of test patterns, which failed during the test, and [T.sub.P] is the subset of test patterns, which passed. Denote by the vector

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]

the subset of all modules suspected as faulty on the basis of failing subset of test patterns [T.sub.F], and by the vector

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII]

the subset of tested modules, which have shown correct behaviour on the basis of the subset of passed test patterns [T.sub.P].

Consider now the subset of modules [M.sup.*] = [M.sub.F] - [M.sub.P]. It is easy to understand that if [M.sup.*] [not equal to] [empty set] then the modules in [M.sup.*] should be suspected as faulty to explain the failing of test patterns [T.sub.F].

Consider another subset of modules determined as [M.sup.1.sub.cond] = [M.sub.F] [intersection] [M.sub.P]. All these modules in [M.sup.1.sub.cond] should be treated as ambiguous, because they may explain the failing of test patterns [T.sub.F], however, not necessarily. Let us call this subset as conditionally suspected modules after the first phase of high-level fault diagnosis. The total subset of modules suspected as faulty after the first phase of high-level diagnosis is determined as [M.sup.1] = [M.sup.*] [union] [M.sup.1.sub.cond].

Example 2. Table 1 represents an example of the module-level fault dictionary D.

Assume the test patterns [t.sub.1] and [t.sub.2] failed during the test, e.g., [T.sub.F] = {[t.sub.1], [t.sub.2]}, and other three test patterns [T.sub.P] = {[t.sub.3], [t.sub.4], [t.sub.5]} passed. Hence, [M.sub.F] = {[m.sub.1], [m.sub.3], [m.sub.6], [m.sub.7], [m.sub.8]}, and [M.sub.P] = {[m.sub.2], [m.sub.3], [m.sub.4], [m.sub.5], [m.sub.6], [m.sub.7], [m.sub.8]}. On this basis, as the result of the first phase of high-level fault diagnosis, we get: [M.sup.*] = {[m.sub.1]} and [M.sup.1.sub.cond] = {[m.sub.3], [m.sub.6], [m.sub.7], [m.sub.8]}. The modules [m.sub.3], [m.sub.6], [m.sub.7], [m.sub.8] remain conditionally suspected as faulty.

In this phase of high-level diagnosis we cannot use the information from the passed patterns [T.sub.P] = {[t.sub.3], [t.sub.4], [t.sub.5]} to reduce the subset of suspected faulty modules in [M.sup.1.sub.cond], because we do not know which defects have been tested in modules [M.sup.1.sub.cond] during the test sets [T.sub.F] and [T.sub.P].

4. DEFECT REASONING IN MODULES BY USING THE CONDITIONAL SAF MODEL

In this Section we describe how the functional fault model, consisting of pairs of SAF and defect conditions, can be used for high-level defect reasoning in suspected faulty modules.

Consider a module m [member of] M, which is represented by a Boolean function y = f(X), X = ([x.sub.1], [x.sub.2], ..., [x.sub.n]). Introduce a symbolic Boolean variable [DELTA] for representing a given defect in the module, which converts the fault free function f into another faulty function [f.sup.[DELTA]]. Construct for this defect a generic parametric function

[y.sup.*] = [f.sup.*]([x.sub.1], [x.sub.2], ..., [x.sub.n], [DELTA]) = [bar.[DELTA]]f [disjunction] [DELTA][f.sup.[DELTA]]

to model the defect of the module m as a function of the defect variable [DELTA], which describes jointly the behaviour of the module for both, fault-free and faulty cases. For the faulty case, [DELTA] = 1, and for the fault-free case, [DELTA] = 0, i.e. [y.sup.*] = [f.sup.[DELTA]] if [DELTA] = 1, and [y.sup.*] = f if [DELTA] = 0. The solutions [W.sub.y]( [DELTA]) of the Boolean differential equation

[partial derivative][f.sup.*]/[partial derivative][DELTA] = 1 (1)

describe the set of conditions (input signals of the module) which activate the defect [DELTA] to produce an error on the output line y of the module. To find the conditions [W.sub.y] ([DELTA]) for a given defect [DELTA], we have to create the corresponding logic expression for the faulty function [f.sup.[DELTA]], either by logical reasoning or by carrying out defect simulation directly, or by carrying out real experiments to learn the physical behaviour of different defects. The described method represents a general approach to map an arbitrary transistor level physical defect inside the module m to the higher logic (or module) level.

Example 3. As an example, assume there is a short inside the transistor circuit in Fig. 5, described by the function

y = f (X) = [x.sub.1] [x.sub.2] [x.sub.3] [disjunction] [x.sub.4] [x.sub.5].

The short changes the function of the circuit as follows:

y = [f.sup.[DELTA]] (X) = ([x.sub.1] [disjunction] [x.sub.4])([x.sub.2][x.sub.3] [disjunction] [x.sub.5]).

Using the defect variable [DELTA] for the short, we create a generic Boolean differential equation and solve it as follows:

[MATHEMATICAL EXPRESSION NOT REPRODUCIBLE IN ASCII].

From this equation three possible solutions follow: 10x01, 1x001, 01110, where x is don't care value. Each of them can be used as a test pattern for the given short, or used as the defect condition for SAF at the output y. According to the definition of the functional fault model for the defect [DELTA], we have [W.sub.y] ([DELTA]) = {10x01,1x001, 01110}.

[FIGURE 5 OMITTED]

We call the full set of conditions [W.sub.y] = {[W.sub.y] ([DELTA])} as the functional fault model to represent all the physical defects through functional deviations in the behaviour of the module m: a physical level defect [DELTA] produces a higher logic level erroneous signal on the module output y if [W.sub.y] ([DELTA]) = 1. By using the set of conditions [W.sub.y], it is possible to map the defects from lower physical level to higher logic level for fault simulation purposes or vice versa, to map the faulty logic signals from the module level to physical defects for fault diagnosis purposes. If the modules of the circuit represent standard library components (e.g. complex gates) the described analysis for finding conditions should be made once for all library components, and the sets of calculated conditions [W.sub.y] will be included in the form of defect dictionaries into the library of components.

5. EFFECT--CAUSE HIGH-LEVEL FAULT REASONING

We define the effect-cause high-level fault reasoning as the second phase of high-level fault diagnosis as follows. We take the set of all conditional candidate faulty modules [M.sup.1.sub.cond] = [M.sub.F] [intersection] [M.sub.P], found in the first high-level diagnosis phase, and create the sets of fault conditions [X.sub.F,i] for all modules [m.sub.i] [member of] [M.sup.1.sub.cond], suspected conditionally. The set [M.sup.1.sub.cond] can be interpreted as the effects evoked locally by the possible defects in the modules m [member of] [M.sub.F] [intersection] [M.sub.P]. In these suspected modules we have to carry out the indirect defect reasoning either to determine the possible defect causes or to remove the not faulty modules from suspicion. The task of the second phase of high-level fault diagnosis is to locate the faulty module or to reduce the set of suspected faulty modules as much as possible.

Denote by [X.sub.ij] the local input condition of the module [m.sub.i] at the test pattern [t.sub.j]. Let us group all these input conditions for all the modules in such a way that [X.sub.F,i] contains all the local input conditions of the module [m.sub.i] during the test patterns, which tested the module and failed, and [X.sub.P,i] contains all the local input conditions of the module [m.sub.i] during the test patterns, which tested the module and passed.

Each condition [w.sub.F] [member of] [X.sub.F,i], so that [w.sub.F] [member of] [W.sub.i] ([DELTA]), refers to a defect [DELTA], which may have been detected by the test patterns in [T.sub.F], and therefore should be suspected because all the test patterns in [T.sub.F] failed. On the other hand, each input condition [w.sub.P] [member of] [X.sub.P,i,] so that [w.sub.P] [member of] [W.sub.i]([DELTA]), refers to a defect [DELTA], which should have been detected by the test patterns in [T.sub.P]. However, since all the test patterns in [T.sub.P] passed, the defect [DELTA] cannot be any more suspected.

From the above reasoning it results that only these defects in the module [m.sub.i], which are activated by the conditions w [member of]([X.sub.F,i] - [X.sub.P,i]) [intersection] [W.sup.f.sub.i], may be suspected. Hence, a module [m.sub.i] [member of] [M.sup.1.sub.cond] can be suspected as faulty only if

([X.sub.F,i] - [X.sub.P,i]) [intersection] [W.sup.f.sub.i][not equal to][empty set]. (2)

The reasoning proceeds in the following way. We delete from all conditions [X.sub.F,i], where [m.sub.i] [member of] [M.sup.1.sub.cond], the conditions [X.sub.P,i], trying to suppress the set [M.sup.1.sub.cond]. The result of the second phase of high-level fault diagnosis will be the set of conditionally suspected faulty modules [M.sup.2] = [M.sup.*] [union] [M.sup.2.sub.cond] where [M.sup.2.sub.cond] [subset or equal to] [M.sup.1.sub.cond], and for all [m.sub.i] [member of] [M.sup.2.sub.cond] the condition (2) is valid.

Example 4. Consider again the example in Table 1, where the first two test patterns failed during the test experiment, and the other three passed. Let the module [m.sub.3] had the local input vector [X.sub.13] = (1011) during the test pattern [t.sub.1], which tests the module according to Table 1. We assume here that the module has 4 input lines. Since [t.sub.1] failed, it means that in the module [m.sub.3], a defect [DELTA], activated by the conditions [w.sub.F] = (1011) [member of] [W.sub.3]([DELTA]) on the inputs of the module, should be suspected. On the other hand, let the same module had on its inputs the same condition [w.sub.P] = [w.sub.F] = (1011) during the test pattern [t.sub.4] , which tested the module [m.sub.3] as well, but passed. Since the test pattern [t.sub.4] activated the same defect [DELTA], which was under suspicion after the test pattern [t.sub.1], there is a contradiction, and the defect [DELTA] cannot be present. So, we can remove the module [m.sub.3] from the set of suspected modules [M.sup.1.sub.cond] = {[m.sub.3], [m.sub.6], [m.sub.7], [m.sub.8]}. After such a procedure of the indirect effect-cause reasoning of defects on the module level, we may get in ideal case [M.sup.2.sub.cond] = [empty set]. In this case, the result of the high-level fault diagnosis show that we should suspect a single module, [M.sup.2] = [M.sup.*] = {[m.sub.1]}, as faulty.

6. LOW-LEVEL FAULT DIAGNOSIS

Low-level fault diagnosis is carried out in the modules determined during the high-level reasoning as faulty. It may be carried out either by cause--effect diagnosis, based on the defect dictionaries pre-computed for the library components, or by effect--cause diagnosis inside the modules if the defect libraries are not available.

Consider as an example the fault dictionary in Table 2 for a library complex gate AND2,2/NOR2 [19] regarded as a module in the circuit under diagnosis. In the table, 25 different defects (shorts between inputs or internal nodes of the module) are considered with corresponding names in column 2 and erroneous functions in column 3. Other columns form the defect dictionary and correspond to the input patterns of the 4-input module (given with decimal numbers). The entries "1" in columns show which defects are tested by which patterns.

Assume that as the result of the test experiment, we have found for this particular module [m.sub.i] that [X.sub.F,i] = {[w.sub.3], [w.sub.12]}, and [X.sub.P,i] = {[w.sub.0], [w.sub.5], [w.sub.8], [w.sub.10], [w.sub.13], [w.sub.15]}. The input patterns not exercised during the test are highlighted by grey colour. It is easy to see that the defects [[DELTA].sub.2] and [[DELTA].sub.8] should be suspected as present. For better diagnostic resolution, to distinguish these defects, additional input patterns should be used for testing, e.g. [w.sub.7] or [w.sub.11].

If no diagnosis is possible with using the defect dictionary, for example, when the real existing defect is not covered by the dictionary, or in the case when the defect dictionary for a module is missing, the low-level effect--cause defect reasoning inside the module is needed. This can be proceeded, for example, by the method of critical path tracing.

7. EXPERIMENTAL DATA

Experiments were carried out with ISCAS'85, ISCAS'89 and ITC'99 benchmark circuits (Table 3). The goal of the experimental research was to evaluate the achievable high-level module-based diagnostic resolution (Table 4) and to compare it with traditional stuck-at fault based diagnostic resolution (Table 5). All the circuits were presented as networks of modules, where as modules the fan-out free regions (FFR) were selected. Three different types of tests were used for evaluating the diagnostic resolution (Table 4): long pseudorandom test sequences, short deterministic test sequences, and combination of both sequences. The pseudorandom test sequences were generated by LFSR-based test generator and optimized by selecting proper seeds and polynomials. The LFSR was stopped when no useful test patterns were found in a reasonable time. The pseudorandom test was selected to have more test patterns for detecting the same fault with the goal to improve the distinguishability of the faults. The deterministic test patterns were synthesized by a genetic test generator. The quality of test patterns, i.e. the maximum possible test coverage was not the target. The goal of the paper was not to generate the best test sequences, but rather to evaluate and compare the diagnosability, i.e. diagnostic resolutions for two methods and for a given test sequence. To generate diagnostic tests with as good as possible diagnostic resolution is the task not considered in this paper.

In Table 3, the characteristic data of the benchmark circuits are presented. In columns 2 to 4, the numbers of inputs, outputs and gates are presented, respectively. Column 5 lists the number of modules, and in column 6 the complexity reduction (Gates/Modules) in the module-level model is shown compared to the gate-level network. The reduction on average 5.7 times reflects the decrease of the complexity in fault dictionaries in case of using FFR-modules instead of gates and SAF lists.

In Table 4, the results of diagnostic resolution for three different test types are presented. In each section, the characteristics of tests are given (test length, and stuck-at fault coverage (SAF %)), and the diagnostic resolutions (the number of suspected modules) after the first and second phases of high-level diagnosis are depicted. The diagnostic resolution can be improved by generating additional tests.

Table 5 shows the comparison results of the proposed module-level diagnosis with traditional SAF-based diagnosis based on pseudorandom tests for ISCAS'85 benchmark circuits. The diagnostic resolution at the module level on average is similar to or even better than SAF-based diagnostic resolution.

8. CONCLUSIONS

The main drawbacks of the traditional cause--effect diagnosis methods are the dependence on the fault model and poor scalability of fault dictionaries. We consider here fault diagnosis as the following hierarchical procedure: first, to determine a set of suspected faulty modules in a circuit by using high-level module-based fault dictionary for the whole circuit, and second, to locate the physical defects in the suspected faulty modules either by low-level dictionaries for library components, or by defect reasoning in case of arbitrary subcircuits defined as modules.

The proposed high-level fault diagnosis is fault independent, since instead of specific faults, faulty structural components called modules are localized. No restrictions to fault multiplicity inside the modules are set.

On the other hand, the complexity of the proposed method compared to the flat-level fault model based diagnosis is reduced. The size of the high-level fault dictionary for the whole circuit depends linearly only on the number of modules to be determined as faulty or not faulty, and not on the number of possible faults or defects as traditionally. The size of the modules, however, will be the trade-off between the complexity of the high-level dictionary and the diagnostic resolution.

The complexity of the diagnosis problem was reduced on average 5.7 times for the case of FFR-based modules compared to gate-level diagnosis. The diagnostic resolution in the module-based diagnosis was similar to, or even better than in the case of SAF-based fault diagnosis.

The high diagnostic resolution at the module level was achieved by implementing a novel high-level effect--cause reasoning, based on the concept of functional fault model (conditional SAF model). This concept allowed to map physical defects from transistor level to the module level, and to carry out indirect defect-based reasoning of faulty modules at higher level. The same concept can be used to improve the diagnostic exactness by low-level defect reasoning in the faulty modules.

doi: 10.3176/eng.2011.3.02

ACKNOWLEDGEMENTS

The work has been supported by Estonian Science Foundation (grants Nos 7068 and 7483), EC FP7 1ST project DIAMOND, ELIKO Development Centre, Estonian IT Foundation "Tiger University", and Research Centre CEBE, funded by EU Structural Funds.

Received 7 February 2011, in revised form 14 June 2011

REFERENCES

[1.] Venkataraman, S. and Drummonds, S. B. Poirot: Applications of a logic fault diagnosis tool. IEEE Trans. Design Test Computers, 2001, 18, 19-29.

[2.] Huisman, L. M. Diagnosing arbitrary defects in logic designs using single location at a time (SLAT). IEEE Trans. CAD, 2004, 23, 91-101.

[3.] Holst, S. and Wunderlich, H.-J. Adaptive debug and diagnosis without fault dictionaries. In Proc. 12th European Test Symposium. Freiburg, 2007, 7-12.

[4.] Rousset, A., Bosio, A., Girard, P., Landrault, C., Pravossoudovitch, S. and Virazel, A. Derric: A tool for unified logic diagnosis. In Proc. 12th European Test Symposium. Freiburg, 2007, 13-20.

[5.] Wang, L. T., Wu, C. W. and Wen, X. VLSI test principles and architectures. In Design for Testability. Elsevier, 2006.

[6.] Zhuo, L., Lu, X., Qiu, W., Shi, W. and Walker, D. M. H. A circuit level fault model for resistive opens and bridges. In Proc. VLSI Test Symp. Napa, CA, 2003, 379-384.

[7.] Liu, C. Compact dictionaries for fault diagnosis in scan-BIST. IEEE Trans. Computers, 2004, 53, 775-780.

[8.] Acken, J. M. and Millman, S. D. Accurate modeling and simulating of bridge faults. In Proc. Custom Integrated Circuits Conference. San Diego, CA, 1991, 17.4.1-17.4.4.

[9.] Jain, S. K. and Agrawal, V. D. Modeling and test generation algorithms for MOS circuits. IEEE Trans. Computers, 1985, C-34, 426-433.

[10.] Lee, H. K. and Ha, D. S. SOPRANO: An efficient automatic test pattern generator for stuck open faults in CMOS combinational circuits. In Proc. Design Automation Conference. Orlando, FL, 1990, 660-666.

[11.] Kristic, A. and Cheng, K. T. Delay Fault Testing for VLSI Circuits. Kluwer, Boston, MA, 1998.

[12.] Roth, J. P. Diagnosis of automata failures: A calculus and a method. IBM J. Res. Developm., 1966, 10, 278-291.

[13.] Blanton, R. D. and Hayes, J. P. On the properties of the input pattern fault model. ACM Trans. Des. Automat. Electron. Syst., 2003, 8, 108-124.

[14.] Keller, K. B. Hierarchical pattern faults for describing logic circuit failure mechanisms. US Patent 5546408, Aug. 13, 1994.

[15.] Ubar, R. Detection of suspected faults in combinational circuits by solving boolean differential equations. Automation and Remote Control, 1980, 40, 1693-1703 (Plenum Publ. Corp., USA).

[16.] Ubar, R., Devadze, S., Raik, J. and Jutman, A. Fast fault simulation for extended class of faults in scan-path circuits. In Proc. 5th IEEE International Symposium DELTA. Ho Chi Minh City, Vietnam, 2010, 14-19.

[17.] Mahlstedt, U., Alt, J. and Hollenbeck, I. Deterministic test generation for non-classical faults on the gate level. In Proc. 4th Asian Test Symposium. Bangalore, 1995, 244-251.

[18.] Holst, S. and Wunderlich, H.-J. Adaptive debug and diagnosis without fault dictionaries. In Proc. 13th European Test Symposium. Verbania, Italy, 2008, 199-204.

[19.] Ubar, R., Kuzmicz, W., Pleskacz, W. and Raik, J. Defect-oriented fault simulation and test generation in digital circuits. In Proc. 2nd International Symposium on Quality of Electronic Design. San Jose, CA, 2001, 365-371.

Sergei Kostin, Raimund Ubar, Jaan Raik and Marina Brik

Department of Computer Engineering, Tallinn University of Technology, Ehitajate tee 5, 19086 Tallinn, Estonia; {skostin, raiub, jaan, brik}@pld.ttu.ee
Table 1. Module level fault dictionary

                                Modules

  Test      [m.sub.1]   [m.sub.2]   [m.sub.3]   [m.sub.4]

[t.sub.1]       1                       1
[t.sub.2]       1
[t.sub.3]                               1
[t.sub.4]                   1           1
[t.sub.5]                                           1

                                Modules

  Test      [m.sub.5]   [m.sub.6]   [m.sub.7]   [m.sub.8]

[t.sub.1]                   1           1           1
[t.sub.2]                               1           1
[t.sub.3]                   1           1           1
[t.sub.4]                   1           1           1
[t.sub.5]       1                       1           1

Table 2. Defect library for a gate AND2,2/NOR2 [19]

k         Fault            Erroneous function           Local input test
     [[DELTA].sub.k]        [f.sup.[DELTA]k]          patterns [w.sub.j]

                                                     0    1    2    3

1    A/C               not((A*C)*(B+D))
2    A/D               not((A*D)*(B+C))
3    A/N1              not(B*(not(A)+C+D)+C*D)
4    A/Q               A*(not(C*D))                  1    1    1
5    A/gnd             not(C*D)
6    A/vdd             not(B+(C*D))
7    B/C               not((B*C)*(A+D))
8    B/D               not((B*D)*(A+C))
9    B/N1              not(A+C*D)
10   B/Q               B*(not(C*D))                  1    1    1
11   B/gnd             not(C*D)
12   B/vdd             not(A+(C*D))
13   C/N1              not((A+B+D)*(A*B+not(C)+D))        1
14   C/Q               C*(not(A *B))                 1    1
15   C/gnd             not(A*B)
16   C/vdd             not(D+A*B)                         1
17   D/N1              not(A*(B+C+notD)+B*notD                 1
                       +not((A+B)*D)
18   D/Q               D*(not(A*B))                  1         1
19   D/gnd             not(A*B)
20   D/vdd             not(C+A*B)                              1
21   N1/Q              not(A*B*C*D)
22   N1/gnd            sa-0 for Q                    1    1    1
23   N1/vdd            not(C*D)
24   Q/gnd             sa-0 at Q                     1    1    1
25   Q/vdd             sa-1 at Q                                    1

k          Local input test patterns [w.sub.j]

     4    5    6    7    8    9    10   11

1                   1
2                   1
3    1    1    1
4    1    1    1
5
6    1    1    1
7                                       1
8                                       1
9                        1    1    1
10                       1    1    1
11
12                       1    1    1
13   1    1              1    1
14   1    1         1    1    1         1
15                  1                   1
16        1                   1
17   1         1         1         1

18   1         1    1    1         1    1
19                  1                   1
20             1                   1
21                  1                   1
22   1    1    1         1    1    1
23
24   1    1    1         1    1    1
25                  1                   1

k       Local input test
       patterns [w.sub.j]

     12   13   14   15

1         1
2         1    1
3         1
4         1    1
5         1    1
6
7         1
8         1    1
9
10        1    1
11        1    1
12
13
14
15
16
17

18
19
20
21
22
23   1    1    1
24
25   1    1    1    1

Table 3. Characteristic data of benchmark circuits

Circuits      Inputs      Outputs       Gates

c1908           33           25          1 394
c2670          233          140          2 075
c3540           50           22          2 784
c5315          178          123          4 319
c7552          207          108          5 795
s9234          247          250          5 597
s13207         700          790         12 441
s15850         611          684         14 841
s35932       1 763        2 048         32 624
b12_C          126          127          1 000
b14_C          277          299         19 491
b15_C          485          519         18 248
  Average

Circuits     Modules     Complexity
                         reduction

c1908           248          5.6
c2670           430          4.8
c3540           378          7.4
c5315           633          6.8
c7552           920          6.3
s9234         1 263          4.4
s13207        2 014          6.2
s15850        2 202          6.7
s35932        7 343          4.4
b12_C           512          2.0
b14_C         2 708          7.2
b15_C         2 872          6.5
  Average                    5.7

Table 4. Diagnostic resolution for high-level module-based
diagnosis

                        Pseudorandom test

                                   Average resolution

             Test
Circuits    length     SAF, %      Phase 1     Phase 2

c1908        4 420     99.48        86.61        1.42
c2670       22 682     88.65       223.86        3.45
c3540        9 631     95.54        69.63        2.53
c5315        1 793     98.89       213.23        1.85
c7552       24 337     94.08       287.55        2.60
s9234       29 873     86.21       271.31        6.32
s13207      29 694     96.81       781.34       10.53
s15850      29 360     90.99       669.44       10.50
s35932         168     90.81     3 748.42       63.85
b12_C       27 205     98.33       151.42        4.15
b14_C       29 388     88.86       249.80       18.29
b15_C       39 198     86.56       756.54       14.06

                        Deterministic test

                                   Average resolution

             Test
Circuits    length     SAF, %      Phase 1     Phase 2

c1908        121       99.48       110.67        2.08
c2670         72       88.46       235.82        4.39
c3540        155       95.54        85.77        3.89
c5315        119       98.89       238.46        3.45
c7552        188       95.18       304.08        2.90
s9234        365       92.19       398.04        6.75
s13207       434       98.19     1 035.53        9.98
s15850       370       94.19       886.01       10.45
s35932        55       88.49     4 391.17       17.87
b12_C        155       99.77       239.68        5.05
b14_C        848       92.76       655.79        6.15
b15_C        498       88.77     1 069.16       17.67

                           Both tests

                                   Average resolution

             Test
Circuits    length     SAF, %      Phase 1     Phase 2

c1908        4 541     99.48        86.17        1.41
c2670       22 754     90.36       221.05        3.24
c3540        9 786     95.54        69.62        2.51
c5315        1 912     98.89       212.00        1.84
c7552       24 525     95.52       285.78        2.58
s9234       30 238     92.23       205.01        4.50
s13207      30 128     98.19       701.69        7.60
s15850      29 730     94.22       557.32        4.12
s35932         223     90.81     3 554.58        6.45
b12_C       27 360     99.83       126.87        2.83
b14_C       30 236     95.69       531.72        2.69
b15_C       39 696     94.74       929.14       11.08

Table 5. Comparison of SAF- and module-based diagnosis

               Test characteristics      Diagnostic resolution

Circuits       Length       SAF, %     SAF-based    Module-based

c1908          4 420        99.48         2.9           1.4
c2670          22 682       88.65         4.1           3.5
c3540          9 631        95.54         2.2           2.5
c5315          1 793        98.89         2.2           1.9
c7552          24 337       94.08         2.6           2.6
联系我们|关于我们|网站声明
国家哲学社会科学文献中心版权所有