• Tidak ada hasil yang ditemukan

Partition of the CUT into sub-circuits using cones of influenceinfluence

On-line Testing for Feedback Bridging Faults

4.3 Efficient construction of F N -detector for bridging faultsfaults

4.3.1 Partition of the CUT into sub-circuits using cones of influenceinfluence

From the basic architecture of a sequential circuit with on-line tester (shown in Chapter 3, Figure 3.1), it may be noted that the NSF block of the CUT has two types of inputs;

primary inputs (I) and the secondary inputs (S). The secondary inputs are fed back from the outputs of the flip-flops and represent the present state of the CUT. The outputs of the NSF block are the next state of the CUT and denoted as S+. So, the NSF block can be described as S = hΣS, S+i, where ΣS = Σ = v1, v2,· · · , vk, vk+1,· · ·, vn is the NSF input and S+ = {v1+, v2+, ..., vk+} is the NSF output. An input combination σs ΣS is a mapping from V = {v1, v2, ...., vn} to {0,1}, which can be represented as an n-tuple s(v1), σs(v2),· · · , σs(vk), σs(vk+1),· · ·, σs(vn)i, where the first k members correspond to

secondary inputs (present state) and the remaining (n−k) members correspond to primary inputs. For each vj+∈S+,1≤j ≤k, v+j : ΣS −→ {0,1}.

Let S0+ = {v+01, v+02, ..., v+0k} denote the NSF outputs under normal condition and Si+ = {vi1+, v+i2, ..., vik+} denote the outputs under bridging fault Fi, 1 i p, where p is the number of possible bridging faults. The jth F Di-transition τij = hxij, σij, x+iji can be determined from the NSF block directly, without explicit construction of the FSA model, in the manner discussed below.

For a given bridging fault Fi, determine an input pattern of the NSF block, i.e., σs ΣS which sensitizes the fault and propagates the effect through at least one of the NSF outputs, i.e., if output of the faulty (Fi) NSF block for input σs ishv+i1(σs), v+i2(σs),· · · , v+ik(σs)i, then

∃m,1 m k, such that v+im(σs) 6= v0m+ (σs). It may be noted that the first k-tuple of σs = initial(τij) = xij. The second (n−k)-sub-tuple of σs = input(τij) and the output of the NSF block (hvi1+(σs), vi2+(σs),· · · , vik+(σs)i) gives f inal(τij) = x+ij.

Given a netlist description of the NSF block of the CUT, the exhaustive set of F D- transitions for the fault Fi (i.e., =F Di) can be generated as follows:

1. For all σs ΣS simulate the NSF block under normal condition to determine the output responsehv01+(σs), v02+(σs),· · ·, v+0k(σs)i.

2. Insert the bridging fault (Fi) at proper position in the NSF.

3. Simulate the NSF block with the faultFi with each input σs to get the corresponding output responsehvi1+(σs), vi2+(σs),· · · , v+ik(σs)i.

4. Select those σs such that ∃m,1 m k, vim+ (σs) 6= v+0m(σs). All such σs conjoined with the outputs of the NSF block (for thoseσs), comprise the exhaustive set ofF Di- transitions.

5. Repeat Steps 24 for all possible bridging faults.

The complexity of the above procedure for determining the exhaustive set of F D- transitions is exponential with respect to the number of inputs of the NSF block (i.e.,O(2n)) because|ΣS|= 2n. In case of reasonably complex VLSI circuits,nis of the order of thousands and therefore there is a requirement of optimization techniques for exhaustive test pattern generation. In this work, we address the issue using two techniques (i) divide the NSF into sub-circuits using the principle of “cones of influence” with respect to the NSF output lines. This technique divides the problem into sub-problems thereby lowering complexity;

(ii) OBDDs [16] have been used for all Boolean function operations required for test pattern generation, checking if a pattern creates oscillation, etc.

A combinational circuit can be represented as a Directed Acyclic Graph (DAG) where a gate is represented by a node, the inputs to the gate are represented by directed edges into the node and the gate outputs are represented by directed edges out from the node. The nets in the circuit are represented by edges in the DAG. In this graph model, there are also nodes representing primary inputs (called as source nodes) and primary outputs (called sink nodes). The DAG representation of a circuit is defined as a tuplehN, Ei, where N is the set of nodes andE is the set of edges. An edge e∈E is denoted by a tuple hn1, n2i, n1, n2 ∈N. The node set is partitioned into three subsets–NSi: set of sink nodes (for primary outputs), NSc: set of source nodes (for primary inputs) and NI: set of intermediate nodes (for gates).

There is no input edges into the source nodes and no output edges from the sink nodes.

A cone of influence of a net is a sub-circuit, which contains all the gates, nets and inputs that are transitive fan-ins of the net (for which cone is being computed). Given a DAG hN, Ei of a combinational circuit, Algorithm 4.1 generates cones (i.e., sub-graphs of hN, Ei) corresponding to a net e1.

Algorithm 4.1 Algorithm for generation of cone of influence for a net e1. Input: hN, Ei: DAG representation of the circuit

e1: Net for which cone is to be generated.

Output: gate cones(e1): set of gates in cone for e1 net cones(e1): set of nets in cone fore1

Create hN0, E0i: Modified DAG of hN, Ei where direction of all edges are reversed;

node cones(e1)←φ edge cones(e1)←φ

Determine the nodene1, such thathne1, ni, where n∈N, is the edge corresponding to e1; /* ne1 is the node from which the edge corresponding to nete1 emanates */

Perform Breadth First Search (BFS) in hN0, E0i, where root node is ne1;

node cones(e1) all gates corresponding to nodes visited in the BFS traversal;

edge cones(e1)all nets corresponding to edges visited in the BFS traversal;

Using the above algorithm for each of the NSF outputs, it can be divided in cones.

Following that, OBBD based Boolean function manipulation techniques would be used to generate theF D-transitions for the bridging faults. If the bridging fault is between two nets from different cones then only those two cones need to be considered at a time for generating the F D-transitions. However, in case of faults involving nets from a single cone, OBBDs need to operate only on a single cone at a time. So, partitioning using cones of influence limits the size of the CUT that needs to be handled at a time to a great extent.

In the next two subsections we discuss in details the OBBD based scheme of generating