Solutions To Problems: From "Essentials of Electronic Testing"
Solutions To Problems: From "Essentials of Electronic Testing"
The required defect coverage is 99.889%. This represents the capability of the
test in detecting the actual “defects” that occur and should not be confused with
the “fault coverage,” which is defined for the “single stuck-at” fault model.
The testing cost for a 500 M Hz, 1,024 pin tester was obtained as 4.56 cents in
Example 1.2 (see page 11 of the book.) Thus,
The cost of testing bad chips should also be recovered from the price of good chips.
Since the yield of good chips is 70%, we obtain
29.64
Test cost in the price of a chip = ≈ 42 cents
0.7
41.8 cents should be included as the cost of testing while figuring out the
price of chips.
$932, 960
Testing cost = = 2.96 cents/second
365 × 24 × 3600
Testing cost of the self-test design is 2.96 cents per second, down from
4.56 cents per second calculated in Example 1.2
Np = K × Nt 2/3
Nt 1
T Csquare = 1/2
= Nt 1/2
KNt K
Therefore,
T Csquare
= Nt 1/6
T Ccube
This ratio of test complexities continues to increase as the number of transistors (Nt )
on the VLSI device grows. For example, for Nt = 1 million, the square-chip test
complexity is ten times greater than that of the cubic-device. The test problem
of the cubic configuration is less complex than that for the flat chip.
Note: Although chips at present are not designed as three-dimensional objects,
three-dimensional packages and interconnects are in use. An interested reader may
see the article: H. Goldstein, “Packages Go Vertical,” IEEE Spectrum, vol. 38,
no. 8, pp. 46-51, August 2001. Recently, Matrix Semiconductor announced plans
to produce a three-dimensional memory chip. See, “Adding a Third Dimension to
Chips,” Computer, vol. 35, no. 3, p. 29, March 2002.
D Inputs
CLK
360ps
Q Output
400 ps
450ps
Measure Q
At an interval of 450ps after the rising CLK edge, measure Q on the ATE.
If Q = 1, the device passes, otherwise it fails. Using M S instead of M C, repeat
the above waveform sequence, but with D inverted and the expected Q signal also
inverted. At an interval of 450µs after the rising CLK edge, again measure Q on
the ATE. If Q = 0, the device passes, otherwise it fails. The same waveforms are
applied simultaneously to all five D lines, and five simultaneous measurements are
made on the five Q lines.
MC 120ps
D Inputs
CLK
400ps
Q Output
400ps
450 ps
Measure Q
At an interval of 120ps after the rising CLK edge, we lower the D line. If Q = 1
450ps after the rising CLK edge, the device passes, otherwise it fails. Using M S
instead of M C, repeat the above waveform sequence, but with D inverted and the
expected Q signal also inverted. At an interval of 450µs after the rising CLK edge,
again measure Q on the ATE. If Q = 0, the device passes, otherwise it fails. The
same waveforms are applied simultaneously to all five D lines, and five simultaneous
measurements are made on the five Q lines.
The advantage of this procedure is that it greatly speeds up the test. The test
for VIH is analogous.
DFT changes the chip area to (1 + ∆)A. The number of chips on a wafer of area
N A is now given by, N A/(A + ∆A) = N/(1 + ∆). The cost of a good chip with
DFT is given by,
Cw
Cc (DF T ) = N
1+∆ y(A + ∆A)
Cc (DF T ) − Cc
Cost increase = × 100 percent
Cc
(1 + ∆)y(A)
= − 1 × 100 percent
y(A + ∆A)
Using the yield formula of Equation 3.12 (p. 46 in the book), we get
(1 + Ad/α)−α
Cost increase = (1 + ∆) × percent
(1 + (1 + ∆)Ad/α)−α
α
Ad∆
= (1 + ∆) 1 + − 1 × 100 percent
α + Ad
which is the required result.
For the given data, d = 1.25 def ects/cm2 , α = 0.5, ∆ = 0.1, and A = 1 cm2 ,
we obtain
0.5
1.25 × 0.1
Cost increase = 1.1 1 + − 1 × 100 percent
0.5 × 1.25
= 13.86%
Qn = (Qp + A)(A + B)
Therefore,
P1
A
P2
C
A
B C
N1 B
Ground
CMOS NAND gate.
Circuit for Problem 4.5.
Notice that the sop faults of N1 and N2 have exactly the same tests. These two
faults are equivalent. Equivalence of transistor faults is discussed in the following
paper:
M.-L Flottes, C. Landrault and S. Provossoudovitch, “Fault Modeling and Fault
Equivalence in CMOS Technology,” J. Electronic Testing: Theory and Applications,
vol. 2, pp. 229-241, August 1991.
(b) The following sequence of four vectors contains one vector pair for each fault in
the above table:
Notice that this sequence also detects all single stuck-at faults in the logic model of
the NAND gate.
(c) A stuck-at fault in a signal affects two transistors in the two-input NAND gate.
For example, the fault A s-a-1 will mean that N1 remains permanently shorted
(N1-ssh) and P1 remains permanently open (P1-sop). The following table gives all
equivalences:
Notice that the three equivalent faults, A s-a-0, B s-a-0 and C s-a-0, are actually
caused by different faulty transistors. They are detected by the same test (11).
[f0 ⊕ f1 ] ⊕ [f0 ⊕ f2 ]
= [f0 f1 + f0 f1 ] ⊕ [f0 f2 + f0 f2 ]
= (f0 f1 + f0 f1 )(f0 f2 + f0 f2 ) + (f0 f1 + f0 f1 )(f0 f2 + f0 f2 )
= (f0 f1 + f0 f1 )(f0 f2 )(f0 f2 ) + (f0 f1 )(f0 f1 )(f0 f2 + f0 f2 )
= (f0 f1 + f0 f1 )(f0 + f2 )(f0 + f2 ) + (f0 + f1 )(f0 + f1 )(f0 f2 + f0 f2 )
= (f0 f1 + f0 f1 )(f0 f2 + f0 f2 ) + (f0 f1 + f0 f1 )(f0 f2 + f0 f2 )
= f0 f1 f2 + f0 f1 f2 + f0 f1 f2 + f0 f1 f2
= (f1 f2 )(f0 + f0 ) + f1 f2 (f0 + f0 )
= f1 f2 + f1 f2
= f1 ⊕ f2
= Left hand side of Equation 4.4
i(c s − a − 0) = b(ab) = ab
i(f s − a − 1) = (a + b)a = ab
The two faulty functions are indistinguishable and hence the two faults are equiv-
alent.
z(c s − a − 1) = ab.(ab.b)
= ab.(ab + b) = ab
z(f s − a − 1) = ab
The two faulty functions are indistinguishable and hence the faults are equiva-
lent.
programs will collapse faults as shown above. However, functional fault collapsing
can further reduce the number of faults to 10. As shown in Example 4.11 (see page
75 of the book), the s-a-1 faults on A1 and B1 are equivalent, and so are the s-a-1
faults on A2 and B2.
Whether we take the set of 12 faults or the set of 10 faults, their
detection requires all four input vectors.
14
sa0 6
sa1 12 sa0
sa0 sa0 sa1
sa0 sa1 sa0 sa1 sa0
sa1 4 sa1 sa1 sa0
2
sa1
10 13
3 7 15
sa0 sa0 18
sa1 sa0 sa1
8 17 sa0
sa1 sa0 sa0 sa1
sa1 sa1
sa0 11 16
sa1 sa0 Deleted due to
sa1 equivalence
5
Circuit for Problem 4.11: (b) Equivalence collapse ratio = 20/36 = 0.56
(c) Dominance (uncollapsed faults at checkpoints) collapse ratio = 17/36 = 0.47
d2 i
e1
k
e
b
e2
f
h
g
There are nine checkpoints in this circuit. These include three primary inputs,
a, b and c, and six fanout branches, d1, d2, f , e1, e2 and g. The checkpoint fault
set consists of eighteen faults – s-a-0 and s-a-1 faults on the nine lines.
Notice that lines d and e of the original circuit are not checkpoints. If we did
k(d s − a − 0) = c+b+a+b
= c + b + ab
k(g s − a − 1) = c + ab + ab + a
= c + ab + a
The two faulty functions are shown by Karnaugh maps below. In both cases, the
functions have exactly one false minterm, abc. Since the two faulty functions
are identical the corresponding faults are equivalent.
b c ab c
a a
c c
ab a
k with d s-a-0 k with g s-a-1
Note: this type of fault equivalence is functional and is often difficult to find by
typical fault analysis tools, which rely on structurally identifiable equivalences.
5.2
The following figure shows a two-bit shift register. Initially, both flip-flops are in the
0 state. The first two 0 inputs initialize the flip-flops to the 00 state. Subsequent
inputs, outputs and state transitions are shown in the figure.
Input Output
00111010 00 FF1 FF2 111010000 XX
Initialization
State transitions
XX 0X 00 00 10 01 10 11 11 01 00
10
1/0 1/0
0/1
0/1
01
Clear
00/0
10/1
00 11 10/1
A necessary condition for an Eulerian path that will cover all edges traversing
each edge exactly once is that the indegree must equal outdegree at each vertex.
Since the state diagram does not satisfy this condition, an Eulerian path is not
possible.
Notice that the above is only a necessary (not a sufficient) condition. Another
condition, which is satisfied in this case, is that the graph should be strongly con-
nected.
5.4
The longest path in the circuit (see Figure 5.2) is C0 to C4 . The delay of this path
should be tested for both rising and falling transitions. As shown in Example 5.3, the
path delay for a rising transition is tested by vector 2 followed by 6, which causes
the transition to ripple through the path. Similarly, the path delay for a falling
transition can be tested by vector-pair, 6 followed by 2. From Table 5.2, vectors 1
through 6 cover all stuck-at faults. Since the circuit is combinational, these vectors
can be applied in any order. We construct a sequence of seven vectors using these
six vectors that contains the two delay test vector-pairs. The sequence is 1, 2, 6, 2,
3, 4, 5.
Note: If we use the result of Table 5.3, another sequence of six vectors, 6, 2, 6,
5, 4, 3, for all stuck-at faults and two path delay faults can be constructed.
5.6
(a) Behavioral simulator: VHDL or Verilog circuit model, clock cycle accurate tim-
ing.
(b) Circuit-level simulator: e.g., Spice.
(c) Switch-level, or mixed-mode logic (with MOS capability), or circuit-level simu-
lator.
(d) Multiple-delay logic, or circuit-level simulator.
(e) Unit-delay logic simulator.
5.7
When the two control inputs are changed to 0, the bus will be in the “floating” state
and will retain its previous state, which is 1. Thus, the output of the inverter will
remain 0.
In the logic model of Figure 5.7, initially all four inputs to the bus driver (shaded
block) may be 1. That will set the bus node to 1 and the output to 0 states. When
the two control inputs (top and bottom inputs to AND gates in the shaded block)
are changed to 0, the bus output will change to 0 and the output will change to 1.
Thus, the logic model gives incorrect values.
5.8
The following circuit models an AND bus. This is a combinational model, which
does not have memory. When both controls are off, C1 = C2 = 0, and unknown (X)
value appears at the output. Logic simulators are often designed to supply the X
value. The circuit can be modified to produce a 0 or a 1, instead of X. The bus
will be set to a 0 if the X input of the OR gate is removed. It will produce a 1 if
the three-input OR gate is omitted.
When only one control, C1 or C2, is turned on, the corresponding data, either
D1 or D2, appears at the output. When both controls are on, the output is D1 · D2.
Besides the lack of memory, this model does not also have the bidirectional
behavior that is usually present in MOS circuits.
D2
C2
5.9
The following schematic shows a logic model for a bus with memory. When both
drivers feed data to the bus, i.e., C1 = C2 = 1, D1 · D2 appears at the output,
assuming a 0-dominance. When both drivers are turned off, i.e., C1 = C2 = 0,
the output retains its value through feedback. When only one driver is on, the
corresponding data input appears at the output.
C1
D1
bus output
D2
C2
This model represents most of the characteristics of a MOS bus, with the excep-
tion of bidirectionality. One problem with it is that it is an asynchronous sequential
circuit and cannot be correctly simulated by some simulators. An event-driven logic
simulator can simulate it, but will be inefficient in comparison with synchronous
circuit simulation.
5.10
With the given inputs, 00, and output X, when the clock is applied the circuit will
not be initialized. The reason is that in a three-state logic system the inversion of
X is also X.
The circuit can be initialized to a 1 output by clocking the flip-flop when a 11
input is applied. Then, if we change the input to 10 and clock the flip-flop, the
output will become 0. These two vectors can be correctly simulated by a three-state
logic simulator.
5.11
The two cases are sketched below. The rise and fall delays of the OR gate are
denoted by tr and tf , respectively. In (a) the output pulse width is 8 units and in
(b) it is 4 units.
(a) Output
tr=5 tf=3
(b) Output
time units
0
5.12
The two cases are sketched below. The rise and fall delays of the OR gate are
denoted by tr and tf , respectively. In (a), a rise is first scheduled to occur at 3 time
units after the rising edge of the input. Before this rise takes place, the input falls
at 1 unit, and reschedules a falling output at time 6 units. A conservative simulator
produces an unknown (X) output between 3 and 6 units of time. This is shown as
a level between logic 0 and 1 in the following figure.
Input
1
tr=3
tf=5
(a) Output
tr=5
In (b), the output cannot rise until 5 units of time. Meanwhile, at time unit 1, a
fall is scheduled to be completed at time unit 4. Thus, the output does not change
at all.
Case (b) is an example of a pulse being filtered by a slow gate. In simulators,
this phenomenon is referred to as spike suppression. The actual waveform produced
by the simulator depends upon the specific assumptions made. In pessimistic sim-
ulation, a pulse of ambiguous height may be produced as in case (a) above. In
optimistic simulation, the output may remain unchanged if the input pulse width is
smaller than the gate delay.
5.13
Upon the evaluation of a zero-delay gate, if the output changes then the new event
is added to the current event list. Thus, all zero-delay events would be processed
before the current event list becomes empty and the time is advanced.
5.14
For unit-delay simulation only two time slots are needed: current-time and next-
time. When the current-time event list becomes empty, the time pointer is moved
5.15
Let us assume that the circuit has F faults and V vectors detect all faults. According
to the given information, the coverage rises linearly from 0 to F faults as the number
of simulated vectors increases from 0 to V . This is shown in the figure below.
Assuming τ to be the CPU time required to simulate one vector in the true-value
Faults detected
0 Vectors simulated
0 V
Since faults are uniformly detected, each vector detects F/V new faults not detected
by the previous vectors. Thus, the fault simulator divides the fault set into V equal
subsets, each containing F/V faults. The F/V faulty circuits corresponding to the
faults detected on the first vector are simulated through just one vector requiring
a time τ F/V . The F/V faulty circuits corresponding to the faults detected on the
second vector are simulated through two vectors requiring a time 2τ F/V . Similarly,
the F/V faulty circuits corresponding to the faults detected on the ith vector are
simulated through i vectors requiring a time iτ F/V . When we include the simulation
time for the fault-free circuit, the total CPU time for simulation with fault dropping
is given by,
V
iτ F F 1+V
T (f ault dropping) = τ V + = τ V (1 + · )
i=1
V 2 V
5.16
Since no fault dropping is used, the serial fault simulator must simulate the entire
circuit n + 1 times. Assuming the CPU time for one simulation with all vectors is
T (serial) = t(n + 1)
Using CPU time t, the parallel simulator processes w − 1 faults. Thus, it will make
n/(w − 1) such passes, requiring total time,
tn
T (parallel) =
w−1
Therefore,
T (serial) (n + 1)(w − 1)
=
T (parallel) n
5.17
The circuit of Figure 5.22 is shown below. The bits of the four-bit word are assigned
as follows:
Bit 0: G, good circuit
Bit 3: Faulty circuit with fault F3, second input of first AND gate s-a-1
bit 1 (F1)
bit 2 (F2)
bit 3 (F3)
bit 0 (G)
1 1 1 1 0 1 0 1
1
F1 F3
0
sa1 sa1 0
0 1 0 0 0 1 0 1
F2
sa1 0 1 1 0
1
1 1 0 1
1 1 0 0 1 G F1 F2 F3
1
1
1 0 0 1
1 1 1 1
The figure shows the good and faulty circuit values for each signal by a four-bit
word. A comparison among bits of the word at the primary output indicates that
only the bit corresponding to F2 differs with the good circuit output. Hence, the
vector 101 detects F2 but does not detect F1 and F3.
Lc = (La ∩ Lb ) ∪ (La ∩ Lb ) ∪ c1 , if c = 0
or Lc = (La ∩ Lb ) ∪ (La ∩ Lb ) ∪ c0 , if c = 1.
5.19
The two simulators differ in the dynamic memory usage. The major part of the
memory used by each simulator consists of the lists that are stored for each line
of the circuit. These lists are dynamic and continuously change as the simulation
progresses. In a deductive fault simulator, the list for a line contains the faults
that affect the value of that line. In a concurrent fault simulator, the list for a line
contains all faults that affect the gate producing the signal on the line. Thus, the
list may contain some faults that do not affect the output line but only affect the
inputs of the gate. Since such faults will not be included in the fault list of that line
in a deductive fault simulator, the corresponding list will be shorter.
Having a complete picture of faulty-circuit gates (i.e., its input and output signal
values) allows the concurrent simulator to accurately simulate the events occurring
at gates. In general, when gates have different rise and fall delays, the good-circuit
events and various faulty-circuit events on a line can occur at different times. The
timing in a deductive fault simulator basically follows the events of the good-circuit.
The other advantage that the expanded data-structure provides to the cuncur-
rent fault simulator is the ability to simulate a variety of non-Boolean and high-level
gates.
5.20
(a) Though all four types of simulators can be used, deductive and parallel algo-
rithms will experience significant slow down due to embedded memory blocks
that are usually simulated at the functional level. Complexity of the parallel
algorithm will also increase due to the non-Boolean signal states, X and Z. In
5.21
(a) When the tests can detect both single faults, there is high probability of de-
tecting the multiple fault. Only in the rare case that the two faults mask each
other (two-way masking) will the multiple fault go undetected.
(b) The test will not detect the multiple fault only if f2 masks the effect of f1
produced by the test. Usually, the probability of this one-way masking is
small, but it is higher than the two-way masking in (a).
(c) In the majority of cases where single faults f1 and f2 are not detectable by the
tests, the multiple fault (f1,f2) may also go undetected. However, in a special
case where a test activates both single faults but fails to propagate the fault
effect to a primary output, the two fault effects may cooperatively propagate
to the output, detecting the fault.
5.22
For N faults, we effectively simulate the good circuit and N faulty copies of the
circuit, each containing one fault. Suppose the circuit has G gates. At any time
about half of the faulty circuit gates are identical to the good circuit gates because
the corresponding faults are not active. Gates in these circuits are not explicitly
simulated by the concurrent fault simulator. For the remaining N/2 circuits in
which some signals differ from the good circuit, only a fraction α of gates actually
differ from their counterparts in the good circuit. Taking all this into account, the
concurrent fault simulator will only evaluate G + αGN/2 gates, which is 1 + αN/2
times the gates simulated in a true-value simulation.
5.23
The following figure shows the TEST-DETECT procedure. First, true-value simu-
lation determines the values for all lines. These are the binary values shown in the
figure. Next, we start at the fault site. The value 0 activates the s-a-1 fault as D.
1 0(D)
0(D)
0
s−a−1 1
So, we temporarily replace 0 with a D. This is shown as 0(D). Now D fans out to
5.24
Differential fault simulation of two faults requires three steps illustrated in the figure:
1 0
0
0 0 1
1
1
1
Step 1: True−value simulation.
1 0 1
s−a−1 Fault not
0 detected
0 0 1 1
Saved output
1
value is 1
1
1
Step 2: Simulation of first fault.
1 1 0 Fault
1 0
0 detected
s−a−1 1 0
0 1
1 0 Saved output
value is 1
1 0
1
Step 3: Simulation of second fault.
Step 1: True-value simulation. All line values are determined for the given input
vector, 101, using logic simulation. The primary output value, 1 in this case,
is saved.
Step 2: Simulation of first fault. Since the existing value at the site of the s-a-1 fault
is 0, we place a 0 → 1 event there. Event-driven logic simulation propagates
events until no more events exist. If the new output value differs from the
saved true-value output, then the fault will be detected. In this case it is not
detected.
• It is possible that the first fault changes the value at the site of the second
fault. In that case, Step 3 will begin with just one event, because the second
fault will be inactive for the signal states at the end of Step 2. However, as
the simulation proceeds in Step 3, the second fault will become active and the
second event will be placed.
4.52
Sample size, Ns = 0.44x(1 − x)
∆2
where ±∆ is the 3σ range of the coverage estimate and x is the sample coverage.
Using the given data, ∆ = 0.02 and x = 0.70, we obtain
(1,1)6
IN0 (2,3)4
(6,2)0
IN1 OUT0
(1,1)5 6
5
6
(2,3)4 (CC0,CC1)CO
(1,1)6
IN2
Circuit of Figure 6.1 with combinational SCOAP measures.
6.2 SCOAP
(1,1)5 5
B D (2,3)3
(5,4)0
C G
(1,1)5 5
7 (3,2)5
E
7 F (CC0,CC1)CO
(1,1)6
A (2,4)3
6.3 SCOAP
(1,1)9
(1,1)11 11 x (4,2)6
1
x (CC0,CC1)CO
2
(1,1)10 10
x (3,2)8 (4,2)8
3 w
(1,1)10 1
x 8
4 (4,2)6 (5,5)3
(1,1)9 9
x
5
(8,5)0
8 w
(4,2)6 2
(1,1)9 9
x
6
Circuit of Figure 6.21 with combinational SCOAP measures.
(1,1)5
x z
1 2 (5,4)0
a 5
(3,2)3 e F
1
(1,1)6 3
x 6 z
2 3
c 5 (CC0,CC1)CO
(1,1)5 b (4,2)3
x z
3 1 f
(1,1)7 7
x d 5 (5,5)0
4 (3,2)5 z 3 F2
7 4
(1,1)6 6
x (4,2)3
5
Circuit of Figure 6.22 with combinational SCOAP measures.
6.5 SCOAP
(1,1)7
E
(1,1)8 (4,4)4
A (3,2)6 (CC0,CC1)CO
8
B
(1,1)8
8
(2,3)6 (8,2)0
(1,1)8 J
C
(1,1)7
D
REGX REGY
0 0
m4 loado
0
ZERO
0
0
0
REGO 0
0
C15 C10 C9
OUTPUT
Data flow graph (DFG) for the circuit of Figure 6.24.
6.7 SCOAP
The steps of calculation for SCOAP testability measures are shown in the three
figures that follow. Combinational measures are shown as (CC0, CC1)CO and
sequential measures as [SC0, SC1]SO.
(1,1) [0,0]
8
a (2,4)0
(1,1) [0,0] [0,0]0
8
b g
f
(1,1)
8
(4,2)
8 8
c e (2,4)
8 8
[0,0] [0,0]
8
(2, ) [0,0]
8 8
8 8
[0, ]
d
[ , ] Q D
8 8
8 8
8 8
FF
( , )
MC CK (1,1) [0,0]
8
8
a (2,4)0
(1,1) [0,0] [0,0]0
8
b f g
(1,1)
8
(4,2)
8 8
c e (2,4)
8 8
[0,0] [0,0]
8
(2,9) [0,0]
8 8
[0,1]
d
Q D
(3,7)
8 8
FF
[1,1]
MC CK (1,1) [0,0]
8
RESET (1,1) [0,0]
8
Circuit of Figure 6.25: Converged controllability values.
a (1,1)3 [0,0]0
(2,4)0
(1,1)5 [0,0]0 [0,0]0 g
b f
(1,1)12 (4,2)2
c e (2,4)9
[0,0]1 [0,0]0
(2,9)4 [0,0]1
[0,1]0
d
Q D
(3,7)6
FF
[1,1]0
MC CK (1,1)16 [0,0]2
6.8 SCOAP
The steps of calculation for SCOAP testability measures are shown in the three
figures that follow. Combinational measures are shown as (CC0, CC1)CO and
sequential measures as [SC0, SC1]SO.
(2,4)0 [0,0]0
G O1
4
(2,3)
8
G1
[0,0]
8
I1 (1,1) [0,0]
8
(2,4)
8
G5
I2 (1,1) [0,0] [0,0]
8
G2 G8 O2
I (1,1) [0,0]
8
[0,0]
8
3
(4, )
8
8
G6
[0, ]
8
8
I
4
(2, )
8
8
G
3 [0, ]
8
8
(2,4)0 [0,0]0
G7 O
3
( , ) [ , ] (2,4) [0,0]
8
8
8
8
8
8
Q D
FF
8
G1
[0,0]
8
I1 (1,1)
[0,0]
8
(2,4)
8
G5
I2 (1,1)
[0,0] [0,0]
8
8
(2,3) (5,11)0 [0,0]0
8
G2 G8 O2
I3 (1,1)
[0,0]
8
8
[0,0]
8
(4,6)
8
G6
[0,1]
8
I4
(2,5)
8
G3
[0,1]
8
(2,4)0 [0,0]0
G7 O
3
8
Q D
FF
MC CLOCK (1,1) [0,0]
8
RESET (1,1) [0,0]
8
Circuit of Figure 6.26: Converged controllability values.
3
0 (2,4)0 [0,0]0
G O1
4 4
(2,3)2
G1
4 [0,0]0
9
I1 (1,1)4 [0,0]0 12
(2,4)9
G
11 5
I (1,1)3
[0,0]0 13 [0,0]0
2 (2,3)11 (5,11)0 [0,0]0
G2 G8 O
I3 (1,1)3
[0,0]0 13 [0,0]0 2
11
(4,6)7
G
10 6 [0,1]0
I4
6 9
(2,5)2
4
G3
[0,1]0 (2,4)0 [0,0]0
0
3
G7 O
3
8
8
8
8
B(x) (1,1)
8
V(x)
(7, ) [0,0]
8 8
8 8
8
[2, ]
8
8
8
8
8
Q D Q D D(x)
[1, ] [1, ] [2,2] [2,2]0
8
8
8
8
8
FF FF
MR MR
(1,1) [0,0]
8
RESET
(1,1) [0,0]
8
CLOCK
Circuit of Figure 6.27: Initialization and first controllability pass.
(3,15) [1,4]
8
B(x) (1,1)
8
V(x)
(7,16) [0,0]
8 8
8
[2,4]
8
Q D Q D D(x)
[1,3] [1,3] [2,2] [2,2]0
8
8
FF FF
MR MR
(1,1) [0,0]
8
RESET
(1,1) [0,0]
8
CLOCK
Circuit of Figure 6.27: Converged controllability values.
(3,15)6 [1,4]1
B(x) (1,1)8
V(x)
(7,16)2 [0,0]2
[2,4]0
(7, ) [2, ]
8
8
8
8
(7, ) [2, ]
8
8
8
8
D Q D Q
( ,4)
8 8
8 8
[ ,1] 1 2
CLOCK
(1,1) [0,0]
8
8
RESET Q2
(1,1) [0,0]
8
8
(3, )0 [1, ]0
8
Q1 (3, )0 [1, ]0
8
Circuit of Figure 6.28: Initialization and first controllability pass.
(7,11) [2,3]
8
(7,11) [2,3]
8
D Q D Q
(26,4)
8 8
[7,1] 1 2
CLOCK
(1,1) [0,0]
8
RESET Q2
(1,1) [0,0]
8
22 6
(7,11)18 [2,3]5 7 4
(7,11)3 [2,3]1
D Q D Q
7
2
15 (26,4)3
[7,1]1 10 1 2
6
3 17
23 6 10 3 17 5
5
CLOCK
(1,1)10 [0,0]3
RESET Q2
(1,1)10 [0,0]3 (3,14)0 [1,4]0
Q1 (3,7)0 [1,2]0
Circuit of Figure 6.28: All controllability and observability values.
( ,7) [ ,2]
8
8
8
h MS
1
D Q D Q
MR
CLOCK
(1,1) [0,0]
8
RESET (1,1) 8
[0,0]
8
Q Q
1 2
(3, ) [1, ] ( ,3) [ ,1]
8
8
8
8
8
8
8
Circuit of Figure 6.29: Initialization and first controllability pass.
(10,7) [3,2]
8
h MS
1
D Q D Q
MR
CLOCK
(1,1) [0,0]
8
RESET
(1,1) [0,0]
8
Q Q
1 2
(3,10) [1,3] (6,3) [2,1]
8
9 3
(10,7)3 [3,2]1
h MS
1 3
D Q D Q
1
MR
13
4 13 8
3
4
CLOCK
(1,1)8 [0,0]3
RESET
(1,1)9 [0,0]3 Q Q
1 2
(3,10)0 [1,3]0 (6,3)0 [2,1]0
8
8
8
8
D Q D Q Z
(3, )0 [1, ]0
8
C C
MR MR
(1,1) [0,0]
8
CLOCK
(1,1) [0,0]
8
RESET
X1 (1,1) [0,0] X2 (3, )0 [1, ]0
8
8
Circuit of Figure 6.30: Initialization and first controllability pass.
8
D Q D Q Z
(3, )0 [1, ]0
8
C C
MR MR
(1,1) [0,0]
8
CLOCK
(1,1) [0,0]
8
RESET
X1 (1,1) [0,0] X2 (3,8)0 [1,2]0
8
D Q D Q Z
(3,15)0 [1,4]0
C C
MR MR
11 18
11 18
3 5
3 5
(1,1)11 [0,0]3
CLOCK
(1,1)11 [0,0]3
RESET
X1 (1,1)7 [0,0]2 X2 (3,8)0 [1,2]0
Circuit of Figure 6.30: Stabilized controllability and observability values.
8
8
8
8
8
8
8
(1,1) [0,0] D Q D Q
8
Z
MR MR
(1,1) [0,0]
8
CLOCK
(1,1) [0,0]
8
RESET
A1 A2
(3, )0 [1, ]0 (3, )0 [1, ]0
8
Circuit of Figure 6.31: Initialization and first controllability pass.
8
8
8
(1,1) [0,0] D Q D Q
8
MR MR
(1,1) [0,0]
8
CLOCK
(1,1) [0,0]
8
RESET
A1 A2
(3, )0 [1, ]0 (3,7)0 [1,2]0
8
(1,1) [0,0] D Q D Q
8
MR MR
(1,1) [0,0]
8
CLOCK
(1,1) [0,0]
8
RESET
A1 A2
(3,12)0 [1,3]0 (3,7)0 [1,2]0
Circuit of Figure 6.31: Stabilized controllability values.
(1,1)11 [0,0]3 D Q D Q
Z
MR MR
15 10
4 15 3 10
(1,1)10 [0,0]3 4
CLOCK 3
(1,1)10 [0,0]3
RESET
A1 A2
(3,12)0 [1,3]0 (3,7)0 [1,2]0
Circuit of Figure 6.31: All controllability and observability values.
a
c
b
a b c
1 D D
Propagation D cubes D 1 D
a b c
(last two cubes are D D D
0 X 0
Singular cover: not propagation D- 1 D D
X 0 0
cubes since they do not D 1 D
1 1 1
propagate D or D):
D D 0
D D 0
a b c
Primitive D cube of failure for a sa1:
0 1 D
Exclusive-OR gate:
a
c
b
a b c
0 D D
D 0 D
D 1 D
a b c Propagation D cubes 1 D D
0 1 1 (last four cubes are 0 D D
Singular cover: 1 0 1 not propagation D- D 0 D
1 1 0 cubes since they do not 1 D D
0 0 0 papagate D or D): D 1 D
D D 0
D D 1
D D 1
D D 0
a b c
Primitive D cubes of failure for a sa1: 0 0 D
0 1 D
a
c
b
The three-vector test will detect the error if the OR gate were to be
replaced by an AND, NAND or NOR gate.
(c) OR gate replaced by an exclusive-OR gate: All three vectors will produce the
same output as that of the OR gate. Therefore, this error will not be detected. It
is necessary to include a fourth vector 11 to detect this error. The addition of the
1
a 0 (1 for OR gate)
c
1
b
fourth vector makes the vector set exhaustive, which completely verifies the truth
table of the gate.
Note: In a simulation-based comparison of two circuits to establish logic equiv-
alence, a good (though not complete) heuristic is to use a vector set that covers all
single stuck-at faults in both circuits. See the paper: V. D. Agrawal, “Choice of
Tests for Logic Verification and Equivalence Checking and the Use of Fault Simula-
tion,” Proc. 13th Int. Conf. VLSI Design, 2000, pp. 306-311.
A d 0 g 0
Y
0 h
sa1
1 D 0
B e
k Z
C 0
1
f
7.4 D-ALG
We level order the signals and proceed as follows:
7.5 PODEM
The figure below shows the SCOAP testability measures used for guiding PODEM.
(1,1)8
(1,1)5
The steps of the PODEM algorithm are recorded in the following table:
Explanation: An X-path is a path from the fault site to a PO, such that the
signals on it are either faulty states (D or D) or undetermined. An “ok” for X-
path in the table means that one or more such paths exist. Having no X-path is a
reason for backup because its existence is a necessary condition for the detection of
the fault. When a series of backups leads to an empty stack, it indicates that the
objective g = 0 is impossible. As a result, the fault h s-a-1 cannot be activated
and, hence, it is redundant. Three backtracks.
The steps of the PODEM algorithms are recorded in the following table:
7.8 PODEM
The figure below shows the SCOAP testability measures used for guiding PODEM.
(1,1)14 17
A (2,10)8
17 p
B 17 r
(1,1)12 16
C h (2,8)10
(2,4)13 14
(1,1)16 13
15 0
0 (2,7)8 Z
17 s−a−1 m
D 10 u (11,10)0
g
17 (3,2)15
0 k (5,5)10 10
15 (2,4)13
(1,1)16 (7,2)8
D 14 w
16 0 q
(6,5)5
12
(1,1)12 s
E l
(5,2)8
F (3,3)10
(1,1)12
7.9 PODEM
The following figure and table show the SCOAP testability measures and the steps
of PODEM. See Problem 7.5 for an explanation of X-path.
(1,1)14 17
A (2,10)8
17 p
B 17 r
0
(1,1)12 s−a−1 16 0
C h (2,8)10
(2,4)13 14
(1,1)16 13
D 15 D
0 1
(2,7)8 Z
17 m 1 10 u (11,10)0
g
17 (3,2)15
1 k (5,5)10 10
15 (2,4)13
(1,1)16 (7,2)8
D 1 14 w
16 q
(6,5)5
12
(1,1)12 s
E l
(5,2)8
F (3,3)10
(1,1)12
(1,1)14 1 17
A (2,10)8
0 17 p
B 17 r s−a−0
(1,1)12 16 0
C h (2,8)10 D
(2,4)13 14
(1,1)16
15
13 (2,7)8
17 0 Z
10 u (11,10)0
g m
17 (3,2)15
k (5,5)10 10
15 (2,4)13
(1,1)16 (7,2)8
D 14 w
16 q
(6,5)5
12
(1,1)12 s
E l
(5,2)8
F (3,3)10
(1,1)12
7.11 SOCRATES
The following figure shows the SCOAP testability measures used for SOCRATES.
(1,1)14 0 17
A (2,10)8
17 p
B 17 r
(1,1)12 0
16 h (2,8)10
C (2,4)13
(1,1)16 D 14
15 1 s−a−0
1 (2,7)8
17 1 13 Z
1 10 u (11,10)0
g m 0
17 (3,2)15
k (5,5)10 10
15 (2,4)13
(1,1)16 (7,2)8
D 14 w
16 q 1
(6,5)5
12
(1,1)12 s
E l
(5,2)8
F (3,3)10
(1,1)12
7.12 SOCRATES
The following figure shows the SCOAP testability measures used for SOCRATES.
(1,1)14 1 17
A (2,10)8
1 17 p
B 17 r
(1,1)12 0 0
16 h (2,8)10
C (2,4)13
(1,1)16 14
15 D D
1 (2,7)8
17 13 Z
s−a−0 D 10 u D (11,10)0
g 0 m
17 (3,2)15
k 10
D
(5,5)10
15 (2,4)13
(1,1)16 (7,2)8
D 14 w 1
16 q 1
0 (6,5)5
12
(1,1)12 s
E l 1
(5,2)8
F (3,3)10
(1,1)12
The following figure shows the circuit and the signal values specified by D-
algorithm.
1 a1
a e1 1
b1
b
1
c1
c f1
d1 1 g1
d i1 D
h1
h
s−a−1
0 a2 D
e2
b2
1
1 g2
i2
h2 0
c2
f2
d2
j
k
The following figure shows the SCOAP testability measures used to guide the
PODEM algorithm, and the signal values detremined.
1 a1
(1,1)7 7
a (2,3)5
(1,1)7 b1 (CC0,CC1)CO
b e1 1
1 7 (5,4)2
(1,1)7 7 c1
c f1
(1,1)7 d1 1 g1
d (2,3)5
7 i1 D
(1,1)5 5 h1
h (2,6)0
s−a−1
0 a2 D
(2,3)7 7
9
b2 1
e2
9 1 g2
(2,6)2
(5,4)4 h2
9 c2 i2 0
f2
9 d2
(2,3)7 j
(1,1)3
k (4,2)0
1 a1
(1,1)7 7
a (2,3)5
(1,1)7 b1 (CC0,CC1)CO
b e1 1
1 7 (5,4)2
(1,1)7 7 c1
c f1
(1,1)7 d1 1 g1
d (2,3)5
7 i1 D
(1,1)5 5 h1
h (2,6)0
s−a−1
0 a2 D
(2,3)7 7
9
b2 1
e2
9 1 g2
(2,6)2
(5,4)4 h2
9 c2 i2 0
f2
9 d2
(2,3)7 j
(1,1)3
k (4,2)0
e
(2,3)8
9 (11,3)0
(CC0,CC1)CO (7,7)4 4 X
f 1
r D
D
7
n 7
0 (2,3)8 s−a−1
(1,1)10 g
A 0 (4,4)7 s
9 (8,8)6
(1,1)10
B d 11
0 D
k t 6
10 m (14,6)0
1 q 1 Y
D 10
11 h 1
p (5,5,)9 q
8
u (10,10)6
l 12
v D
12 (16,2)0
(1,1)15 Z
C 1
1 a1
(1,1)7 7
a (2,3)5
(1,1)7 b1 (CC0,CC1)CO
b e1 1
1 7 (5,4)2
(1,1)7 7 c1
c f1
(1,1)7 d1 1 g1
d (2,3)5
7 (1,1)5
i1 D
h 5 h1
(2,6)0
s−a−1
0 a2 D
(2,3)7 7
9
b2 1
e2
9 1 g2
(2,6)2
(5,4)4 h2
9 c2 i2 0
f2
9 d2
(2,3)7 j
(1,1)3
k (4,2)0
c
n
D
k q
D 1
1 sa0 d
a D m p
b g D
0 e
h 1
f
c n
0
k q
D
1 d sa0 D
a 1 m p
b g D
0 e
h 1
f
C. Examine the reduced circuit for another redundant fault. We find that m
s-a-0, which was testable in the original circuit, is now redundant.
D. Repeat steps B and C until all faults in the reduced circuit are testable.
7.20 PODEM
SCOAP testability measures for the circuit of Figure 7.24 (page 190 of the book)
are shown in the figure below. Steps of PODEM for the fault Z s-a-1 follow.
e
(2,3)8
9 (11,3)0
(CC0,CC1)CO (7,7)4 4 X
f 1
n r 0
7
7
(2,3)8
(1,1)10 g
A 0 (4,4)7 s
9 (8,8)6
(1,1)10 1 1
B d 11 t 6
10 k m (14,6)0
0
10 q Y
11 h 1
p (5,5,)9 q
0
8
u (10,10)6
l 12
v 0
12 (16,2)0
(1,1)15 1 Z
C s−a−1
1
7.21 SOCRATES
The SOCARTES solution for fault C s-a-1 in the circuit of Figure 7.24 (page 190
of the book) we will use static learning given in the solution to Problem 7.17. The
algorithm proceeds as follows:
Step 1: Objective – set C = 0.
Implication stack – C = 0.
Implications – none.
D-frontier – Z.
The next figure shows the result of this step.
A 1 (2,14)3
(1,1)16 23 5
(9,2)15 l
17
B 1 16
(2,3)14 f
(1,1)16 16
d sa1
g k n
C 1 (3,12)5
(1,1)16 (5,15)0
16 (7,3)10
e
D 16 10
(3,3)14 h
(1,1)16 16
(2,9)8 5 m
E 0 (2,14)3
(1,1)16
7.23 SOCRATES
For a SOCRATES solution to find a test for the fault f s-a-1 in the circuit of
Figure 7.30 (see page 197 of the book and the next figure) we use static learning:
7.24 PODEM
A PODEM solution for a test for the fault e s-a-1 in the circuit of Figure 7.30 (page
190 of the book and the next figure) is as follows:
A l
(1,1)16 23 5
f (2,14)3
17 0
B 16
(2,3)14 (9,2)15
(1,1)16 16
d 0 1
g 1 k n 0
C 0 (3,12)5
(1,1)16 (7,3)10 0 (5,15)0
16 1 sa1
e 0
D 1 16
(3,3)14 10 h
(1,1)16 16
(2,9)8 5 m 0
E (2,14)3
(1,1)16
7.25 PODEM
PODEM solution for a test for the fault B − d s-a-1 in the circuit of Figure 7.39
(page 207 and the figure below) is as follows:
(1,1)6
A (2,3)4
6 (6,3)0 1
d Y
g
sa1 h
(1,1)5 0 1 6 (4,7)2
5
B e
5 k 5 Z
C (3,2)3 (6,9)0
(1,1)5
8 f
8
(3,3)6
• time ≥ 1, all signals retain their values without any further change.
Neither the state of the master latch nor that of the slave latch is affected by the
change in D. To be stored correctly in the flip-flop, the data input (D) should
change earlier than the rising edge of CK by an interval known as the setup time.
Also, the data should remain unchanged beyond the rising edge of CK for a duration
known as the hold time.
CK
NOT gate
data must not change
top OR gate
bottom OR gate D
Q
time
0 1
Setup time is the time for the master latch to acquire a steady state after the D
input changes while the clock is in the active state (0 for the flip-flop of Figure 8.2
in the book.)
Hold time is the delay of the clock control gates (OR gates in the flip-flop of
Figure 8.2.) It is the interval that the clock takes to isolate the storing gates (two
NAND gates) of the master latch from the data input.
In the above case, data and clock changed simultaneously and the flip-flop
recorded the wrong (old) data. We illustrate a peculiar behavior of the latch when
data and clock changes occur close to each other. As shown in the next figure,
suppose the N OT gate has a delay of two units and all other gates have one unit of
delay. Suppose CK rises one unit after the fall of D. This produces simultaneous
0 → 1 transitions at the outputs of the two OR gates. The two equal delay NAND
gates now oscillate between 00 and 11 states.
D
OR1
NAND1
D
NOT 1
1
OR1 NOT
delay 2
OR2
OR2
1
1
CK
NAND1 NAND2
NAND2
The oscillations we observe in this example do not actually occur. Any unbalance
in the delays of the NAND gates will stabilize the state of the latch to either 01 or 10
state. Such delay-dependent behavior is commonly known as the race condition or
metastability. In our example, a race is possible if the separation between the clock
and data transitions is less than the delay of NOT gate. In general, a race condition
or metastability is avoided if the setup and hold time restrictions are satisfied.
8.2
It requires just one vector to initialize the circuit. If the initial state is unknown,
i.e., Cn = X, the vector An = Bn = 1 initializes the state to 1, irrespective of the
presence of any fault at the output Sn . Given this state, detection of any output
fault at the output reduces to a combinational ATPG problem of setting the output
to the opposite value. This can be done by a single vector: (An = 0, Bn = 0) will
set the output to 1 or (An = 0, Bn = 1) will set it to 0. Thus, just two vectors,
an initialization vector 11 followed by an appropriate vector to set the output, will
detect the output fault in the circuit of Figure 8.3 (see page 215 of the book.)
8.3
Considering the combinational logic of the circuit we find that for sensitizing a path
from a PI to PO, Sn , we must specify the other PI as well as the present state, Cn .
Thus, the circuit must be first initialized. Any input fault in the circuit of Figure 8.3
(see page 215 of the book) can be tested as follows:
Vector 1 (Initialization.) If the fault is s-a-1 type, then vector 11 is used to
initialize the circuits (both good and faulty) to 1. If the fault is s-a-0 type,
then vector 00 initializes the circuits to 0.
Vcetor 2 (Fault activation and path sensitization.) For a s-a-1 fault, the cir-
cuit has been initialized to a 1 state. A 0 is applied to the faulty line, activating
the fault as 0/1. Application of 1 to the other input propagates a value 0/1
to the output Sn . For a s-a-0 fault, the circuit is initialized to a 0 state. An
input vector 11 now activates the fault and also propagates its effect to Sn .
Thus, only two vectors are needed to test any input fault.
1. Fault activation. Assuming the present state to be unknown, we set the next
state to 1. For Cn = X, backward justification of Cn+1 = 1 in Figure 8.3 (see
page 215 of the book) gives us An = 1 and Bn = 1.
2. Path sensitization. For the next vector, the above next state becomes the
present state and the fault Cn s-a-0 is sensitized. We sensitize a path from Cn
to Sn by setting An = 1 and Bn = 1.
8.5
For test generation with the five-valued algebra, we use the following steps (also see
the illustration):
Step 2: This can only be justified by either DD or D1 input to the AND gate in
time-frame 0. DD is not possible due to the state input being X in the time-
frame -1. We place D1 by applying A = 1 and assuming that a state 1 can be
justified.
Step 3: Any input, 0 or 1, as shown in the figure, produces a state output X from
time-frame −1. Thus, the faulty circuit cannot be initialized to any known
state, including the 1 needed for the test. Hence, it is impossible to find
a test by the 5-valued algebra.
A A
0 or 1 1
s-a-0 s-a-0
0 or D D
X
1
X
0 or X D
B B
Time-frame -1 Time-frame 0
Test generation attempted with 5-valued algebra.
Following similar steps with the nine-valued algebra (see illustration below), we
find that two 1’s at A detect the fault at B as 1/0 in time-frame 0. Notice that the
fault is detected although the faulty circuit is never initialized.
X/0 1/0
B B
Time-frame -1 Time-frame 0
Test generation with 9-valued algebra.
0/X 1/0
Time−frame −1 Time−frame 0
X
C C
X 1/X
0,0/1,0 1,0,0/1
0,0,X 0,0/1,0 0,0,X 0/1,0,0/1
A C A C
sa1 0/1,0/1,X/1 1/0,1,X/0 sa1 0/1,0/1,X/1 1,1/0,X/1
1/0,1/0,X/0 FF 1,1/0,1 1/0,1/0,X/0 FF 0,1,1/0
B 1/0,1/0,X/0 B 1/0,1/0,X/0
1,1,X 1,1,X
Test simulation with initial state 1. Test simulation with initial state 0.
Note: Some test generators will find the potential detection test of the above
type. Others will consider the fault untestable (conservative approach.) Most fault
simulators will find the fault potentially detectable. Interestingly, the two test simu-
lation scenarios in the figure show that the fault is definitely detectable, though the
detection requires multiple observations. If we assume the initial state to be 1 then
the fault is detected as 1/0 after the application of the first clock. However, this
8.7
The note in the solution of Problem 8.6 explains the operation of a multiple obser-
vation test. Besides simulation, a multiple observation test can also be derived by
the following procedure.
An observable state variable, which cannot be initialized in the faulty circuit
but must be observed for fault detection, is represented symbolically by a Boolean
variable s. Inversion of s is s. A test sequence is derived such that any one of the
following pairs of outputs is produced:
We notice that irrespective of the value the uninitialized state variable assumes,
one element in each test output pair will provide definite fault detection. For exam-
ple, the outputs produced by the test (A, B) = (0,1), (0,1) of Problem 8.6 are 1/s
and 1/s, respectively, which agree with the second pair given above.
When the feedback in the circuit of Figure 8.25 (see page 250 of the book) has
no inversion, a test sequence (A, B) = (0,0), (0,1) will produce outputs 0/s and 1/s.
This is a multiple observation test. Details on multiple observation tests may be
found in reference [525] cited in the book.
8.8
The following figure shows the combinational 0 and 1 controllabilities as (CC0, CC1).
Notice that the output measures for a flip-flops are obtained by just adding 1 to
the input measures. This is due to assumptions that the clock has controllabilities
(1,1) and the combinational depth of a flip-flop is 0. The fault site can be driven
to 1/0 by controlling B = 1 and it cannot be driven to 0/1. Thus, its drivabilities
are d(0/1) = ∞ and d(1/0) = 1, respectively. Drivabilities of all other signals are
successively computed by simple path sensitization.
The path shown in bold lines is the least drivability (minimum effort) path.
A test obtained by a drivability-based ATPG procedure is shown in the lower fig-
ure. This three-vector test, (A, B) = (1, 1), (1, 1), (1, X), sensitizes the minimum
drivability path and we find that another path, shown by dotted lines, must also be
sensitized.
8 8
(CC0,CC1)
D (2,2) d(1/0)=
d(0/1)=
8 8
(1,1) d(1/0)=
A C (4,2) (5,3) Z (16,3)
F2 d(0/1)=
8
d(0/1)= d(0/1)=115
8
s−a−0 (2,2) d(1/0)=203
B d(1/0)=103 (6,3) d(1/0)=
8
E (7,4)
(1,1) F1 d(0/1)=
8
d(0/1)= 8 d(1/0)=101 d(0/1)=105 F3 d(0/1)=205
d(1/0)=1 d(1/0)= d1/0)=
8
Drivabilities for fault B s−a−0 in circuit of Figure 8.9. Bold lines show easiest drivability path.
D 0,0,0
1,1,1
A C 1,1,1 X,1,1 Z
X,0/1,0/1 F3 X,X,0/1
A three−vector test for fault B s−a−0. Dotted lines show an additional path sensitized.
1/0 1/0
0/1 0/1
1/0 0 0 0
1/0 0
1 X
0 1/0
NS NS NS 0
Z X Z 0 Z 0
Simulation of approximate test sequence shows it to be be invalid.
test, as shown in the following figure, has only one change. In the last time-frame
A is changed to 0. So, no new fault effect is produced there and the fault effect 1/0
produced in time-frame -1 is propagated to Z.
X 1 1 0 0 X
Time−frame −2 A CLR Time−frame −1 A CLR Time−frame 0 A CLR
PS sa0 PS sa0 PS sa0
X
1/0 0
0/1 1
1/0 0 0
1/0
1/0 1/0
1 X
0 1/0
NS NS NS X/0
Z X Z 0 Z 1/0
Correct test generation by time−frame expansion method.
The test sequence is (CLR, A, P S) = (1, X, X), (0, 1, 0), (X, 0, 1/0).
2. the fault effect is propagated to the boundary of the combinational logic, i.e.,
to one or more PO and/or one or more state variables.
8.11
Consider the time-frame expansion method of sequential circuit ATPG. A time-
frame consists of combinational logic with some fault activity (fault activation and
path sensitization.) In general, this activity must be justified at the PIs of the time-
frame by three-valued (0, 1 and X) logic and at the state inputs by nine-valued (0,
1, 0/1, 0/X, . . etc.) logic.
There are two types of time-frames, ones in which the fault is activated, and
others where the fault is not activated. Let us consider the time-frame in which the
fault is activated for the first time. To be a part of the test sequence, this time-frame
must propagate the fault effect either to a PO or to a state variable. We call this
the “first detection time-frame.” Clearly, such a time-frame is necessary for fault
detection.
In the first detection time-frame a combinational test detects the fault at its
boundary (PO or state output) when a suitable test vector at PI and state inputs is
applied. All preceding time-frames then only generate fault-free states leading to a
state input that is necessary for the first detection time-frame. If the combinational
test cannot be justified then the first detection time-frame will be impossible and
no sequential test can be obtained for the targeted fault.
A more detailed discussion of this result may be found in the reference [30] cited
in the book.
0 Z
A C 1 1/0
1
B
E 0
1
D s−a−0 1/0,1/0,1/0,1/0
0,0,0,0 C Z
A X,1,1,1 X,X,1,1
F2
1,1,1,1 1/X,1/X,1/X,1/0
B
F1 E
X,1,1,1
X,X,0,0 F3 X,X,X,0
8.13
A pseudo-combinational circuit is obtained by shorting all flip-flops in an acyclic
synchronous sequential circuit. We will prove that a test vector for the former,
when repeated dseq + 1 times, will be a test sequence for the latter, where dseq is
called the sequential depth and is the maximum number of flip-flops in any input
to output path. Our proof is based on a series of observations:
Observation 1: A clocked flip-flop is equivalent to a delay that equals the clock
period, T .
B F1 F3 CLR Level=1
Level=0 Level=1 Level=2 Level=0
Cycle−free circuit of Figure 8.9. Cyclic circuit of Figure 8.13.
Minimum distance levelization of s−graphs.
1. We inject the values of A and A into the feedback loop consisting of the two
NOR gates by applying B = 1. A = 1 is applied to activate the fault. We
assume that the two NOR gates have equal delays and simulate their outputs
independently, with the feedback inputs in the unknown (X) state. This is
illustrated in time-frame 1 in the following figure.
2. The outputs of NOR gates are applied after the feedback delays in time-frame
2. We find that the outputs, 1/0 and 1, are stable since another time-frame
will not change them.
B A B A B A B A B A
1 1 1 1 0 1 0 1 0 1
0/1 sa1 0/1 sa1 0/1 sa1 0/1 sa1 0/1 sa1
0/1 0/1 0 0 0
X X/0 1/0 0 1 0 1/0 0
X 1 1
X X 0 0 0/1 0
Note: Some ATPG programs will consider this fault to be untestable. Strictly
speaking, the logic model does not have the information to find tests for such faults,
which are often classified as race faults. The “race” refers to an unstable equilibrium
in which two possible states compete, each trying to win by getting through the feed-
back path first. When dealing with the analog behavior of the circuit, this condition
is referred to as metastability. For some set of gate delays the circuit will settle in
the correct state and the fault would be considered redundant. For other delays the
0
C
(a) Test generation with nine−value logic.
A
A
1 Z
B
C 1 1
C
B
(b) Boolean minimization. (c) Feedback−free combinational circuit.
The initialization sequence for the circuit of Figure 8.13 (see page 230 of the
book) is, (CN T, CLR)= (0,1). The procedure is illustrated in the following table
where the selected vector is shown in boldface.
Simulation-based initialization of circuit of Figure 8.13
Phase Types of vectors Trial vectors States Cost Remarks
CN T CLR F F 1 F F 2 func.
I Initial condition X X X X 2 Cost=#FFs
Starting vector 0 0 X X 2 No cost red.
Unit Hamm. dist. 1 0 X X 2 No cost red.
0 1 0 0 0 Cost red.
Circuit initialized (cost=0), Phase I completed.
This procedure cannot initialize the circuit in Figure 8.12, because neither CN T =
0 nor CN T = 1 can force any flip-flop into a defined state. These are the only pos-
sible trial vectors. Thus, the initial cost of 2 will never be reduced.
8.19 CONTEST
The CONTEST procedure for the s-a-0 fault in Figure 8.3 is as follows:
Unit Hamming 0 0 0 0 0
8
The test sequence is (An , Bn ) = (00), (10), (11). The selected vectors are shown in
boxes in the table.
FF
Activation cost (AC) equals DC1 at the fault site since the fault is of s-a-0
type. We use a weighting factor of 1,000 that multiplies AC. Thus, the fault
detection cost for vector 00 is,
Cost(00) = 1000 × AC + P C
= 1000 × 2 + 101 = 2101
Step 2: Unit Hamming distance vector 10 is simulated using the initial state Cn = 0
obtained in Step 1. All measures and costs are computed, as shown below,
DC0=1
DC1=0 DC0=0 DC0=2
PC=0 PC=1 DC1=1 DC1=0
A PC=0 PC=0 DC0=0
n PC=0 PC=101 DC1=101 DC0=2
1 PC=0 DC1=0
0 s−a−0 PC=0
1 PC=0
PC=0 DC0=1 0 Sn
PC=0 DC1=0 PC=0 1
PC=0 DC1=1
0 PC=0 DC0=0
Bn PC=1
1 PC=0 PC=100
DC0=0 PC=2
1
DC1=1
PC=0 0 C
PC=100 n+1
0
C
n DC0=0
DC0=0 DC1=1
DC1=101 PC=100
PC=0
FF
FF
Since the cost of both trial vectors is the same, we arbitrarily select the first
vector, 10.
Step 4: Now, 10 becomes the current vector. It produces a next state Cn+1 = 0.
We try a unit Hamming distance vector 11 as shown below,
DC0=1
DC1=0 DC0=1 DC0=0
PC=0 PC=0 DC1=0 DC1=1
A PC=0 PC=0 DC0=0
n PC=0 PC=100 DC1=1 DC0=0
1 PC=1 DC1=1
1 s−a−0 PC=0
0 PC=0
PC=0 DC0=2 0 Sn
PC=2 DC1=0 PC=1 1
PC=1 DC1=0
1 PC=0 DC0=1
Bn PC=2
1 PC=0 PC=101
DC0=1 PC=0
0
DC1=0
PC=2 1 C
PC=100 n+1
0
C
n DC0=2
DC0=0 DC1=0
DC1=100 PC=100
PC=0
FF
Cost(11) = 1000 × 0 + 0 = 0
A zero cost indicates that the fault is detected. Thus the complete test se-
quence is (An , Bn ) = (0,0), (1,0), (1,1).
type 1 neighborhood, let cell a be cell 0 and cell b be the base cell 2. For the type 2
neighborhood, let cell a be cell 0 and cell b be the base cell 4.
Then, the active NPSFs
0134 2
< 0, ↓, 1, 1; 1 >
and
01 2356 784
< 0, ↓, 1, 1, 1, 1, 1, 1; 1 >
go undetected because any write of the neighborhood cell a instead writes the base
cell b. This either removes the fault effect at cell b or prevents sensitization of the
fault, since cell a cannot be written. No other ANSPF test will be expected in the
sequence to detect this particular fault.
The passive NPSFs, < 1, 0, 1, 1; ↑ /0 > and < 1, 0, 1, 1, 1, 1, 1, 1; ↑ /0 > will go
undetected because any read of the base cell b will produce either an AND of the
contents of cells a and b, the OR of a and b, or an intermediate voltage. Since cell
a is a 1, the read is apt to produce the good machine value. No other PNPSF test
will be expected in the sequence to detect this particular fault.
The static NPSFs < 1, 0, 1, 1; −/0 > and < 1, 0, 1, 1, 1, 1, 1, 1; −/0 > both go
undetected, because any write of the neighborhood cell a instead writes the base
cell b. This either writes the good machine value to the base cell or prevents fault
sensitization because cell a cannot be written. No other SNPSF test in the test
sequence will be expected to detect this particular fault.
This completes the proof.
3. Read BU SY for both the SRAM and DRAM ports. If both BU SY lines are
1, then the chip is faulty. If only one line is 1, then the chip is good.
9.6 Graphs
A Hamiltonian graph traversal visits each node in the graph exactly once, while an
Eulerian traversal traverses each edge exactly once.
C
G
D
B F
Theorem: MARCH C− detects all CFid faults, <↑; 0 >, <↓; 1 >, <↑; 1 >, <↓; 0 >.
Proof:
I. For the fault <↑; 0 > the necessary test conditions are:
Note that,
II. For the fault <↓, 0 > the necessary test conditions are:
Note that,
III. for the fault <↑; 1 > the necessary conditions are:
Note that,
1. If Addr(j) < Addr(i), M 0 satisfies (a), and M 1 satisfies (b) and (c).
2. If Addr(j) > Addr(i), M 2 satisfies (a), and M 3 satisfies (b) and (c).
IV. For the fault <↓; 1 > the necessary conditions are:
Note that,
(b) An inversion coupling fault (CFin) < i, j > is where the coupling cell i having
a transition causes the coupled cell j to invert its state. These are denoted as
<↑; >, <↓; >.
and the stuck-at faults are < ∀/0 > and < ∀/1 >.
Fault < ∀/0 >: S-a-0 fault is sensitized by writing a 1 to the cell in M 1. S-a-0 fault
is detected by M 2 when a 0 is read from the cell, while a 1 was expected.
Fault < ∀/1 >: S-a-1 fault is sensitized by writing a 0 to the cell in M 0. S-a-1 fault
is detected by M 1 when a 1 is read from the cell, while a 0 was expected.
and dynamic coupling faults are < r0|w0; 0 >, < r0|w0; 1 >, < r1|w1; 0 > and
< r1|w1; 1 >.
Necessary condition: After initializing the coupled cell, a read (write) of the
coupling cell must be followed by a read of the coupled cell, without any
intervening operations on the coupled cell.
Fault < r0|w0; 0 >: Address of coupled cell i > Address of coupling cell j.
For a write,
i initialized by M1, j written by M2,
i checked by M2 (fault detected).
For a read,
and the faults are < 1/0 af ter time delay > and < 0/1 af ter time delay >.
Necessary condition: Each cell must have a 0(1) written to it, and after a suitable
delay (e.g., 100ms), a 0(1) must be read back from the cell.
Fault < 1/0 af ter time delay >: M6 sensitizes the fault by writing a 1, M7 pro-
vides the necessary time delay, and M8 detects the fault when a 0 is read but
a 1 was expected.
Fault < 0/1 af ter time delay >: M4 sensitizes the fault by writing a 0, M5 pro-
vides the necessary time delay, and M6 detects the fault when a 1 is read but
a 0 was expected.
WORD
Fault
BIT BIT
(i) When writing 1 into this cell, a 0 will instead be written only if the W ORD
line driver is stronger than the BIT line driver. Otherwise, no error
occurs.
(ii) When reading a 0 from this cell no error occurs. When reading a 1 from
this cell, an error occurs only if the W ORD line driver is stronger than
the BIT line driver.
Case 1 is state coupling fault < 0; 1 > between the faulty crosspoint cell and
all cells in the same column.
We assume a W ORD line driver stronger than a BIT line driver. Then cases
2(i) and 2(ii) are a SA0 fault in the crosspoint cell.
3. Note that whenever BIT is charged for this column, that it also activates
W ORD for the row containing the faulty cell. This makes all cells in the
row having the faulty cell active. The result depends on the column address
decoder and the BIT /BIT driver. If drivers other than those of the faulty
column are also activated (which is usually true with a word-oriented SRAM),
then any write of a 0 into any part of the affected column also activates a
write into the faulty row, at least for the rest of the bits in this memory word.
This would be a state coupling fault < 0; 0 > or < 1; 1 > between the bits in
the row intended to be addressed and the corresponding bits in the row with
the crosspoint fault.
WORD
Fault
BIT BIT
This is a state coupling pair of faults, < 0; 0 > and < 1; 1 >, between the two
cells.
0 1 2 Base cell 4
3 4 5 Deleted neighborhood−
6 7 8 cells 0,1,2,3,5,6,7,8
Type−2 neighborhood
Duality is the property that all tests for cell 4 as a base cell also provide the
necessary test patterns when cells 1, 3, 5 or 7 are considered to be the base cell.
This fails for the type-2 neighborhood, bacause the test patterns for cell 4 as the
base cell do not provide all necessary test patterns when diagonal cells 0, 2, 6 or 8
are considered to be the base cell.
Note that:
State coupling fault test for < 0; 0 > is covered by CFid test <↑; 0 >, since the
step writing 1 to the coupling cell is not needed.
SCF test for < 1; 0 > is covered by CFid test <↓; 0 >, since the step writing 0 to
the coupling cell is not needed.
SCF test for < 1; 1 > is covered by CFid test <↓; 1 >, since the step writing 0 to
the coupling cell is not needed.
using the two-group method and type-1 neighborhood. The test need not be the
optimal one.
C 0
A b B 1 2 3
D 4
using the two-group method and type-1 neighborhoods (see figure below):
Ft M 2, 010Hz 201
= = =
Fs N 8, 000Hz 800
That is, M = 201 and N = 800. Unit test period is obtained as,
M 201
UTP = = = 0.1 sec
Ft 2, 010Hz
1
Primitive frequency, ∆ = = 10Hz
UTP
Ft M 2, 000Hz 1
= = =
Fs N 16, 000Hz 8
1 1
∆ = = = 20Hz
UTP 50ms
but M and N are not relatively prime. We get only eight unique samples and as the
Samples
Amplitude
Time
figure shows every ninth sample repeats. This is a totally inadequate sample set.
UTP = 40 msec
1
∆ = = 25Hz
UTP
Fs 8, 000Hz
N = = = 320
∆ 25Hz
Ft 400Hz
M = = = 16
∆ 25Hz
M 16 1
= = ; M and N are not relative primes!
N 320 20
If we choose M = 15, M and N are still not relative primes.
Choose M = 17, M 17
N = 320 ; M and N are relative primes. So we get 320 unique
samples.
Ft = M × ∆ = 17 × 25Hz = 425Hz
1 1
∆ = = = 25Hz
p 40 msec
Fs 8, 000 s/s
N = = = 320
∆ 25Hz
We must change ∆ and p to get N = 400.
8, 000 s/s
∆ = = 20Hz
400
If Ft = 2, 000Hz, M = F∆t = 2,000Hz
20Hz = 100, and
M
N = 100
400 = 14 , which gives only 4
samples. So, choose either M = 99 or M = 101.
For M = 99, Ft = M × ∆ = 99 × 20Hz = 1, 980Hz, and
For M = 101, Ft = M × ∆ = 101 × 20Hz = 2, 020Hz.
In both cases, we get 400 unique samples.
10.6 Correlation
RM S(A) = 2.8214
RM S(B) = 5.6709
1
G =
RM S(A) · RM S(B) · 1
= 0.6525
10.7 Correlation
The correlation of A and B is computed by the following MATLAB program:
a = (1/30);
i = 1;
for t = 0:1:(1/3)
A = 16 * sin (6 * pi * t);
B = 14 * sin ((6 * pi * t) + 10);
C = A * B;
end
C = sum(C);
Arms = 16/sqrt(2);
Brms = 14/sqrt(2);
UTP = 1/3;
K = (Arms * Brms * UTP);
G = 1/K;
Corr = G * C
Corr =
7.9948e-16
10H2 /10 + 10H3 /10 + · · ·
T HD =
10H1 /20
0.5mW
H2 (dB) = 10 log = −6.020599913dB
2mW
0.2mW
H3 (dB) = 10 log = −10dB
2mW
H1 dB) = 0
T HD = 10−0.6020599913 + 10−1
= 0.591608
= 59.1608%
FSR
3/4
Volts
1/2
FSR
1/4
1/8
0
−1/8
1/8
1/4
3/8
1/2
5/8
3/4
7/8
Volts
Code tally T(0) T(1) T(2) T(3) T(4) T(5) T(6) T(7)
6 4 4 4 4 4 4 6
DLE D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
0.5 0 0 0 0 0 0 0.5
DNL (RMS LSB) 0.5
DNL (Worst) 0.5
Transfer char. C(0) C(1) C(2) C(3) C(4) C(5) C(6) C(7)
0 5 9 13 17 21 25 30
ILE E(0) E(1) E(2) E(3) E(4) E(5) E(6) E(7)
0 0.25 0.25 0.25 0.25 0.25 0.25 0.5
INL (RMS LSB) 0.2795
INL (Worst) 0.5
0.5
DLE
0.0 Sample #
0
1 2 3 4 5 6 7 8
(b) DNL is the worst case DLE value (here it is 0.5 LSB.)
0.50
ILE
0.25
0.0 Sample #
0
1 2 3 4 5 6 7 8
(d) The INL is the worst case ILE value (here it is 0.5 LSB.)
Code tally T(0) T(1) T(2) T(3) T(4) T(5) T(6) T(7)
6 8 7 7 8 6 7 23
DLE D(0) D(1) D(2) D(3) D(4) D(5) D(6) D(7)
−0.33 −0.11 −0.22 −0.22 −0.11 −0.33 −0.22 1.55
DNL (RMS LSB) 0.5905
DNL (Worst) 1.55
Transfer char. C(0) C(1) C(2) C(3) C(4) C(5) C(6) C(7)
0 7 14.5 21.5 29.0 36.0 42.5 57.5
ILE E(0) E(1) E(2) E(3) E(4) E(5) E(6) E(7)
0 −0.22 −0.385 −0.605 −0.77 −0.99 −1.265 −0.6
INL (RMS LSB) 0.71553
INL (Worst) −1.265
Average count = 9
(a) Graph of DLE function:
1.5
1.0
DLE
0.5
1 2 3 4 5 6 7 8
0.0 Sample #
−0.5
(b) DNL is the worst case DLE value (here it is 1.55 LSB.)
(c) Graph of ILE function:
ILE
1 2 3 4 5 6 7 8
0.0 Sample #
−0.22
−0.44
−0.66
−0.88
−1.10
−1.32
(d) The INL is the worst case ILE value (here it is −1.265 LSB.)
Vmax 10V
Bn (LSB contribution) = = 5
2n − 1 2 −1
= 0.3225806452V
10V
∆5 = = 0.3125V
32
and ∆4 = ∆3 = ∆2 = 0.3125V as well, since in an ideal converter, each of these
is one quantum voltage. In a real converter, each of these will deviate in different
ways from the quantum voltage.
(+) (−)
e1 15∆1 −∆2 − 2∆3 − 4∆4 − 8∆5
e2 15∆2 −8∆1 − ∆3 − 2∆4 − 4∆5
e3 15∆3 −4∆1 − 8∆2 − ∆4 − 2∆5
e4 15∆4 −2∆1 − 4∆2 − 8∆3 − ∆5
e5 15∆5 −∆1 − 2∆2 − 4∆3 − 8∆4
15(∆1 + ∆2 + ∆3 + ∆4 + ∆5 ) −15∆1 − 15∆2 − 15∆3 − 15∆4 − 15∆5
In the ideal converter, ∆1 = ∆2 = ∆3 = ∆3 = ∆4 = ∆5 , so (+) − (−) = 0,
and INL = 0 . In a real converter, ∆i would vary, so INL would not be 0.
(e) Total harmonic distortion (THD) is the ratio of the energy in the harmonics of
the waveform to the energy in the fundamental. Thus,
H2
10 10 + 10 H103 + · · · + 10 H1010
T HD = H1
10 10
where H1 is the amplitude of the fundamental (in dB) and H2 · · · H10 are the
amplitudes of the second through tenth harmonics in dB.
The FFT of the circuit response (the analog output) is taken and the magnitudes
in the bins of the harmonics are measured, along with the magnitude in the bin of
the fundamental.
A - AC voltage gain: R1 , C, Rf
A4 - DC voltage gain: R1 , Rf
There are no useful single parametric faults, two useful double parametric faults,
and one useful triple parametric fault.
3rd stage: C2
R6
R6 , C2
4th stage: C3
R7 , R12
R7 , C3 , R12
5th stage: R8 , R9
Av = −gM 124 (r0M 125 ||r0M 126 ) × gM 136 (r0M 136 ||r0M 135 )
So this is a stong function of the Early voltage (VA ) and the bias overdrive conditions.
2VA
gm r0 =
V0v
Faults to test:
KM 136
KM 136 KM 135 KM 136
7. 1
+K 1
= KM 135 +KM 136 controls second stage gain.
KM 136 M 135
1
8. KM 136 C1 dominant pole location.
9.
1 zero location.
1
KM 136
−R2 C1
Eight tests and the singly-testable (nonrobustly testable) path-delay faults (PDFs)
detected by them are listed in the following table. We note that the non-robust de-
tection of a PDF requires an input transition and a statically sensitized path by the
second vector of the two-vector test.
1. ↓ a − g − k − m − p − z
2. ↓ b − h − k − n − q − z.
Elimination of untestable PDFs: (This part may be expected only from a stu-
dent of an advanced course.) The procedure in the next figure illustrates the KMS
algorithm, which results in a fully testable circuit. See reference [352] of the book.
h’ c c
p a p
h’
a g
m z m z
n g’ n
b h q q
b
j j
(iii) Eliminate g’ s−a−1. Function is unchanged, (iv) Apply the same procedure to eliminate the
PDF a−g−k−m−p−z is eliminated, and of the untestable PDF. All 8 PDFs in this XOR circuit
remaining 9 PDFs, b−h−n−q−z is untestable. are testable.
B E J
C
The circuit now has three paths. For each path, all off-path inputs can be directly
controlled from PIs. For example, consider the path, C − E − J − K, shown with
bold lines. We can set off-path inputs as B = S0 and A = S0. Now, applying a
rising or a falling transition at C will robustly test the path for the corresponding
transition. A similar argument applies to the other two paths.
Note: This is a fanout-free circuit. It has exactly one path between each PI-PO
pair. Each path has two single input change (SIC) test vector pairs that are robust
tests for the path.
Final value
Initial value
Time
Fast non−target Slow
path transitions non−target
suppressed path transitions
by robust test
Observation
time
A robust test example showing a failing path.
Each path to the output can potentially produce a transition, whose time of
occurrence depends on the delay of the path. By properly setting the off-path
values a robust test suppresses all “fast transitions.” Thus, the transition arriving
through the target path is the first transition to appear at the output. If the target
path is faulty then the output value observed will be the “initial value” (0 in the
figure.) To be discriminated with the correct (or expected) output value, this must
be different from the initial value.
Notice that the other slow transitions can make the test to show a failure even
when the target path is not faulty. But they can never make the test to pass when
the target path is faulty. In general, a robust test only guarantees detection and not
diagnosis.
The circuit of Figure 12.4 cannot have a real transition at the output since the
steady-state logic value is always 0. Thus, no robust test is possible for any path in
this circuit.
1. Static sensitization – the second vector V 2 must sensitize the entire path.
2. Transition at the origin – the two vectors must produce a signal transition at
the origin of the path.
• V 2 sensitizes a target path with path origin at 1(0) for a rising (falling) tran-
sition to be propagated, and
G
Time units
0 1 2 3
2.5
z
Time units
0 1 2 3 4 5 6
3.5 units
Output monitored:
test fails to detect
the fault.
output z is monitored 3.5 time units after the application of the falling transition
at a, we observe a correct value (0), although the target path a − A − z has a delay
fault. Note that path a − C − D − z is also faulty and interferes with the testing
of the target path. The given input is a non-robust test and, by definition, is only
guaranteed to work if the target path is the only faulty path.
(b) A robust test will require D = S1, which cannot be justified since a must be set
to F 0 to activate the target path. Thus, a robust test is impossible.
S0 S0 S1
B B F0 or R1
Tests for a non−inverting path. Tests for an inverting path.
Thus, the off-path input of an XOR circuit should be set to a steady value. If it
is set to S0, then the output transition will be of the same type as the on-path input.
If the off-path input is set to S1, then the output transition will be an inversion of
the on-path input. In general, one might assume that the inverting path would have
greater delay (three gates vs. two gates.)
Using these two conditions, off-path signal values can be obtained for propagating
the delay test signal through A. For example, consider an AND gate. A rising
transition at A will require all off-path signals to be U 1. A falling transition at A
will require all off-path signals to be S1.
2. Count: Update each vertex only after all of its fanin vertices have been up-
dated. Update of vertex v is done as follows:
k
N (v) = N (vi )
i=1
Complexity: Since each vertex is processed once, there are n updates, where n
is the number of vertices in the graph. Each update requires adding the labels of
the fanin vertices. An upper bound on fanin is n. Thus, the complexity of the path
counting algorithm is O(n2 ), where n = P I + P O + gates + 2. In general, however,
the fanin of a gate does not grow with the number of gates, and the complexity
remains closer to O(n).
Nk = 2(1 + Nk−1 )
1+N =2 1+N
0 k−1
1 1
2+2N =4 2+2N
0 k−1
N =1 N
0 k−1
N =4 N
1 k
1 1
1+N =2 1+N
0 k−1
Cell 1 Cell k
1. The values of inputs a, b and c are set in such a way that any change at the
path destination g must be preceded by a change at the path origin d.
In this case, however, g is the next state for the input d. So any change in d must be
preceded by a change in g. Therefore, as long as a, b and c satisfy the robust test
condition, a transition in d awaits a transition in g, which awaits a transition in d.
b c
FF
CK
U1 or S1
S1 D
A
A 1 1 0 1
b
X
c
t t
f r
D
Rising transition at A
c initialized to 1
Falling transition at A
Total ATE cost over 10 years = $4, 608, 000 + 10 × $50, 000
= $5, 108, 000
50×106 transistors
2
# n wells = = 500, 000
50
1.309mA
Total # of sensors = = 873 sensors
1.5µA
PO
0 PI FF
PI CK
Comb. logic s−a−1
X Toggle circuit with initialization input, clr.
s−a−1 X 0 1 1 0 1
PI clr PI clr PI clr
X
0 1 1
0/1
X 1 1
PO s−a−1 s−a−1 s−a−1
0/X Next
state (NS) X
Present FF X 1 0/1
state (PS) CK Time−frame −2 Time−frame −1 Time−frame 0
We notice that the fault can be activated as 0/1, but to observe its effect we
must have the present state (P S) as 1. Since no input can initialize the circuit, P S
always remains X and the fault can only be potentially detected. Use of an ATPG
program will show that only the P O s-a-1 can be deterministically detected. Two
faults, P I s-a-1 and the one shown in the figure, are potentially detected by P I = 0
input. All other faults are untestable.
A possible design change is shown in the top right diagram. We add an ini-
tialization input clr. When clr = 0, the FF output is forced to 0. For clr = 1
the circuit functions as the original toggle circuit. As shown in the lower right di-
agram, a test for the given s-a-1 fault is obtained in three time-frames. The first
vector, P I = X, clr = 0, initializes the circuit as N S = 0. The second vector,
P I = 1, clr = 1, toggles the state to N S = 1 in time-frame -1. This is the required
state for testing the fault. Third vector, P I = 0, clr = 1, activates the fault, whose
effect is propagated to P O as 0/1.
Use of an ATPG program on the toggle circuit with the initialization input will
show that all faults are deterministically detectable with the exception of one fault.
That fault, clr s-a-1, is potentially detectable.
A
C
D
B
(a) Logic function of multiplexer.
C A B D
C (c) A static design with only
complementary gates.
output inverter, are eliminated, the circuit will still provide the multiplexer function.
In that multiplexer, which will require only six transistors, a path between the inputs
A and B can be created momentarily if there is a time delay between the signals C
and C. Such a path can sometimes upset the states of the flip-flops that supply A
and B signals.
The design (c) uses only complementary CMOS gates. Both designs (b) and (c)
require 12 transitors.
State diagram. FF
FF
Circuit.
Modulo−5 counter.
The output Z remains 0 with the exception of the state 100, which produces a
Z = 1 output.
The combinational circuit (shown in the grey box) is made completely single-fault
testable by removing redundant faults that were identified by an ATPG program.
For the sequential counter, a sequential circuit ATPG program produced 62
vectors to obtain a coverage of (57/62) × 100 = 92.98%. The five untestable faults
were all s-a-1 type and are shown in the figure. Among these the s-a-1 fault on the
CLR signal was potentially detected by the test set.
C SCANOUT
Q0
Q1
CLR
P0
Q2
P1
P2
FF
FF
Scan flip−flops
FF
Scan−testable modulo−5 counter.
The number of vectors obtained may vary depending on the ATPG program used.
These results were obtained from Bell Labs’ Gentest program. The combanitional
circuit, whose inputs are C, CLR, P 0, P 1 and P 2, and outputs are Z, Q0, Q1 and
Q2, has a collapsed set of 57 faults. All of these faults were detected by 16 vectors.
A complete scan sequence consists of 74 vectors (see Equation 14.1 in the book),
which includes 7 vectors for testing the scan register. The scan circuit contains a
collapsed set of 79 faults. Fault simulation of the 74-vector sequence showed that 78
faults were detected. The undetected s-a-1 fault is marked on the circuit diagram.
It is at the output of the test control (T C) inverter in the first multiplexer.
The reason this fault is not detected is that it was never targeted. Since the scan
register test holds T C to 0 for a continuous scan mode, this fault was not activated.
The fault is, however, activated every time the circuit is set in the normal mode
during the application of the scan sequence. Since in the normal mode the state
of SCAN IN is considered irrelevant, SCAN IN was arbitrarily set to 0. That
prevented the propagation of the fault effect. A suitable strategy for detecting this
fault is to set Q0 outputs of the combinational logic as 0 by applying CLR = 1. At
the same time, the circuit is set in the normal mode by applying T C = 1. The fault
effect is now propagated to the flip-flop and can be scanned out.
We notice that similar faults in the other two multiplexers were detected by our
scan sequence. This is due to the chance occurrence of normal data as 0 and scan
Y = Y + kry
where Y is the height of the non-scan chip, r is the number of routing channels, and
y is the track width (i.e., vertical space occupied by a horizontal wire.) Substituting
r = Y (1 − β)/(yT ), where β is the routing fraction of the total chip area and T is
the cell height as a multiple of the track width y, we obtain
kY (1 − β)
Y =Y +
T
Now the area overhead, which was expressed by Equation 14.5, changes to
(1 − β)k
Area overhead of scan = (1 + αs) 1 + − 1 × 100%
T
(1 − β)k
≈ αs + × 100%
T
where α is the fractional width increase of a scan flip-flop over a non-scan flip-flop
cell, and s is the fraction of the total cell area occupied by the flip-flop cells in the
non-scan chip.
14.8 Partial-scan
The s-graph of the circuit in Figure 14.16 is given below.
F1 F2
14.9 Partial-scan
The partial-scan circuit is given below. Added circuitry is shown in grey and wiring,
in bold lines. We insert a multiplexer at the input of F1. One input of this mul-
tiplexer is the normal input of F1. The other input is a fanout of PI I, which is
now also used as SCAN IN . The control input of the multiplexer is a new PI, T C.
R
I 0
or SCANIN MUX
Z
1 F1 or SCANOUT
CK
F2
CK
F2
SCANIN_Z
CK
ATPG circuit for the partial-scan design of the circuit of Figure 14.16.
program, GENTEST2 , produced 11 vectors to detect all faults in this circuit. These
vectors were converted into scan sequences (see Chapter 14 of the book.) Thus, a
set of 28 vectors was produced, which also includes 5 vectors for testing the scan
register. The following table shows the test sequence. When the partial-scan circuit
was simulated in the sequential mode, these 28 vectors detected all faults, except
one fault that was potentially detected. That fault was a s-a-1 fault in the M U X
circuit and is shown in the next figure. This happened because we left the input R
in the unknown state (X) during the scan mode. If R = 0 was used instead, the s-a-1
fault in the M U X would not be detected. However, if R = 1 was used, then that
2
Any other sequential ATPG program can also be used. See Chapter 8 of the book.
SCANIN
s-a-1 To flip-flop
From circuit
where nshf f is the number of SHFFs, nf f is the number of flip-flops in the non-scan
circuit, and ng is the number of gates outside of flip-flops. Note that, in general,
nf f ≥ nshf f , where the equality holds for a full-scan design.
When ng = 100, 000 and nf f = nshf f = 2, 000, the above formula gives an
overhead of 13.3%, which is double that of the full-scan design with SFFs.
3
S. Bhawmik, C. J. Lin, K.-T. Cheng and V. D. Agrawal, “PASCANT: A Partial Scan and Test
Generation System,” Proc. IEEE Custom Integrated Circuits Conf., May 1991, pp. 17.3.1-17.3.4
X(t + 1) = Ts X(t)
⎡ ⎤ ⎡ ⎤⎡ ⎤
X0 (t + 1) 0 1 0 0 0 0 0 0 X0 (t)
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ X1 (t + 1) ⎥ ⎢ 0 0 1 0 0 0 0 0 ⎥⎢ X1 (t) ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ X2 (t + 1) ⎥ ⎢ 0 0 0 1 0 0 0 0 ⎥⎢ X2 (t) ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ X3 (t + 1) ⎥ ⎢ 0 0 0 0 1 0 0 0 ⎥⎢ X3 (t) ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥
⎢ X4 (t + 1) ⎥ ⎢ 0 0 0 0 0 1 0 0 ⎥⎢ X4 (t) ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ X5 (t + 1) ⎥ ⎢ 0 0 0 0 0 0 1 0 ⎥⎢ X5 (t) ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ X6 (t + 1) ⎦ ⎣ 0 0 0 0 0 0 0 1 ⎦⎣ X6 (t) ⎦
X7 (t + 1) 1 0 1 0 0 0 0 1 X7 (t)
4
K. D. Wagner, C. K. Chin, and E. J. McCluckey, “Pseudorandom Testing,” IEEE Trans. on
Computers, vol. C-36, no. 3, pp. 332-343, March 1987.
RESET
CK
A standard LFSR
f (x) = x3 + x + 1
DQ DQ DQ
X X X
x0 0 x1 1 x2 2
RESET
CK
Modular LFSR.
⎡ ⎤ ⎡ ⎤⎡ ⎤
X0 0 0 1 X0
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ X1 ⎦ (t + 1) = ⎣ 1 0 1 ⎦ ⎣ X1 ⎦ (t)
X2 0 1 0 X2
Pattern # X7 X6 X5 X4 X3 X2 X1 X0
1. 0 0 0 0 0 0 0 1
2. 1 0 0 0 0 0 0 0
3. 1 1 0 0 0 0 0 0
4. 1 1 1 0 0 0 0 0
5. 1 1 1 1 0 0 0 0
6. 1 1 1 1 1 0 0 0
7. 1 1 1 1 1 1 0 0
8. 0 1 1 1 1 1 1 0
Pattern # X0 X1 X2
1. 0 0 1
2. 1 1 0
3. 0 1 1
4. 1 1 1
5. 1 0 1
6. 1 0 0
7. 0 1 0
8. 0 0 1
15.6 MISRs
Equations representing MISR:
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
X0 0 1 0 0 0 0 0 0 X0 0
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ X1 ⎥ ⎢ 0 0 1 0 0 0 0 0 ⎥⎢ X1 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ X2 ⎥ ⎢ 0 0 0 1 0 0 0 0 ⎥⎢ X2 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ X3 ⎥ ⎢ 0 0 0 0 1 0 0 0 ⎥⎢ X3 ⎥ ⎢ 0 ⎥
⎢ ⎥ (t + 1) = ⎢ ⎥⎢ ⎥ (t) + ⎢ ⎥
⎢ X4 ⎥ ⎢ 0 0 0 0 0 1 0 0 ⎥⎢ X4 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ X5 ⎥ ⎢ 0 0 0 0 0 0 1 0 ⎥⎢ X5 ⎥ ⎢ 0 ⎥
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎣ X6 ⎦ ⎣ 0 0 0 0 0 0 0 1 ⎦⎣ X6 ⎦ ⎣ B ⎦
X7 1 0 0 1 0 1 1 0 X7 A
X(t + 1) = TT
s X(t) + I(t)
Transpose: XT (t + 1) = XT (t)TT
s
X2 (t + 1) = TT
s X2 (t)
A DQ DQ DQ DQ DQ DQ DQ DQ
x
B
RESET
CK
Taps: h3 , h5 , h6
The modular LFSR gives the true remainder of the
output sequence
A,B
primitive polynomial
where is the XOR operator.
X(t + 1) = Ts X(t)
XT (t + 1) = (Ts X(t))T
= XT (t)TT
s
= XT (t)TM
The standard signature is a different state table realization of the modular MISR
signature.
The patterns generated by the circuit of Figure 15.16(b) (page 510 of the book)
are given below:
B. Replace X4 with the 1/2 bit; this gets vectors 2, 3 and 5 of the test set.
Required test vectors are shown in bold in the above table. Notice that none of
the 14 , 18 or 16
1
bits are helpful here.
x4 + x + 1
1/2
DQ DQ DQ DQ
X X X X
x3 3 x2 2 x1 1 x0 0
RESET
CK 1/4
11/32
1/8
1/16
DQ DQ DQ DQ
150 X 3 150 X 2 150 X 1 150 X 0
RESET
CK
The four flip-flop LFSR with non-primitive polynomial 1 + x4 and its patterns,
starting from the initial pattern 0001, are shown next. Its period is 4.
RESET
CK
A non−primitive LFSR.
LFSR Pattern # X3 X2 X1 X0
1. 0 0 0 1
2. 1 0 0 0
3. 0 1 0 0
4. 0 0 1 0
5. 0 0 0 1
The best system would be an LFSR with a primitive polynomial f (x) = 1+x+x4 ,
which would have a period of 15. For this example the CA is better than the non-
primitive LFSR, because the CA has a longer period and is more random.
DQ DQ DQ
X X X
2 1 0
RESET
CK
X2 X1 X0
gate circuit leading to the output X1 converts 010 pattern to 000 without affecting
all other patterns.
After 8 clocks:
Both the transition count (TC) and LFSR detect the multiple fault.
DQ DQ DQ 1 1 0 0 1 0 1 1 1
x2 x 1 x 0 0 1 0 1 1 1 0
x2 0 1 0 1 1 1 0 0
RESET
CK
Standard LFSR.
The next figure gives an augmented LFSR and the patterns it produces. This
definitely uses less hardware than a counter, which needs more complex gates. It gets
comparatively simpler as the counter width increases. A counter and its patterns
are shown below.
D D D
Q Q Q
0 1 2
RESET
CK
Counter.
Q0 0 1 0 1 0 1 0 1 0
Q1 0 0 1 1 0 0 1 1 0
Q2 0 0 0 0 1 1 1 1 0
Z = Y (B ⊕ C) ⊕ B
For output Y , the fault effect is XORed four times, while the fault effect is
XORed into Z three times, during the first 7 clock periods. Repeating the first
LFSR pattern during the 8th clock period XORs the fault effect in one additional
time frame on each output.
The error vector is set to 1 on an output when it differs from a good machine.
Here are the other error vectors:
Even with the repeated pattern, the cumulative # of 1’s in the error vector
remains odd. This is why aliasing does not occur. If the total # of 1’s in the error
vector becomes even, then aliasing might occur.
D
MR
Q
0 M B
U
Bpi 1 X
D MS
Q
0 M C
U
1 X
(b)
⎡ ⎤ ⎡ ⎤⎡ ⎤
a 0 1 0 a
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ b ⎦ (t + 1) = ⎣ 0 0 1 ⎦ ⎣ b ⎦ (t)
c 1 0 1 c
(c) The table below contains the fault-free outputs of the circuit and the state of
the MISR after every clock. The initial state of the flip-flops is assumed to
be Q1 Q2 Q3 = 000. The output equations used for computing the fault-free
outputs in the table are:
Y = (A ⊕ C) + AB and Z = B + C ⊕ Y
GOOD = Q1 Q2 Q3
(d) In the case of the fault q s-a-0, the faulty outputs are:
Yf = Y and Zf = Y
The table below contains the faulty outputs of the circuit and the state of the
LFSR after every clock. The initial state of the flip-flops is assumed to be
Q1 Q2 Q3 = 000 as before.
A B C Y Z LFSR state
Q1 Q2 Q3
0 0 0 0 0 0 0 0
0 0 1 1 1 0 1 1
0 1 0 0 0 0 0 1
0 1 1 1 1 1 1 1
1 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0
1 1 0 1 1 0 1 1
1 1 1 1 1 0 1 0
Thus, the final signature of the faulty circuit will be “0 1 0”, and the test
hardware does not alias.
LFSR
See
detailed Q1 Q2 Q3
figure Phase shifter
R1 1 R2 R3
input 1 0
1 1
A 1 X SRL D 1 U AA
TC SRL SRL
CLK 0 1
SOUT
0 1
input 2 B Y E V BB
SRL 0 SRL 0 SRL
0 1 1 1
0 1
0 0 0
input 3 SRL C 0 Z SRL F W SRL CC
0 0
M1 M2 M3
MISR
R1
input1
(D)
RESET
TC
(Shift/test)
Q
RESET
CLK SOUT
SRL
LFSR
Char. polynomial:
3 MS
1+x+x
D Q D Q D Q
2 1 0
CLK X X X
Shift MR MR
RESET
Q Q Q
1 2 3
Phase shifter
R1 R2 R3
DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ DQ
x 11 x 10 x9 x8 x7 x6 x5 x4 x3 x2 x1 x0
CLK
RESET
MISR
-- This is vhdl code describing the STUMPS BIST system. The working
-- hardware is obtained from the Synopsys system. Run the Synopsys
-- design_analyzer, read in this vhdl file, and call for high optimization
-- and boundary optimization in order to obtain a good logic design.
--
library ieee;
use ieee.std_logic_1164.all;
entity stumps is
end stumps;
signal Q1 : std_logic;
signal Q2 : std_logic;
signal Q3 : std_logic;
signal D1 : std_logic;
signal D2 : std_logic;
signal D3 : std_logic;
signal U, V, W, X, Y, Z : std_logic;
begin -- stumps_arch
X <= (A xor C) or (A xor B);
misr: process (clock, reset, X0, X1, X2, X3, X4, X5, X6, X7,
X8, X9, X10, X11)
begin -- process
-- activities triggered by asynchronous reset (active low)
if reset = ’0’ then
X0 <= ’0’;
X1 <= ’0’;
X2 <= ’0’;
X3 <= ’0’;
X4 <= ’0’;
X5 <= ’0’;
X6 <= ’0’;
X7 <= ’0’;
X8 <= ’0’;
X9 <= ’0’;
X10 <= ’0’;
X11 <= ’0’;
-- activities triggered by rising edge of clock
-- SRLS
srls: process (clock)
begin -- process
-- activities triggered by asynchronous reset (active low)
-- activities triggered by rising edge of clock
if reset = ’0’ then
A <= ’0’;
B <= ’0’;
C <= ’0’;
D <= ’0’;
E <= ’0’;
F <= ’0’;
AA <= ’0’;
BB <= ’0’;
CC <= ’0’;
elsif clock’event and clock = ’1’ then
if (shift = ’1’) then
A <= Q3;
B <= A;
C <= B;
D <= Q2;
E <= D;
F <= E;
AA <= Q1;
BB <= AA;
CC <= BB;
else
if (test = ’0’) then
A <= input1;
B <= input2;
C <= input3;
end if;
end process;
end stumps_arch;
A circuit diagram produced by Synopsys is shown on the next page. The final
signature after 12 functional clock periods (each of which requires 3 more shifting
clock periods) is:
The only practical way to compute this is with a simulator that would use the circuit
description in a hardware description language such as VHDL or Verilog.
• Pros of STUMPS:
1. Low hardware overhead (due to shift register latch structure and MISR
that only has 1 position/scan chain.)
2. Little DFT hardware is needed inside the circuit, except for the full-scan
chains.
• Cons of STUMPS:
1. This is a test-per-scan system. Each test pattern requires scan chain length+
1 clocks. So, it is quite slow, and test time is long and costly.
• Observations:
1. It was necessary to use 2 control pins, test and shift, for test mode,
because in test mode, we still wanted to ignore the circuit inputs in
the leftmost scan chain, whereas in the other scan chains, we wanted to
capture the circuit responses in the scan chain.
2. The VHDL simulation was very useful, as it caught conditions where X’s
were being clocked into the MISR.
3. A 12-bit MISR was used to reduce aliasing.
-- This is vhdl code describing the memory BIST for MATS+. The working
-- hardware is obtained from the Synopsys system. Run the Synopsys
-- design_analyzer, read in this vhdl file, and call for high optimization
-- and boundary optimization in order to obtain a good logic design.
library ieee;
use ieee.std_logic_1164.all;
entity mats_plus is
port (
test : in std_logic;
Last_address : in std_logic;
First_address : in std_logic;
clk: in std_logic;
reset: in std_logic;
data_out: in std_logic;
CLEAR : out std_logic;
up_address : out std_logic;
COUNT : out std_logic;
data_in : out std_logic;
WRITE_CMD : out std_logic);
end mats_plus;
begin
x: process (Last_address, First_address, test, data_out, present_state)
begin -- process
case present_state is
when START =>
up_address <= ’0’;
COUNT <= ’0’;
data_in <= ’0’;
WRITE_CMD <= ’0’;
if test = ’0’ then
next_state <= START;
CLEAR <= ’0’;
else
next_state <= M0;
CLEAR <= ’1’;
Last_Address = 0
Last_Address = 1
TEST = 0
Data_Out = 1
M1rr M1ww
CORRECT Data_Out = 0
(b) (c1)
Data_Out = 1
Data_Out = 0 Data_Out = 1
Data_Out = 1 ERROR
M3s M3
Data_Out = 0
(f) (f) Data_Out = 0
Data_Out = 0
Data_Out = 1
M2ww M2rr M2w M2r
Data_Out = 1 Last_Address = 1
Last_Address = 0
(e1) (d) (e) (d)
Signals:
MS
DQ DQ DQ DQ
Q Q 2 Q2 3 Q3
1 0 X 1 X X
RESET MR MR MR
CK
C B A
pad pad pad
Input muxes 0 1 0 1 0 1
TEST
C B A
(b)
⎡ ⎤ ⎡ ⎤⎡ ⎤
Q0 (t + 1) 0 0 0 1 Q0 (t)
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎢ Q1 (t + 1) ⎥ ⎢ 1 0 0 1 ⎥⎢ Q1 (t) ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥
⎣ Q2 (t + 1) ⎦ ⎣ 0 1 0 0 ⎦⎣ Q2 (t) ⎦
Q3 (t + 1) 0 0 1 0 Q3 (t)
(c) Probability of aliasing in the 4-bit MISR = 1/24 = 1/16, whereas for a 2-bit
MISR it is 1/22 = 1/4. The next figure shows the MISR circuit which receives
the PO signals X and Y from the CUT of Figure 15.54 (page 648 of the book.)
CK
(d)
⎡ ⎤ ⎡ ⎤⎡ ⎤ ⎡ ⎤
S0 (t + 1) 0 1 0 0 S0 (t) Z
⎢ ⎥ ⎢ ⎥⎢ ⎥ ⎢ ⎥
⎢ S1 (t + 1) ⎥ ⎢ 0 0 1 0 ⎥⎢ S1 (t) ⎥ ⎢ Y ⎥
⎢ ⎥=⎢ ⎥⎢ ⎥+⎢ ⎥
⎣ S2 (t + 1) ⎦ ⎣ 0 0 0 1 ⎦⎣ S2 (t) ⎦ ⎣ 0 ⎦
S3 (t + 1) 1 1 0 0 S3 (t) 0
(e) The circuit has an internal flip-flop, driven by n and driving signal o. There is
no initialization hardware on this flip-flop, so it comes up in a random state.
The variation in signatures happens because sometimes the flip-flop initializes
as 0, and sometimes as 1.
We fix this problem bu adding a RESET line to this flip-flop and initializing
it to 0 when we initialize the LFSR and MISR.
MS
DQ DQ DQ DQ
MR MR MR
RESET
CK
1 + x + x2 + x3 + x4 + x5 + x6 + x7 + x8
f (x)
1 x2 x4
1+x+ x4 1 +x +x +x +x4 +x5 +x6
2 3 +x7 +x8
1 +x +x4
x2 +x3 +x5 +x6 +x7 +x8
2
x +x 3 +x6
x5 +x7 +x8
x +x5
4 +x8
x4 +x7
This does not evenly divide the all 1’s polynomial and we get a remainder of
x4 + x7 . We conclude that the inverse LFSR does not exist, so we must synthesize
it as a finite state machine. The following circuit is based on a design synthesized
by Synopsys.
Q
SD
QN
CK
g + 14f
Overhead of full − scan = × 100%
g + 10f
From
system 0 To
pin system
1 logic
0
1 D Q D Q
CLK CLK
A MUX has four gates and a flip-flop has ten gates. Therefore,
g + 14f + 28(pi + po)
Overhead of boundary scan = × 100%
g + 14f
#transistors cost
Hardware cost = #pins × × + T AP
# of I/O transistor
= (256 × 116 + 262) × 525 × 10−6 cents = 15.73 cents
First scenario:
However, three of the extra shift times can be eliminated by overlap of scan
out with scan in as testing shifts from one chip to the next one.
First scenario:
Second scenario:
It takes five clocks to go from shift-DR through update-DR and back to shift-DR.
We cannot use BYPASS mode, because all chips receiving a signal of an intercon-
nect under test must also have their pins sampled during test of that interconnect.
So, all boundary registers of all chips must be active throughout interconnect test.
Also, correct board input signals must be applied to the board inputs during the
interconnect test.
Sequence of JTAG commands:
1. Apply the PRELOAD instruction with 3072 clocks to set the hold registers to
a known state.
3. Apply enough TCK signals to shift the next interconnect test pattern (and
shift out the results of the last interconnect test that were captured in all
boundary registers.) Apply the necessary printed circuit board (PCB) input
test vector to all PCB inputs. Then, apply a functional clock.
4. Loop back to step 2 if there are more interconnect tests to apply. Other-
wise, just apply enough TCK signals to shift out the last response to the last
interconnect test from the boundary scan register.
It takes five clocks to go from Shift-DR through Update-DR and back to Shift-DR.
Each test requires two patterns to shift in.
1. Apply the PRELOAD instruction with 3072 clocks to set the hold register to
a known state.
3. Apply enough TCK signals (3072) to shift in the next interconnect test pattern
(first pattern.) Apply the necessary printed circuit board (PCB) input test
vector to all PCB inputs. Then, apply a functional clock. This also shifts out
the response to the last interconnect test.
4. Apply enough TCK signals (3072) to shift in the second pattern for the inter-
connect test. Apply the necessary PCB input test vector to all PCB inputs.
Then, apply a functional clock.
5. Loop back to step 2 if there are more interconnect tests to apply. Otherwise,
apply 3072 TCK’s to shift out the response to the very last interconnect test
from the boundary scan register.
2. Apply INTEST – Copy boundary scan register contents to hold latch. Apply
as many TCK pulses as are necessary to shift the first test pattern in from
TDI (this will be the number of pins from TDI up to and including this system
input pin.) Then apply a functional system clock.
3. Repeat step 2 to apply the first time frame pattern to the path and shift
the second time frame pattern into the boundary scan register (requires many
TCK pulses.) At this point, the first time frame pattern is applied from the
hold registers and the second time frame pattern is in the boundary scan
register.
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
begin -- TAP_imp
end TAP_imp;
The synthesized controller circuit (see next page) contains three PIs, four POs,
about 60 gates and four flip-flops. A sequential circuit ATPG, available in the
Synopsys Design Analyzer, was used to generate tests for this circuit:
• Total number of collapsed stuck-at faults = 332
• Number of vectors = 28
2. Set System Logic 1 chip in PRELOAD mode and System Logic 2 chip in
PRELOAD mode. Shift in pattern that stores ‘1’ in 3 CS lines driven by
System Logic 1 Chip and 1 in bus enable signal driven by System Logic 2
Chip.
6 + 2i + 5 + 6 + b T CK s
3. Set System Logic 1 chip in INTEST mode and System Logic 2 chip in BYPASS
mode.
6 + 2i T CK s
Boundary
Register
256−bit
scan
registers
System I/O
System I/O
System
Circuitry
Scan
Flip−flop
Device ID Register
Bypass Register
Instruction Register
TDI TDO
(Control Signals)
TAP Controller
TCK
TMS
TRST*
dI
φ = LI, V =L
dt
One test method would be to apply a current ramp to the inductor while mea-
suring the voltage across it, which should be constant. We will ignore the startup
and shutdown transients and just look at the steady-state response.
Since all of the switches induce a voltage drop (due to their 100Ω resistance), we
can first disable the inductor by applying a known DC current and measuring the
voltage drop in the system. Then, we can calculate the efective series resitance:
I
V = IRef f , so, Ref f =
V
For the current ramp test,
dI
V = Ref f I(t) + L
dt
Let I(t) = 0 + 50 mA/s × t, so dI
dt = 50 mA/s. Then,
50 mA 50 mA
V (t) = Ref f × t+L×
s s
So,
V (t) − Ref f 50 mA
s t
L=
50 mA/s
or
V (t)
L= − Ref f t
50 mA/s
I. Measure Ref f
II. Measure L
slope=50mA/s
t
0
Verr (t)
∆L = ±
50mA/s
20µV
Verr (t) = 20µV, so ∆L = = 400µH
50mA/s
Redesign the test with this dI dt , and with sampling times t1 and t2 so that we only
get 100mA maximum current.
100mA
t 1 , t2 < = 0.150µs
6666.67 A/s
This may or may not cause a problem with the startup transient being sampled.
Alternative solution:
Apply a sinusoidal current waveform to the inductor and measure the voltage
across it, which should have some phase shift. Ignore startup and shutdown tran-
sients and just look at the steady-state response.
We assume that the system voltmeter has extremely high impedance, so that we
can ignore the current through it and, therefore, we do not model AB2 R s. Then:
V1 = I(100Ω + jωL)
V2 = I(100Ω)
V1 − V2 = jωLI
√
Z = jωL = ω 2 L2 = ωL
V1 − V2
L =
ωI
Test method (see Figure 17.8, page 586 of the book):
I. Repeat prior part I to calculate Ref f (series resistance of inductor.)
II. Measure L
dV
Q = CV, I = C
dt
One test method would be to apply a voltage ramp to the capacitor while mea-
suring the current across it, which should be constant. We will ignore the startup
and shutdown transients and just look at the steady-state response.
Since all of the switches induce voltage drop (due to their 100Ω impedance), we
can first disable the capacitor by applying a known DC voltage and measuring the
current in the system. Then, we can calculate the effective series resistance.
V I
I= so Ref f =
Ref f V
For the voltage ramp test,
t
Idt
V = IRef f + or
0 C
dV I
= (since I will be constant)
dt C
So,
I dV
C= , choose = 50mV /s
dV /dt dt
Test method (see Figure 17.8 on page 586 of the book):
II. Measure C
A. Turn on S5, S6, SB1 (pin 1), SG (pin 1), and SB2 ant pin 1.
B. Turn off SB2 at pin 2.
C. Apply the voltage ramp, shown below, at AT 1.
Voltage, V
slope=50mV/s
t
0
The measurements should agree within 0.02nF . If they do not, reject the
capacitor. Otherwise, average the measurements.
Cave = C1 + C2
199.98nF ≤ Cave ≤ 200.02nF
Alternative solution:
Apply a sinusoidal current waveform to the capacitor and measure the voltage
in the circuit, which should have some phase shift. Ignore startup and shutdown
transients, and just look at the steady state response. Ignore impedances of S6 and
SB2 in AT 2, since the voltmeter has very high impedance.
1
V1 = I(100Ω + )
jωC
V2 = I(100Ω)
I
V1 − V2 =
jωC
1 jωC ω2 C 2 1
Z = = = =
jωC −ω 2 C 2 ω4 C 4 ωC
I
C =
ωC(V1 − V2 )
Test method to measure C (see Figure 17.8 on page 586 of the book):
D. Measure V1 and V2 ,
1
Z = , so
ωC
(V1 − V2 )2
= ω2 C 2
I2
(V1 − V2 )2
C =
ωI
A. Turn on S5, S6, SB1 (pin 1), SB2 (pin 2), SG (pin 1) and force 100µA of current
into AT 1 with ATE current source (AT 1 connects to AB1, AT 2 connects to
AB2.)
V1ef f = V1 + 20µV
V2ef f = V2 − 20µV
V1 ± 20µV − (V2 ∓ 20µV )
Ref f =
100µA
V1 − V2
= ± 0.4Ω
100µA
The error of 0.4Ω equals the tolerance on the resistor value of 40Ω. Although this
test can be used, it will most likely reject the vast bulk of resistors tested. A better
test would be to reduce the ATE system voltmeter measurement error to 2µV .
Alternatively, the circuit under test can be redesigned not to use such low-valued
R’s.
We should now calculate a bound on the leakage current Ileak in the voltmeter
on AT 2.
2. At a given pin, connect AB1 by closing SB1 and close SG for that pin. All
other pin switches should be open. Connect AT 1 to AB1. Force VDD into
AT 1 at the automatic test equipment (ATE). Measure I at AT 1:
V Analog pin
DD AT1 S5 AB1 SB1
ATE
TBIC
SG
V
G
VDD − VG
I=
RS5 + RSB1 + RSG
So,
VDD − VG
RSB1 + RSG = − RS5
I
Assume:
RS5 + RS8
RS5 = , from Problem 17.5
2
4. Repeat steps 1 through 3, but using AB2 instead of AB1 and RS7 rather than
RS5 .
Alternative method:
3. At the pin, connect AB1 by closing SB1 for that pin. All other pin switches
should be open. Connect AT 1 to AB1. Force VDD into AT 1 at the ATE.
Make the ATE force the analog pin to ground. Measure I at AT 1.
V Analog pin
DD AT1 S5 AB1 SB1
ATE
TBIC
4. Repeat step 3, but using AB2 instead of AB1 and RS7 rather than RS5 .
18.2 Diagnosis
The fault (a1 , b1 ) makes the faulty function of the circuit of Figure 18.2 a constant
1, i.e., e = 1. Using the diagnostic tree of Figure 18.3, we first apply the test T4 .
According to the Karnaugh map of Figure 18.2, the expected output is 1, which is
the same as the faulty output. Thus, T4 passes, and t4 = 0. So, we follow the upper
branch in the diagnostic tree and apply the test T1 next. The expected output is 0
now and the test shows a failure. We take the lower branch and apply T3 , which also
shows a failure, i.e., (t3 = 1). Following the lower branch, the procedure terminates
giving a diagnosis of three suspected single faults, c1 , d1 and e1 .
Note: The suspected fault set does not contain the actual multiple fault (a1 , b1 ).
This is a failure of the diagnostic procedure based on single faults. One can verify
that the use of the fault dictionary will also lead to the same erroneous diagnosis.
18.3 Diagnosis
Detection of all stuck-at faults in the exclusive-OR circuit of Figure 18.8 requires
all four vectors. The following table shows inputs and outputs for the circuit.
Here aj denotes the fault a s-a-j, and boldface entries mark the outputs that def-
fer from the correct outputs and hence indicate fault detection. We have collapsed
some faults. For example, c0 represents the equivalent fault set [c0 , e0 , g0 ]. Simi-
larly, f1 represents the equivalent set [f1 , d1 , h0 ], and i0 represents the equivalent set
[g1 , h1 , i0 ]. In the above table, we further notice that faulty functions are identical
for c1 and f0 , and for e1 and d0 . Therefore, faults f0 and d0 can be dropped due to
equivalence. The next table gives the fault dictionary with faults arranged in the
order of increasing numerical value of syndrome.
18.4 Diagnosis
A diagnosis tree constructed from the above fault dictionary is shown in the following
figure.
0 No fault
T4 1
0 c0
T 1 e1
3 T 0
0 4 1
a
0
T2 c
1 0 1
t =0 T4 1
1 T3 0 b0
1
T1 i0 f1
0
t =1
1 T4 1
0 i1
T3 1
0
T2 b1
1
a1
18.6 Diagnosis
We will only consider the four faults that have non-zero probabilities of occurrence.
A binary search generally leads to an optimum diagnosis since each test provides a
pass/fail result. Examining the tests of Table 18.1, we find that application of T2
divides the fault set into subsets (c0 , e0 ) and (a1 , b1 ). Similar consideration leads to
the following diagnostic tree.
No fault
0
T3 1
b1
0
T1
1
t2 = 0
a1
T2
t2 = 1
c0
0
T
4 1
e
0
The average diagnosis time is 2.25 times that of applying one test.
We first apply test T1 . If it fails, i.e., t1 = 1, we presume that either the ALU’s
or the comparator are faulty. So, we apply T2 . A failure now means ALU 0 is
faulty. Otherwise, we apply T3 , which either fails if ALU 1 is faulty, or passes if the
comparator is faulty.
If T1 passes, we assume that ALU’s are not faulty and the x s is the syndromes of
ALU’s under t4 and t5 can be changed to 0. Also, the rest of the procedure assumes
that only one unit is faulty. We apply T5 followed by T4 . If T5 fails and T4 passes
then Register C is considered faulty. If T5 passes and T4 fails then both Register A
and Register B become suspects. If both tests fail then we conclude that perhaps
Register C and at least one among the other two registers are faulty.
The diagnostic tree shows that the procedure terminates with the application of
three or fewer tests.
18.8
(a) Since the processor is used to test other modules, its correctness should be
ascertained first. A self-test is, therefore, desirable. If the self-test of the
processor reports a failure then the rest of the tests need not be conducted.
(b) If the random-vector coverages in the ASIC, FSM and DSP are low, additional
vectors can be algorithmically generated to cover the undetected faults in those
modules. These vectors can be loaded in the RAM (after its own self-test has
been successfully completed) and applied to the appropriate module by the
processor. Their responses can also be compacted in the same way as the
processor compacts the responses of the random vectors.
(c) Since there is a DSP module on the chip it can be used to test the analog
module.
T (Gi ) = KGαi
where the sum is carried over 10 benchmark circuits. To minimize the square-error,
we proceed as follows:
10
dSE KGαi KGαi
=2 −1 =0
dK i=1
Ti Ti
Using α = 0.5 and the values for Ti (sum of PI and PO) and Gi (gates) from
Table 18.5,
√ we evaluate K = 2.32. The given data and the computed values of
T = 2.32 G are plotted on the following graph.
400
ISCAS’85 combinational benchmarks
c2670
Actual
Rent’s rule c7552
Number of I/O terminals, T
300 c5315
200
100
0
0 500 1,000 1,500 2,000 2,500 3,000 3,500
Number of gates, G
300
s38584
200
100
0
0 5,000 10,000 15,000 20,000 25,000
Number of gates, G
Note that Rent’s estimates are highly approximate and depend on the style of
design. We find large error in the cases of s35932 and s38584.
(ii) Show that the three single faults, H s-a-1, J s-a-1, and K s-a-1, are equivalent.
(4 points)
(iii) Using the parallel fault simulation algorithm (assuming a four-bit machine
word), or any alternative fault simulation algorithm, determine which of the
three single faults, F s-a-1, H s-a-0, and L s-a-1, are detected by the input
vector A = 1, B = 0. (5 points)
C
A L
E J
s−a−1
H s−a−0
Z
K
G
F
B M
s−a−1
Solution to Problem 1
(1) Total fault sites = #P I + #gates + #f anout branches = 2 + 4 + 6 = 12
Z(H s − a − 1) = A.B = A + B
Z(J s − a − 1) = A.AB.B = A.(A + B)B
= A(A + B) = A B = A + B
Z(K s − a − 1) = A.AB.B = A(A + B).B
= (A + B)B = A B = A + B
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 183
Since the faulty functions are identical, the three faults are equivalent.
(iii) Parallel fault simulation using a four-bit computer word is shown in the figure
below. The fault-free value of a line is represented by bit 0, the value corre-
sponding to fault F s-a-1 by bit 1, the value corresponding to fault H s-a-0
by bit 2, and the value corresponding to fault L s-a-1 by bit 3.
bit 0
bit 1
bit 2
bit 3
1 1 1 1
C
A L
E J s−a−1
0 0 1 1
H s−a−0
1 1 0 1 Z
1 1 0 0
L s−a−1 detected
H s−a−0 detected
F s−a−1 not detected
fault−free output
K 1 0 1 1
G
F
B M
s−a−1
0 0 0 0 0 1 0 0
L s−a−1 value
fault−free value
H s−a−0 value
F s−a−1 value
Simulated value of the output Z indicates that faults H s-a-0 and L s-a-1 are detected
and F s-a-1 is not detected.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 184
Problem 2: Combinational ATPG (11 Points)
Consider the circuit under test (CUT) with two outputs, C and S, shown in Figure 2.
We desire a test that will detect a target fault at any one output but not at both
outputs. Figure 2 gives an ATPG model circuit in which the two outputs of the
CUT are combined into an exclusive-OR gate (shown shaded) to produce an output
Z.
C
A H C
E
J Z
G S
K
B F
s−a−1 Circuit under test (CUT)
(i) Show that when a fault is detected at Z in the ATPG model, it must be
exclusively detected either at C or at S. (4 points)
(ii) Using either the five-valued logic or the nine-valued logic, obtain a test to detect
B s-a-1 exclusively at one of the outputs of the CUT. (4 points)
Solution to Problem 2
(i) The following table shows how the fault effect (D or D) propagates through an
exclusive-OR gate.
That is, for a fault to affect the value of Z, it should affect the value of C, or
that of S, but not those of both. Therefore, when a test detects a fault at Z
the fault must be detected (observable) exclusively at C or S.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 185
(ii) Using the five-valued logic a test A = 0, B = 0 is found to detect the fault B
s-a-1 at Z, as shown in the following figure. This test detects the fault at S,
but does not detect it at C.
0 C
A H C 0
0
E D
J Z
G S D
K D
0 D F
B
s−a−1 Circuit under test (CUT)
Test generation for B s−a−1 using five−valued logic.
(iii) The following figure shows that the fault H s-a-0 cannot be detected at Z.
Only on input vector, A = B = 1, can activate the fault but it propagates
the fault to both outputs of the CUT. An exclusive test for this fault is not
possible.
1 C
A H s−a−0 C D
D
E 1
J Z
D
G S D
K 0
1 F
B
Circuit under test (CUT)
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 186
Problem 3: Testability Measures (11 Points)
For the circuit of Figure 3, compute the combinational and sequential SCOAP testa-
bility measures (both controllability and observability, and including the CLOCK
and synchronous RESET signals.)
G4 O1
G
1
l1
G
5
l2
G2 G8 O2
l3
G
l4 6
G3
G O3
7
Q D
FF
MC CLOCK
RESET
Solution to Problem 3
The steps of calculation for SCOAP testability measures are shown in the three
figures that follow. Combinational measures are shown as (CC0, CC1)CO and
sequential measures as [SC0, SC1]SO.
(2,4)0 [0,0]0
G4 O1
(2,3)
8
G1
[0,0]
8
(1,1) [0,0]
8
I1
(2,4)
8
G5
(1,1) [0,0] [0,0]
8
I2
(2,3) (5,11)0 [0,0]0
8
G2 G8 O2
I3 (1,1) [0,0]
8
[0,0]
8
(4, )
8
8
G6
[0, ]
8
8
I4
(2, )
8
8
G3
[0, ]
8
8
(2,4)0 [0,0]0
G7 O3
( , ) [ , ] (2,4) [0,0]
8
8
8
8
8
8
Q D
FF
MC CLOCK (1,1) [0,0]
8
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 187
(2,4)0 [0,0]0
G4 O1
(2,3)
8
G1
[0,0]
8
(1,1) [0,0]
8
I1 (2,4)
8
G5
(1,1) [0,0] [0,0]
8
I2 (2,3) (5,11)0 [0,0]0
8
(1,1) [0,0] G2 G8 O
8
I3 [0,0] 2
8
(4,6)
8
G
6 [0,1]
8
I
4
(2,5)
8
G3
[0,1]
8
(2,4)0 [0,0]0
G7 O
3
8
Q D
FF
8
RESET (1,1) [0,0]
8
Circuit of Problem 3: Converged controllability values.
3
0 (2,4)0 [0,0]0
G4 O1
4
(2,3)2
4
G1
[0,0]0
(1,1)4 [0,0]0 9
I1 12
(2,4)9
G5
11
(1,1)3 [0,0]0 13 [0,0]0
I2 (2,3)11 (5,11)0 [0,0]0
(1,1)3 [0,0]0 13
G2 G8 O
I3 [0,0]0 2
11
(4,6)7
10
G6
I4 [0,1]0
6 9
(2,5)2
4
G3
[0,1]0 (2,4)0 [0,0]0
0
3
G7 O
3
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 188
Problem 4: Delay Test
(i) Specify a single input change (SIC) test for the critical path ↑ a − z (shown in
bold lines) in the circuit of Figure 4(i). Is this a robust test? (5 points)
(ii) The circuit of Figure 4(i) is redesigned in Figure 4(ii) to reduce the delay.
Will the SIC test obtained above still test the longest delay path shown in
bold lines? If not, what is the minimum modification required in the test? (6
points)
a
b
c
d
e
f
g
h z
i
(i) Original circuit.
a
b
c
d
e
f
g
h
i
z
Solution to Problem 4
(i) A SIC test is found by statically sensitizing the path a − z and applying a rising
transition to a. Thus, the test is: a = R1, b = S0, c = S1, d = S0, e = S1,
f = S0, g = S1, h = S0, i = S1. This is a robust test.
(ii) When the above test is applied to the redesigned circuit, the OR gate at the
output receives a rising transition (R1) at its upper input and a S0 at the lower
input. Although R1 is produced at Z, this transition does not arrive through
the longest path (shown in bold). Thus, the upper path, which is 5-gate long,
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 189
is tested but the 6-gate path (shown as critical path) is not tested. We find
that no input vector can sensitize this path when a = 1 and the PDF ↑ a − z
for the critical path is untestable.
This part not required: When a = 0, setting h = S1 and leaving all other
inputs as before, we can sensitize the critical path. Thus, the PDF ↓ a − z
for the critical path can be tested by applying a = F 0, h = S1 and leaving all
other inputs as before. We also note that the s-a-1 fault at the output of the
NOT gate is redundant. If that fault is removed, then the 6-gate critical path
will also be removed. Then, the 5-gate path becomes the critical path and it is
robustly testable by the test derived in part (i).
Solution to Problem 5
We rigorously prove that the MARCH C− test detects all inversion coupling faults
(CFin).
The MARCH C− test is,
{ M 0 : (w0); M 1 : ⇑ (r0, w1); M 2 : ⇑ (r1, w0);
M 3 : ⇓ (r0, w1); M 4 : ⇓ (r1, w0); M 5 : (r0) }
and the inversion coupling faults are <↑; > and <↓; >.
Necessary condition: For all cells that are coupled, each should be read after
series of possible CFins may have occurred, and the number of coupled cell
transitions must be odd.
Fault <↑; >: Address of coupled cell i > address of coupling cell j. Cell j
initialized to 0 by M 0, j is made to ↑ by M 1, coupled cell i set to 0 by M 0,
unexpected inversion detected by M 1, number of coupled cell inversions = 1.
Address of coupled cell i < address of coupling cell j. Cell j initialized
to 0 by M 2, j made to ↑ by M 3, coupled cell i set to 0 by M 2, unexpected
inversion detected by M 3, number of coupled cell inversions = 1.
That completes the proof.
The test complexity is O(10n).
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 190
Problem 6: Analog Test (11 Points)
a. Unit test period. For an analog circuit, the test waveform frequency Ft =
2010 Hz and the sampling frequency in the DSP ATE is 8000 s/s. Compute
the minimum unit test period and the corresponding primitive frequency.
b. Unit test period. A CODEC is to be tested on a DSP ATE with Fs = 8000 s/s.
Originally, P = 40 ms, but that does not allow N ≥ 400. Select a test
waveform frequency as close to 2000 Hz as possible that still generates N ≥
400 unique samples by adjusting ∆. How many test waveform cycles (M ) will
there be in the primitive period?
Solution to Problem 6
a.
Ft M 2, 010Hz 201
= = =
Fs N 8, 000Hz 800
That is, M = 201 and N = 800. Unit test period is obtained as,
M 201
UTP = = = 0.1 sec
Ft 2, 010Hz
1
Primitive frequency, ∆ = = 10Hz
UTP
b.
1 1
∆ = = = 25Hz
p 40 msec
Fs 8, 000 s/s
N = = = 320
∆ 25Hz
We must change ∆ and p to get N = 400.
8, 000 s/s
∆ = = 20Hz
400
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 191
Problem 7: DFT (11 Points)
The circuit in Figure 5 is a sequence detector. A sequence 111 in the IN P U T
bit-stream locks the output Z to 1. The state of the circuit can be set to 000 with
output Z = 0 by applying CLEAR = 1.
Z
CLEAR
Q1 Q2 Q3
INPUT
...100111010...
CK
(i) Redesign the circuit using minimum extra hardware to conform to the scan
design rule, “clock must not be gated by a combinational signal.” Neatly
sketch the redesigned circuit. (5 points)
(ii) Sketch the schematic of the full-scan circuit using the multiplexer type of scan
flip-flops (SFFs). Show the complete wiring of the SCAN IN , SCAN OU T
and test control (T C) signals. (6 points)
Solution to Problem 7
(i) To conform to the “clock rule,” we use the clock gating signal Z to inhibit the
data input. This is economically done by inserting an OR gate (shown shaded)
in the following schematic. Z = 0 allows the normal IN P U T to be applied to
the circuit. Z = 1, which occurs only when a 111 stream is detected, forces a
constant 1 input.
Z
CLEAR
...100111010... Q1 Q2 Q3
INPUT
CK
(ii) The following figure shows the scan wiring. All three D-flip-flops are replaced
by scan flip-flops (SFFs) shown as shaded blocks. The logic of SFF, which
includes a D-flip-flop and a multiplexer, is shown in the second figure.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 192
Z
CLEAR
...100111010... Q1 Q2 Q3
INPUT SCANOUT
SFF SFF SFF
SCANIN
CK
TC
NORMAL INPUT
Q
SCAN INPUT
CK
TC
Scan flip−flop (SFF).
d
e l
n o Y
A f m
g p
B h
q r Z
C k
Circuit−Under−Test
Figure 6: Circuit for Problem 8.
2. Express the linear system of matrix equations describing this pattern genera-
tor.
4. For the same circuit, compute the bad machine signature for the fault q stuck-
at-0. Does the test hardware alias for this fault?
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 193
Binary d D
Counter Q
e l Y
ABC A n Q
000 1
f m
001
010 g p
011 B D
100 h sa0 q Z Q Q2
101 C k
110 Circuit−Under−Test
111
Pattern Input MUX
Gener− Api Cpi D
ator Bpi Q
Q
3
Response Compacter
Solution to Problem 8
1. The hardware is shown in Figure 8.
D
MR
Q
0 M B
U
Bpi 1 X
D MS
Q
0 M C
U
1 X
2.
⎡ ⎤ ⎡ ⎤⎡ ⎤
a 0 1 0 a
⎢ ⎥ ⎢ ⎥⎢ ⎥
⎣ b ⎦ (t + 1) = ⎣ 0 0 1 ⎦ ⎣ b ⎦ (t)
c 1 0 1 c
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 194
3. The table below contains the fault-free outputs of the circuit and the state
of the LFSR after every clock. The initial state of the flip-flop is assumed to
be Q1 Q2 Q3 = 000. The output equations used for computing the fault-free
outputs in the table are:
Y = (A ⊕ B) + AB and Z = B + C ⊕ Y
A B C Y Z LFSR state
Q1 Q2 Q3
0 0 0 0 1 0 0 1
0 0 1 1 1 1 1 1
0 1 0 0 0 0 1 1
0 1 1 1 1 0 1 0
1 0 0 1 0 1 1 1
1 0 1 0 0 0 1 1
1 1 0 1 1 0 1 0
1 1 1 1 1 1 1 0
GOOD = Q1 Q2 Q3
Yf = Y and Zf = Y
The table below contains the faulty outputs of the circuit and the state of the
LFSR after every clock. The initial state of the flip-flops is assumed to be
Q1 Q2 Q3 = 000 as before.
A B C Y Z LFSR state
Q1 Q2 Q3
0 0 0 0 0 0 0 0
0 0 1 1 1 0 1 1
0 1 0 0 0 0 0 1
0 1 1 1 1 1 1 1
1 0 0 1 1 0 0 0
1 0 1 0 0 0 0 0
1 1 0 1 1 0 1 1
1 1 1 1 1 0 1 0
Thus, the final signature of the faulty circuit will be “0 1 0”, and the test
hardware does not alias.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 195
Problem 9: Boundary Scan (11 Points)
Figure 9 shows two boundary scan cells surrounding the on-chip system logic. We
test the path from the INPUT boundary scan cell, through the on-chip system
logic, and ending at the OUTPUT boundary scan cell. The JTAG commands are:
SAMPLE, PRELOAD, EXTEST, INTEST, RUNBIST, CLAMP, IDCODE, USER-
CODE, HIGHZ, and BYPASS. Please explain the sequence of these commands used
for delay fault testing of this particular path.
0 On-chip 0
1 System 1
0 Logic 0
1 DQ DQ 1 DQ DQ
CLK CLK CLK CLK
Solution to Problem 9
Here is the sequence of JTAG commands used to test the path:
1. SAMPLE – Capture pin signals and functional hardware outputs in the Bound-
ary Scan Register.
2. Apply INTEST – Copy Boundary Scan Register contents into hold latch. Ap-
ply as many TCK pulses as are necessary to shift the 1st test pattern in from
TDI (this will be the number of pins from TDI up to and including this system
input pin.) Then apply a functional system clock.
3. Repeat Step 2 to apply the 1st time frame pattern to the path and shift the
2nd time frame pattern into the Boundary Scan Register (requires many TCK
pulses.) At this point, the 1st time frame pattern is applied from the hold
registers and the second time frame pattern is in the Boundary Scan Register.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 196
in the next test pattern.) The shifted out response will indicate where a timing
fault has occurred.
Final Exam Solution: Testing course 16:332:576 – May 15, 2002 Page 197
Final Exam: Graduate Course – VLSI Testing
Auburn Univ., ELEC 7250, Spring 2004
May 10, 2004
2. Attempt all six problems and attempt all parts within each problem.
A C
L
E sa1
J
sa0
H
Z
sa1
sa0
sa1
G K M
F
B
Solution to Problem 1
Three faults, E sa0, G sa0, and H sa1 are structurally equivalent as they are on the
inputs and output of a NAND gate. The output function for any of these faults is
A + B. The same output function is produced by J sa1 and K sa1 also. Therefore,
all five faults are equivalent.
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 198
C I
D
A J
F K
G
B
H
L
E
Figure 2: Circuit for testability measures problem.
(i) Assuming that the testability of a stuck-at fault can be represented as the sum
of appropriate controllability and observability, find the set of most difficult
to test faults (4 points).
(ii) Proving a fault to be redundant is a difficult task for an ATPG program. This
circuit has three redundant faults, I s-a-1, J s-a-1, and F s-a-1. Are all of
these faults in your set of most difficult to test faults? If not, explain why not
(4 points).
Solution to Problem 2
Combinational SCOAP testsbility measures, CC0, CC1 and CO, are shown in Fig-
ure 3. For fanout lines only observabilities are shown because their controllabilities
are the same as those of their stems.
(i) Most difficult to test faults in this circuit are those for which controllability and
observability adds up to 7. There are five such faults: D sa0, D sa1, F sa0,
F sa1, and J sa1. Since we can collapse the sa0 faults of the inputs of the
NAND gate J into the output sa1 fault, this set reduces to three faults: D
sa1, F sa1, and J sa1.
(ii) Two out of the three given redundant faults are in the set of difficult to test
faults we identified. The third redundant fault, I sa1 has a SCOAP testability
of 6 that is just below the maximum. To activate this fault, we must set I = 0
and A = 1, making F and J correlated as J = F because of the NAND gate.
Since F and G have the same value, two inputs J and G of the AND gate
K must assume opposite values. This makes the observation of the fault I
sa1 impossible. While computing the observability of line I, SCOAP assumes
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 199
C 5 I (2,2)4
sa1
(1,1)2 D 6
A J sa1 (2,6)0
F 6 K
(3,2)4
sa1
(1,1)2 G 5
B
H 2
(3,2)0
L
2
E
Figure 3: SCOAP measures, (CC0, CC1)CO, for the circuit of Figure 2.
(i) Devise a modification of the three-state logic simulator that will correctly ini-
tialize the circuit of Figure 4 containing a single flip-flop (9 points).
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 200
(ii) How will you extend the new procedure for circuits with many flip-flops (4
points)? Discuss any limitations (4 points).
Solution to Problem 3
(i) We add a fourth value to the three-value set {0, 1, X}. This value, denoted as
X, is the complement of the unknown or don’t case state X. For a two-input
NAND gate, the function is given by the table below:
With this logic system, we start the simulation by setting Z = X and apply
A = 1 as the designer specified. Since E = F = X, the table gives, B = X
and C = 1. After the clock CK is applied, we have Z = 1 and the flip-flop is
initialized. Similar tables can be derived for all other logic gates and for gates
with more than two inputs.
(ii) If there are many flip-flops that are initially in the unknown state, then each
should be assigned a separate value, X1 , X2 , etc. Consider a NAND gate whose
inputs have more than one X, say Xi and Xj . If i = j then the output will be
determined by the the above table. If i = j then X’s should be interpretted
as ordinary X’s of the three-valued logic system. Thus, the number of logic
states will be {0, 1, X, X1 , X2 , . . , Xn , X}, when the circuit has n flip-flops.
Limitation: This method of simulation has much higher complexity when
the circuit has a large number of flip-flops. This is because for n flip-flops,
we must use an n + 3 valued logic. However, as a flip-flop get initialized, the
corresponding Xi state disappears. Altenatively, any Xi state can be converted
to X state, reducing the number of simulation states. The effect of such an
action is to increase the pessimism in simulation.
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 201
Problem 4: Podem (17 points)
Use the Podem algorithm to derive a test for the fault G stuck-at-0 in the Schneider’s
example circuit from Roth’s 1967 paper, which is shown in Figure 5 (8 points).
(1,1)10
(2,4)7
(2,3)9 J
F
SCOAP Testability Measures
(1,1)10 (1,1)10 (CC0, CC1) CO
A (2,4)7
(2,3)10 K
(1,1)10
B (2,3)10
(1,1)10 G Z
C sa0 (2,3)10 (5,9)0
(2,4)7
(1,1)10 L
E
(2,3)9
H (2,4)7
M
(1,1)10
Neatly write all steps, specifying objectives, operations (backtrace, forward im-
plications, X-path check, etc.) Give the state of the implication stack at each step
(9 points).
Solution to Problem 4
The test for fault G sa0 is A = 0, B = 0, C = 0, E = 0. The steps of Podem are
given in the following table.
Step Objec- Action Imp. Implied signal values D X
No. tive stack A, B, C, E, F, G, H, J, K, L, M, Z front. path
1 Fault
activation
G = 1(D) Backtrace B=0 B=0 φ -
2 G = 1(D) Backtrace C=0 B = 0, C = 0, G = 1(D) K, L OK
B=0
3 D propagation
A=0 Backtrace A=0 B = 0, C = 0, G = 1(D) L, Z OK
C=0 A = 0, F = 1, J = 0, K = D
B=0
4 L=0 Backtrace E=1 B = 0, C = 0, G = 1(D) φ NONE
A=0 A = 0, F = 1, J = 0, K = D
C=0 L = 0, H = 0, M = 1, Z = 0
B=0
5 Restore Backtrack E=0 B = 0, C = 0, G = 1(D)
X path A=0 A = 0, F = 1, J = 0, K = D Fault detected
C=0 L = D, H = 1, M = 0, Z = D
B=0
Algorithm termination: Test A = 0, B = 0, C = 0, E = 0 detects the fault as Z = D
(1 backtrack)
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 202
Problem 5: Delay Test (17 points)
(i) Specify a single input change (SIC) test for the critical path ↑ a − z (shown in
bold lines) in the circuit of Figure 6(i). Is this a robust test? (8 points)
(ii) The circuit of Figure 6(i) is redesigned in Figure 6(ii) to reduce the delay.
Will the SIC test obtained above still test the longest delay path shown in
bold lines? If not, what is the minimum modification required in the test? (9
points)
a
b
c
d
e
f
g
h z
i
(i) Original circuit.
a
b
c
d
e
f
g
h
i
z
Solution to Problem 5
(i) A SIC test is found by statically sensitizing the path a − z and applying a rising
transition to a. Thus, the test is: a = R1, b = S0, c = S1, d = S0, e = S1,
f = S0, g = S1, h = S0, i = S1. This is a robust test.
(ii) When the above test is applied to the redesigned circuit, the OR gate at the
output receives a rising transition (R1) at its upper input and a S0 at the lower
input. Although R1 is produced at Z, this transition does not arrive through
the longest path (shown in bold). Thus, the upper path, which is 5-gate long,
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 203
is tested but the 6-gate path (shown as critical path) is not tested. We find
that no input vector can sensitize this path when a = 1 and the PDF ↑ a − z
for the critical path is untestable.
This part not required: When a = 0, setting h = S1 and leaving all other
inputs as before, we can sensitize the critical path. Thus, the PDF ↓ a − z
for the critical path can be tested by applying a = F 0, h = S1 and leaving all
other inputs as before. We also note that the s-a-1 fault at the output of the
NOT gate is redundant. If that fault is removed, then the 6-gate critical path
will also be removed. Then, the 5-gate path becomes the critical path and it is
robustly testable by the test derived in part (i).
Z
A FF
FF FF FF FF
CK
R
For scan design, only one pin is available and the only circuit element that can
be used is a two-to-one multiplexer.
(i) Redesign the circuit using minimum extra hardware to conform to the scan
design rule, “clock must not be gated by a combinational signal.” Neatly
sketch the redesigned circuit (8 points).
(ii) Sketch a schematic of the full-scan circuit using minimum extra overhead.
Show the complete wiring of the SCAN IN , SCAN OU T and test control
(T C) signals (9 points).
Solution to Problem 6
The redesigned scan circuit is shown in Figure 8. Two multiplexers have been added
and one AND gate is eliminated. Only one extra pin is used for the test control
signal T C. The added wiring is shown in bold lines.
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 204
MUX1
1 MUX2
A 1
or FF FF FF FF
SCANIN 0 Z
0 FF or
SCANOUT
CK
R
(i) Work-around for design rule violation: The clock signal CK is directly supplied
to the last flip-flop. The output of the OR gate now controls a multiplexer,
MUX1. When the control is 0, which can only occur if Z is 1, Z is fed back
into the last flip-flop so that its state remains unchanged. The control will be
1 if either Z = 0 or R = 1. In that case the output of the sequence detecting
AND gate is supplied to the flip-flop. The logic of the multiplexer and the OR
gate can be reduced but this design is based on the use of the given multiplexer
block.
(ii) Scan design: Since the first four flip-flops already form a shift register, no scan
modification is necessary. The last flip-flop is preceded by another multiplexer,
MUX2, in addtion to the one inserted to eliminate the clock rule violation.
The scan wiring is shown in bold lines. Input A is also used as SCAN IN and
Z is used as SCAN OU T . The test control signal T C is the only added input
pin. In the normal mode (T C = 1), the circuit functions as sequence detector.
In the scan mode (T C = 0), the output of the fourth flip-flop is routed into
the last flip-flop, thus forming a shift register of length five between A and Z
pins of the circuit.
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – May 10, 2004 Page 205
Final Exam: Graduate Course – VLSI Testing
Auburn Univ., ELEC 7250, Spring 2005
April 30, 2005
1. Please read all problems before starting your answers. Problems can be an-
swered in any order.
2. Attempt all five problems and attempt all parts within each problem.
(b) For the circuit of Figure 1, derive tests for faults i sa1 and e sa0. (5 points)
c m
d j
a i sum
b sa1
f k
g
n
h
carry
e sa0
Figure 1: Circuit for Problem 1 on fault modeling.
(c) Are two faults in part (b) distinguishable? If yes, how will you distinguish
between them? If not, why not? (5 points)
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 206
Solution to Problem 1
(a) Consider a Boolean vector X, a logic function f (X), and two faults with cor-
responding functions f1 (X) and f2 (X). For the faults to be indistinguishable,
the two faulty functions must assume identical values for all X:
From Equation (1) f1 (X1 ) ≡ f2 (X1 ) and substituting this in Equation (2) we
get
which implies that X1 is also a test for fault 2. Similarly, any test X2 for fault
2 can be shown to be a test for fault 1. Thus, both faults have exactly the
same tests.
(b) Both faults, i sa1 and e sa0, are detected by exactly one vector, a = b = 1.
This vector is simulated for both faults in parallel in the following figure.
Fault−free state
Fauty circuit state for i sa1
Faulty circuit state for e sa0
m
c 101
111 j
a d 0 1 0 sum
i
b 010
f sa1
111 k
g 111 101
n
h 111
110
carry
e sa0 110
(c) Even though the two faults have the same test set, they are distinguishable
because the two faulty functions differ at each output. For the faults to be
indistinuishable, the condition of Equation (1) in part (a) must be satisfied at
each output. The following table gives a diagnostic procedure:
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 207
Inputs Outputs Fault
a b sum carry diagnosis
1 1 0 1 No fault
1 1 1 1 Fault i sa1 is present
1 1 0 0 Fault e sa0 is present
1 1 1 0 Some other fault is present
(b) Assuming that the testability of a fault can be represented as the sum of
the appropriate controllability and observability (e.g., testability measure of a
stuck-at-1 fault will be CC0 + CO), identify the most difficult to test stuck-at
fault. (5 points)
(c) Derive a test for the fault identified in part (b), considering line j to be in
unknown state, initially. (5 points)
Solution to Problem 2
(a) Combinational SCOAP testsbility measures, CC0, CC1 and CO, are shown
in the following figure. Initially, line j is set to CC0 = CC1 = CO = ∞. All
values stabilize after two iterations.
(c) A test for the fault j sa1 consists of two vectors, (a, b) = (0,1) → (X,0).
Derivation of this test by time-frame expansion is illustrated in the following
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 208
a (1,1)6 (2,3)4
f (CC0, CC1) CO
b c
(1,1)6 (1,1)6 (6,4)0
(6,4)0
(1,1)9
h i
d e (2,2)8
g (3, )3
8
sa1
(3,7)3
j
( , )
8
8
8
Fault with highest testability
(6,4)6 measure, 12
a X
Time frame 0
f 0
b 0 c
0/1
h i
d e 1
g
sa1
0/1
j 0/1
Time frame −1
a 0 f
0
1 c
b
0
h i
d e 0 0
g
sa1
j X/1 X (initial state)
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 209
Problem 3: ATPG and fault simulation (20 Points)
Derive a pseudo-combinational circuit for the cycle-free sequential circuit of Figure 3
by shorting all flip-flops (FF). Obtain a combinational test for the fault g sa1 in
the pseudo-combinational circuit. If you succeed in finding a combinational vector
then using fault simulation of the sequential circuit show that the targeted fault is
detected by repeating the same vector. Otherwise, use the time-frame expansion
method to derive a test sequence for this fault. (20 points)
a c i
d g h z
b’ e
b s−a−1 FF k
FF
m
f n
j FF
Solution to Problem 3
The pseudo-combinational circuit for the circuit of Figure 3 is shown below:
a c i
d g h z
b e
s−a−1 k
m
f n
j
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 210
b a b a b a b a
0 X 1 0 1 X X 1
b’ b b’ b b’ b b’ b
X 0 1 1 X
e d e d e d e d
f f f f
c c c c
sa1 sa1 sa1 sa1
X X/1 0/1 1 1
h g h g h g h g
X i
1 i X i
0
i
j X j 1 j 1/0 j 0
n k m n k m n k m n k m
X X 1 1/0 0
z X z 1 z 1 z 1/0
Time−frame −3 Time−frame −2 Time−frame −1 Time−frame 0
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 211
Solution to Problem 4
Let us denote the tests as T1 , T2 , T3 and T4 , such that ti is the test syndrome of Ti .
We will only consider the four faults that have non-zero probabilities of occurrence.
A binary search generally leads to an optimum diagnosis since each test provides
a pass/fail result. Examining the tests of Table 2, we find that application of T2
divides the fault set into subsets (F4 , F6 ) and (F2 , F3 ). Similar consideration leads
to the following diagnostic tree. We have assumed that the circuit is known to be
F3
0
T
1
1
t2 = 0
F2
T
2
t2 = 1 F4
0
T
4
1
F
6
faulty before the diagnosis begins. Time for diagnosis is estimated as follows:
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 212
Problem 5: Scan design (20 Points)
The circuit in Figure 4 is a sequence detector. Only one 100-bit long sequence
0 . . . 11010 in the input bit-stream at P I produces an output P O = 1. The 100-
input AND function is implemented as a tree network of AND gates. The circuit
is customized for a specific bit-stream by inverting the selected inputs of the AND
network.
Giant
AND PO
tree
PI FF FF FF FF FF FF
1 2 3 4 5 100
CK
Figure 4: Circuit for scan design Problem 5.
(b) Implement scan design with minimum hardware and test pin overheads. What
is the test length in clock cycles for testing the combinational logic and the
shift register? (10 points)
(c) Modify the design to reduce the test time by a factor of 10. Add minimal
hardware and no more than 20 pins to the original circuit. (5 points)
Solution to Problem 5
(a) The AND gate will require 101 combinational vectors:
(b) The minimal scan design requires only one extra pin that is used as the scanout
signal that is necessary for testing the shift register. PI would be used as
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 213
scanin. Because scanin and scanout are always available, no test control signal
is required. The circuit is shown in the following figure:
Giant
AND PO
tree
PI or scanout
FF FF FF FF FF FF
scanin 1 2 3 4 5 100
CK
The shift register test will require NF F + 4 = 104 clock cycles. For combina-
tional tests of the AND gate, as soon as a vector is scanned in, the output of
the AND gate is directly observed. So, no scan-out is needed. Thus, applica-
tion of 101 combinational vectors will take 101 × 100 = 10, 100 clocks. The
total length of the scan test is 104 + 10, 100 = 10, 204 clock cycles.
(c) To reduce the test time, nine scan multiplexers are inserted to break up the
shift register into 10 segments, each containing 10 flip-flops. All multiplexers
are controlled by a test control signal T C. The P I signal is used as the scan-in
signal, scanin-1, for the first shift register segment. The other nine segments
are supplied the scan-in through test pins, scanin-2 through scanin-10. Each
shift register segment has a test output pin. The scan schematic is shown in
the following figure:
Giant
AND PO
tree
10 10 10
scanout−1
PI or scanout−2
Flip−flops 1−10
mux
scanin−2 scanout−9
scanin−3
mux
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 214
All shift register segments are tested in parallel by a sequence of 14 clocks.
Scanning in of each combinational vector takes 10 clocks and, therefore, 1,010
clocks will be needed to apply 101 vectors. Thus, total test time is 14+1, 010 =
1, 024 clock cycles.
Final Exam Problems and Solutions: VLSI Testing ELEC 7250 – April 30, 2005 Page 215