VLSI Testing
VLSI Testing
電機工程學系
102 學年度第一學期
EE-6250
超大型積體電路測試
VLSI Testing
授課教師:黃錫瑜
超
大
型
積
體
電
路
測
試
講
義
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 1
Introduction
Course Flow
Introduction
Fault Modeling
Fault Simulation
Delay Test
Test Compression
1
What You can Benefit from this
Course?
Values of Acquired Knowledge
- Making ICs more testable
- Makingg ICs/Boards/Systems
y more debuggable
gg
- Making ICs Faster Time-to-Market
- Making ICs Faster Time-to-Volume
Academic Training
- Testing is a rich field as you will know.
- Testing is a good topic for MS/Ph.D. theses.
Career Development
- IC 設計公司 (讓晶片的可測試性更高)
- 半導體廠 (故障診斷,良率追蹤與分析與改善)
- 測試產業 (量產測試之規劃與執行)
- 電子系統廠 (系統故障診斷,可靠度分析與改善)
Ch1-3
IC Fabrication
Idea
Wafer
(hundreds
(h d d off di
dies))
Architecture Design
Sawing & Packaging
Block
diagram Final chips
Layout
customers
Bad chips Good chips
Ch1-4
2
Design Verification, Testing
and Diagnosis
• Design Verification:
– Ascertain the design perform its specified
behavior
• Testing:
– Exercise the system and analyze the response to
ascertain whether it behaves correctly after
manufacturing
• Diagnosis:
– To locate the cause(s) of misbehavior after the
incorrect behavior is detected
Ch1-5
Manufacturing Defects
• Material Defects
– bulk defects (cracks, crystal imperfections)
– surface impurities
• Processing Faults
– missing contact windows
– parasitic transistors
– oxide breakdown
• Time-Dependent Failures
– dielectric breakdown
– electro-migration
• Packaging Failures
– contact degradation
– seal leaks
Ch1-6
3
Faults, Errors and Failures
• Fault:
– A physical defect within a circuit or a system
– May or may not cause a system failure
• Error:
– Manifestation of a fault that results in incorrect circuit
(system) outputs or states
– Caused by faults
• Failure:
– Deviation of a circuit or system from its specified behavior
– Fails to do what it should do
– Caused by an error
Ch1-7
Reliability Test
• Temperature Related
– Hi-Temperature Life Test
– Low-Temperature Life Test
– Temperature-Cycling Test
• Humidity Test
• Salt Mist Test
• UV (Ultra-Violet) Test
• ESD Test
– ESD stands for Electro-Static Discharge
• Whole Mechanical Test
Ch1-8
4
Detailed Reliability Test Items
• Temperature Related
– Operation: 00C/120hr ~ 700C/120hr (商規)
– Operation: -400C/120hr ~ 850C/120hr (工規)
– Storage: -400C/200hr ~ 850C/500hr
– Junction Temperature: Max. 950C
• Humidity Test
– Operation: 250C/95% humidity (商規)
– Operation: 400C/95% humidity (工規)
– Storage: 850C/95% humidity
• Salt Mist Test
– Salt Water Spray
• UV Test
– UV (254nm), 15Ws/cm2
– X-ray exposure, 0.1Gy/1hr
• ESD Test
– For example, For Contact Pads, ±4KV, Human Body Mode
• Whole Mechanical Test
– Vibration (15G, 10 to 2KHz), Impact, Torque, Bending, Drop test
Ch1-9
TEST VECTORS
Manufactured
Circuits
CIRCUIT RESPONSE
Ch1-10
5
Courses on Agilent 93000 at CIC
Host
Test head
Ch1-11
Purpose of Testing
1000
1000
500
Cost 100
100
Cost
Per per 50
10
10
Faultfault
(Dollars)
5
(dollars)
1
1
0.5
IC
IC Test
Test Board
Board
Test System
System
Test Warranty
Warranty
Repair
Test Test Repair
B. Davis, “The Economics of Automatic Testing” McGraw-Hill 1982
Ch1-12
6
Testing and Quality
Shipped Parts
ASIC
Testing
Fabrication Yield:
Quality:
Fraction of Defective parts
Good parts Per Million (PPM)
Ch1-13
Fault Coverage
• Fault Coverage T
– Is the measure of the ability of a set of tests to
detect a given class of faults that may occur on
the device under test (DUT)
Ch1-14
7
Defect Level
• Defect Level
– Is the fraction of the shipped parts that
are defective (單位 ppm or ppb)
DL = 1 – Y(1-T)
Y: yield
T: fault coverage
Ch1-15
Defect Level
1.0 Y = 0.01
Y = 0.1
01
0.8 Y = 0.25
0.6
Y = 0.5
0.4
Y = 0.75
02
0.2 Y = 0.9
09
0 20 40 60 80 100
(Williams IBM 1980) Fault Coverage ( % )
Ch1-16
8
DPM v.s. Yield and Coverage
Ch1-17
• Functional testing
– may NOT be able to detect the physical faults
Ch1-18
9
DEC Alpha Chip (1994)
• 64-bit RISC
• 200 MHz
MH
• 400 MIPS
• 200 Mflops
• 16.8 x 13.9 mm2 die
• 0.68 million transistors
• 431-pin package
• 3.3 V
• 30 W power consumption
Ch1-19
Oh no!
What does
Functionally correct! this chip do?!
We're done!
10
Old Design & Test Flow
spec.
Low-quality test patterns
design flow high defect level
test
layout
patterns
manufacturing
Ch1-21
spec.
Introduces circuitry to
make design testable
Design flow DFT flow
manufacturing
Ch1-22
11
New Design Mission
Power Consumption
PERFORMANCE AREA
Ch1-23
12
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 2
Fault Modeling
Ch2-2
1
Why Fault Model ?
Ch2-3
Fault Modeling
• Fault Modeling
– Model the effects of physical defects on the
logic function and timing
• Physical Defects
– Silicon Defects
– Photolithographic Defects
– Mask Contamination
– P
Process V
Variation
i ti
– Defective Oxides
Ch2-4
2
Common Fault Types
Used To Guide Test Generation
• Stuck-at Faults
• Bridging Faults
• Open Faults
• Transistor Stuck-On Faults
• Delay Faults
• IDDQ Faults (Quiescent current at VDD pin)
• Memory
M Faults
F lt
Ch2-5
Faulty Response
Test Vector
Fault-Free Response
0 0
1
1/0
1
1 1/0
stuck-at-0
Assumptions:
• Only One line is faulty
• Faulty line permanently set to 0 or 1
• Fault can be at an input or output of a gate
Ch2-6
3
Multiple Stuck-At Faults
Ch2-7
4
Multiple Faults
Ch2-9
Bridging Faults
A f A f
B g B g
– CMOS ?
Ch2-10
5
Bridging Faults For CMOS Logic
• The result
– could be AND-bridging or OR-bridging
– depends on the inputs
VDD
E.g., (A=B=0) and (C=1, D=0) VDD
(f and g) are AND-bridging fault
A
pull to VDD C
f
bridging g
B A
C D
pull to zero
GND
GND Ch2-11
0 stuck-on
GND
• Transistor Stuck-On
– May
y cause ambiguous
g logic
g level
– Depends on the relative impedances of the pull-up and pull-
down networks
• When Input Is Low
– Both P and N transistors are conducting, causing increased
quiescent current, could be detected by IDDQ test
Ch2-12
6
CMOS Transistor Stuck-Open (I)
• Transistor stuck-open
– May cause the output to be floating
– The fault exhibits sequential behavior
– Need two-pattern test (to set it to a known value first)
stuck-open
Responses:
Fault-free 01
A two-pattern test Faulty 00
10
Ch2-13
80
40
20
0
1000 2000 3000
Test Vectors
Ch2-14
7
Summary of Stuck-Open Faults
• First Report:
– Wadsack, Bell System Technology, J., 1978
• Recent Results
– Woodhall et. al, ITC-87 (1-micron CMOS chips)
– 4552 chips passed the test
– 1255 chips (27.57%) failed tests for stuck-at faults
– 44 chips (0.97%) failed tests for stuck-open faults
– 4 chips with stuck-open faults passed tests for stuck-at faults
• Conclusion
– Stuck-at faults are about 20 times more frequent than stuck-
open faults
– About 91% of chips with stuck-open faults may also have
stuck-at faults
– Faulty chips escaping tests for stuck-at faults = 0.121%
Ch2-15
Functional Faults
Ch2-16
8
Functional Faults of Decoders
A’B’
A
AB’
Decoder
A’B
B
AB
Ch2-17
Memory Faults
• Parametric Faults
– Any fault that causes the response to deviate from its
fault-free nominal value by some amount
– Ex. A cell with parametric delay fault (with for
example 93% more than normal)
– Due to all kinds of factors like PVT variation
• Functional Faults
– Stuck Faults in Address Register, Data Register,
and Address Decoder
– Cell Stuck Faults
– Adjacent Cell Coupling Faults
– Pattern-Sensitive Faults
Ch2-18
9
Memory Faults
0 0 0 a=b=0 d=0
0 d b a=b=1 d=1
0 a 0
Ch2-19
Memory Testing
• Example:
– A pattern sensitive test is 5n2 long for an n-bit RAM
– Testing a 1-M bit chip at 10ns pattern would take 14
hours
– For a 64-M bit chip, it would take 6 years
Ch2-20
10
PLA Faults
• Stuck-at Faults
• Cross-point Faults
– Extra/Missing Transistors
• Bridging Faults
• Break Faults
Ch2-21
A B C f1 f2 A B C
Gate-level model
P1 P1
f1
P2
f2
AND-Array OR-Array P2
Ch2-22
11
Missing Cross-Point Faults in PLA
Growth
s-a-1
s-a-0
x x f1
f2
Disappearance
Ch2-23
f1
f2
Disapp.
Shrinkage "1" "0"
Appearance
Ch2-24
12
Summary of PLA Faults
• Cross-Point Faults
– 80 ~ 85% covered by stuck
stuck-fault
fault tests
– Layout-dependence in folded PLA
• Bridging Faults
– 99% covered by stuck-fault tests
– Layout-dependence in all PLAs
Ch2-25
Delay Testing
Ch2-26
13
Gate-Delay Fault (I)
• Slow to Rise
– x is slow to rise when channel resistance R1 is
abnormally
b ll hi
highh
VDD VDD
R1
X
X
HL
Cload
Ch2-27
slow
Ch2-28
14
Path-Delay Fault
B
A Z
Ch2-29
Fault Detection
• Fault Activation
• Fault Propagation
15
Definition Of Fault Detection
• Example
E l
X1
Z1
x
s-a-1 Z1=X1X2 Z2=X2X3
X2
Z1f =X1 Z2f =X2X3
Z2
X3
Ch2-32
16
Fault Sensitization
G1
X1 1
X2 0 G3
1
X3 1
1
0/1
s-a-1
z
G2 G4
0/1 0/1
X4 1
z (1011)=0 zf (1011)=1
1011 detects the fault f (G2 stuck-at 1)
v/vf : v = signal value in the fault free circuit
vf = signal value in the faulty circuit
Ch2-33
Detectability
Ch2-34
17
Undetectable Fault
can be removed !
a
G1
s-a-0
b x z
Ch2-35
Test Set
Ch2-36
18
Typical Test Generation Flow
yes no
More faults ? Done
Ch2-37
Fault Collapsing
• Fault Equivalence
• Fault Dominance
• Checkpoint
Ch k i t ThTheorem
19
Fault Equivalence
• Distinguishing test
– A test t distinguishes
disting ishes faults
fa lts and if
Z t Z t 1
• Equivalent Faults
– Two faults, & are said to be equivalent
in a circuit , iff the function under is equal to
the function under for any input combination
(sequence) of the circuit.
– No test can distinguish between and
Ch2-39
Fault Equivalence
• AND gate:
– all s-a-0 faults are equivalent
x
x s-a-0
• OR gate:
s-a-0
– all s-a-1 faults are equivalent
• NAND gate: same effect
– all the input s-a-0 faults and the output
s-a-1 faults are equivalent
• NOR gate:
– all input s-a-1 faults and the output
s-a-0 faults are equivalent
• Inverter:
– input s-a-1 and output s-a-0 are equivalent
input s-a-0 and output s-a-1 are equivalent
Ch2-40
20
Equivalence Fault Collapsing
s-a-1 s-a-0
s-a-1 s-a-1
s-a-0 s-a-0
s-a-1 s-a-0
s-a-1 s-a-0
s-a-1 s-a-1
s-a-0 s-a-0
s-a-1 s-a-0
Ch2-41
• In a combinational circuit
– Many faults may form an equivalent group
– Th
These equivalent
i l t ffaults
lt can bbe ffound
dbby sweeping
i the
th
circuit from the primary outputs to the primary inputs
s-a-0 s-a-1
x
x
s-a-1
x
Ch2-42
21
Finding Equivalent Group
• Construct a Graph
– Sweeping the netlist from PO’s to PI’s
– Wh
When a fault
f lt is
i equivalent
i l t tto a ffault
lt ,
then
th an edge
d iis
connected between then
– Transitive Rule:
• When connects and connects , then connects
a s-a-0
a d s-a-0
a s-a-1
b b s-a-0 d s-a-1
1
d
e s-a-0
c e e s-a-1
Fault Dominance
• Dominance Relation
– A fault is said to dominate another fault
in
i a circuit,
i it iff every ttestt ((sequence)) ffor is
i
also a test (sequence)
for .
– I.e., test-set() > test-set()
– No need to consider fault for fault detection
Test() is dominated by
Test()
Ch2-44
22
Fault Dominance
• AND gate:
– Output s-a-1 dominates any input s-a-1 Easier-to-test
• NAND gate:
x
– Output s-a-0 dominates any input s-a-1 x s-a-1
• OR gate: s-a-1
Ch2-45
D
x
C: stem of a multiple fanout A
A & B: branches C x
B
x
E
• Detect A sa1:
zt z f t CDCE D CE D CD1
C 0, D 1
• Detect C sa1:
zt z f t CDCE DE 1
C 0,
0 D 1 or C 0,
0 E 1
• Hence, C sa1 dominates A sa1
• Similarly
– C sa1 dominates B sa1
– C sa0 dominates A sa0
– C sa0 dominates B sa0
• In general, there might be no equivalence or
dominance relations between stem and branch faults Ch2-46
23
Analysis of a Single Gate
AB C A B C A B C
sa1 sa1 sa1 sa0 sa0 sa0
A
C 00 0 1
B
01 0 1 1
10 0 1 1
11 1 0 0 0
Fault Collapsing
• Equivalence + Dominance
– For each n-input gate, we only need to consider
n+1 faults during test generation
s-a-1
s-a-0
s-a-1
Ch2-48
24
Dominance Graph
• Rule
– When fault dominates fault , then an arrow is
pointing from to
• Application
– Find out the transitive dominance relations among
faults
a s-a-0
a d s-a-0
a s-a-1
b d s-a-1
1
d
e s-a-0
c e e s-a-1
Ch2-49
Ch2-50
25
Prime Fault
Ch2-51
26
Checkpoint Theorem
• Example
– Checkpoints are marked in blue
p g the circuit from PI to PO to examine every
– Sweeping y
gate, e.g., based on an order of (A->B->C->D->E)
– For each gate,
output faults are detected if every input fault is detected
A a
D
B
E
C
Ch2-54
27
Fault Collapsing + Checkpoint
• Example:
– 10 checkpoint faults
– a s-a-0 <=> d s-a-0 , c s-a-0 <=> e s-a-0
b s-a-0 > d s-a-0 , b s-a-1 > d s-a-1
– 6 tests are enough
a
d
f
h
b
g
e
c
Ch2-55
28
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 3
Fault Simulation
Outline
• Approximation Approach
• Techniques for Sequential Circuits
Ch3-2
1
Why Fault Simulation ?
• To construct fault-dictionary
– For post-testing diagnosis
Ch3-3
Patterns Response
(Sequences) Comparison
(Vectors) Faulty Circuit #n (D/0)
Fault-free Circuit
Primary A B
Inputs D
(PIs) C
Primary Outputs
(POs)
Logic simulation on both good (fault-free) and faulty circuits
Ch3-4
2
Some Basics for Logic Simulation
Ch3-5
Compiled-Code Simulation
A
B E
Z
C
D
• Compiled code
– LOAD A /* load accumulator with value of A */
– AND B /* calculate A and B */
– AND C /* calculate E = AB and C */
– OR D /* calculate Z = E or D */
– STORE Z /* store result of Z */
Ch3-6
3
Event-Driven Simulation
1 1 A 0?
0 1 B G1 E
0 1 C G2 Z 0?
00 D
Pick an event
Evaluate its effect
yes no
More event in Q ? Done
Ch3-7
#Gate (G)
#Fault (F)
#Pattern (P)
• Complexity ~ F ‧P‧G
P G ~ O(G3), where G is the no. of gates
• The complexity is higher than logic simulation by a factor of F,
while usually is much lower than ATPG
• The complexity can be greatly reduced using
• Fault dropping and other advanced techniques
Ch3-8
4
Characteristics of Fault Simulation
• For example
– F1 is not activated by the given pattern, while F2
affects only the lower part of this circuit.
0 F1(s-a-0)
×
×
1
F2(s-a-0)
1
×
Ch3-9
Ch3-10
5
Parallel Fault Simulation
• Extra Cost:
– A
An event,t a value-change
l h off a single
i l ffault
lt or ffault-free
lt f
circuit leads to the computation of the entire word
– The fault-free logic simulation is repeated for each
pass
Ch3-11
B/1 1 1 1 1
A J/0
1
0 1x 0 0 0 1 0 0 00 1 0 1
C 0 1 0 0 E G
0
× 1
B 1 0 1 1 ×
J
D
H
0 1 0 0 1 ×
F 1 0 0 1
1 1 00 1
Q: What faults are detected?
F/0
Ch3-12
6
Example: Parallel-Pattern Simulation
1 1 1 1
A
0 1 0 1 1 1 0 1
C 0 1 0 1 G 0 1 0 1
B D E 1 0 1 0
J
0 1 0 1 H
x
F 1 0 0 0
1 0 0 1 1 0 0 1 0 0 0 0
0 0 0 0
Ch3-13
Parallel-pattern
• P1, P2, P3 are patterns events
P1 • F1,
F1 F2,
F2 F3 are faults
P2
PIs F POs • Complexity
– Is proportional to the events that
P3 need to be processed
– The value-change events (upper
figure) seems to be fewer than
Parallel-fault the fault-events (lower figure)
– Hence,, p
parallel-pattern
p seems to
F1 be more efficient than parallel-
fault methods
PIs P F2 POs
F3
Ch3-14
7
Deductive Fault Simulation
Ch3-15
OR ‘1’
1 ‘0’
0
Ch3-16
8
Example: Fault List Propagation
0
LA A 0
0 C LC
LB B
9
Example: Deductive Simulation (1)
0 0
B C
J
0 x
E 1 x 1
D
1 H
1
F
x
Ch3-19
10
Example: Deductive Simulation (3)
0 0
B C
J
0 x
E 1 x 1
D
H 1 H
1
F
x
0 0
B C J
0 x
E 1
J x 1
D
1 H
F
1 x
Final Fault List at the output J:
LB = {B/1}, LF = {F/0}, LC=LD = {B/1},
LG = {B/1}, LE = {B/1}
LH = {B/1, F/0},
LJ = (LG · LH) {F/0, J/0}
Ch3-22
11
Example: Even-Driven
Deductive Fault Simulation
A G
10
0 C
B
J
0 x 00
E x 1
D 1
1 H
1
F
x
Event-driven operation:
LB = {B/1}, LF = {F/0}, LA =
LC=LD = {B/1}, LG = ,
LE = {B/1}, LH = {B/1,F/0}, LJ = {B/1,F/0,J/0}
Ch3-23
Ch3-24
12
Concurrent Fault Simulation
Fault-free
1 Y
0 0
0
Can be 0 F73
0
dropped 0
1
survivor 1 F2
1
Ch3-25
A
1 G
C
B 0
J
0 x E x 1
D 1
1 H
1
F
x
13
Example: Concurrent Simulation (2)
A
1 G
C
B 0
J
0 x
E x 1
D 1
1 H
1
F
x
Ch3-27
14
Example: Concurrent Simulation (4)
A G
10
C
B
J
0 x 00
E x 1
D 1
1 H
1
F
x
A 0
0 D
0
B
1
0 A/1
0
0
0 B/1
1
0
1 D/1
0
Ch3-30
15
Fault List Propagation
A 0 D
0 0 E
B 0 0
C 0
These 2 faults are A/1: 10_0 C/1: 01_1
not propagated
after evaluation B/1: 01_0 D/1: 10_1
D/1: 00_1 propagated E/1: 00_1
A 1
* D
0 0 E
B 0 0
C 0
Outline
Ch3-32
16
Sensitive Input and Critical Path
Sensitized ?
Non-sensitive input 1 0
Z PO
Sensitive input 0
i
sensitization
1 0 Path(s)
Z is critical PO
0
i
PO is sensitive to i, or i is critical
• In a fanout-free circuit
– the criticality of a line can be determined by
backward traversal to the sensitive gate’s inputs from
PO’s, in linear time
Ch3-34
17
Analysis of Critical Path Tracing
• Three-step Procedure:
– Step 1: Fault-free simulation
– Step 2: Mark the sensitive inputs of each gate
– Step 3: Identification of the critical lines by backward
critical path tracing)
• Complexity is O(G)
– Where G is the gate count
– for fanout-free circuits --- very
y rare in practice
p
• Application
– Applied to fanout-free regions, while stem faults are
still simulated by parallel-pattern fault simulator.
Ch3-35
18
Anomaly of Critical Path Tracing
Ch3-37
A
1
G 1
1 C 1
B D
H 1 J
(stem)
1
F (fanout-free region)
Ch3-38
19
Parallel and Distributed Simulation
Ch3-39
• Fault Partition
– Distributes faults among many processors.
– Works relatively well for both combinational and
sequential circuits.
• Pattern Partition
– Distributes patterns among processors.
• no duplicated logic simulation
– Works well for combinational circuits.
• Circuit
C Partition
– Difficult to achieve synchronization without
incurring excessive communication overhead.
Ch3-40
20
Distributed Fault Simulation
Speed-up
Ratio
# Processor
Ch3-41
Fault Grading
Ch3-42
21
STAFAN
Ch3-43
STAFAN (cont.)
d n
f the summation of
Statistical Fault Coverage each fault’s detection
probability
Ch3-44
22
Outline
Ch3-45
Application: High
High-Performance
Performance CPU Designs
23
Sequential Design Model
Sequential Circuits
A Comb. Comb.
B logic FFs logic
C
FFs out1
out2
clk
A
OUT1
B Combinational OUT2
C Logic
Hoffman Model
FFs
Ch3-47
Time-Frame-Expansion Model
f f f
S0 S1 S2 S3
PPI PPO
Notations: PPI: pseudo primary inputs (I.e., outputs of flip-flops)
Time-frame:PPO:
1 pseudo primary outputs
2 (I.e., inputs of 3
flip-flops)
24
Hypertrophic Faults
• A hypertrophic fault
– Is a fault that diverges from the fault-free circuit with
a large number of Xs, which usually is a stuck-at fault
occurring at a control line and thus prevents the
circuit initialization
• A small number of hypertrophic faults
– account for a large percentage of fault events and
CPU time
• These faults are sometimes dropped
– as potentially detected faults to reduce simulation
time. However, the resultant fault coverage then
becomes approximate
A potentially detected fault is
a fault detected only when the circuit is
powered on in certain states, not every state.
Ch3-49
F lt E
Fault Emulation
l ti
We can utilize FPGA to speed up the sequential fault grading
25
FPGA-Based Emulation Process
ASIC netlist
Compilation
p
(format translation, partitioning, mapping)
Bit-Stream
i.e.,
Bit-stream downloading Programming FPGA’s
Emulation
hardware
FPGA chips
Ch3-51
ASIC netlist
Compilation
Bit-stream
Bit t downloading
d l di Fault list generation
join
Fault-free FPGA’s Fault list
Fault injection
More faults
yes
no
Fault
END Report fault coverage coverage
Ch3-52
26
Fault Injection Should Be Efficient !
• Fault Injection
– Is to convert a fault-free FPGA implementation to a
faulty one
– If not efficient, could become the new bottleneck
Ch3-53
Faulty CLB
A E s-a-0
0 A
Simplify to
B B
C Z C Z
Bit t
Bit-stream off th
the entire
ti circuit
i it
27
Example: FPGA-implementation
A
B
C
CLB2
CLB1
D G s-a-0
E
Ch3-55
A
B
C
CLB2
CLB1
D
E
F
(x=1, y=0) The above netlist behaves like A s-a-1 faulty circuit
(x=0, y=1) The above netlist behaves like G s-a-0 faulty circuit
Ch3-56
28
Dynamic Fault Injection (II)
(1) Conservatively map only 4-input function to a CLB,
which is originally assumed to be capable of realizing 5-input function.
(2) Extra input, I.e., x, is reserved for the control of dynamic fault injection.
a
b Faulty
c Function
d f(a,b,c,d)
1
MUX Z
0
Good
Function
g(a,b,c,d)
X
CSR FF FF FF FF FF
clock 1 0 0 0 0
Circular shift-register
Ch3-58
29
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 4
Automatic Test Pattern Generation
1
Combinational ATPG
ch4-3
A Test Pattern
0 stuck-at
t k t1
0 0/1
1 0/1
1 1
1 stuck-at 0
1/0
x 1/0
x x
x x
ch4-4
2
Test Generation Methods
(From Truth Table)
ch4-5
a stuck-at 0
b
f = ab+ac, f= ac
f
T = the
th sett off all
ll ttests lt
t ffor ffault
= ON_set(f⊕f c
ch4-6
3
Boolean Difference
ch4-7
Chain Rule
A f
G( f(A,
f(A B)
B), {C
{C, D} )
B
C {A,B} and {C,D} have no
variables in common
D
ch4-8
4
Boolean Difference (con’t)
• Boolean Difference
– With respect to an internal signal, w, Boolean
diff
difference representst the
th sett off input
i t combinations
bi ti
that sensitize a fault effect from w to the primary
output F
• Calculation
– Step 1: convert the function F into a new one G that
takes the signal w as an extra primary input
– Step 2: dF(x1, …, xn)/dw = dG (x1, …, xn, w)/dw w
x1 . x1
w Free w .
. . x
. F G
.
xn xn
ch4-9
5
Test Generation By Boolean
Difference (con’t)
Case 2: Faults are present at internal lines.
a x
b h
F = ab + ac
c
G(i.e., F with h floating ) = h + ac
dG/dh = G(h=0) ⊕G(h=1) = (ac ⊕ 1) = (a’+c’)
Outline
ch4-12
6
Test Generation Method
(From Circuit Structure)
• Two basic goals
– (1) Fault activation (FA)
– (2) Fault propagation (FP)
– Both of which requires Line Justification (LJ), I.e., finding
input combinations that force certain signals to their desired
values
• Notations:
– 1/0 is denoted as D, meaning that good-value is 1 while
faulty value is 0
– Similarly, 0/1 is denoted D’
– Both D and D’ are called fault effects (FE)
1 a fault activation
1/0
1 b
f
0 fault propagation
0 c
ch4-13
• Fault activation
– Setting the faulty signal to either 0 or 1 is a Line
Justification problem
• Fault propagation
– (1) select a path to a PO decisions
– (2) Once the path is selected a set of line
justification (LJ) problems are to be solved
• Line Justification
– Involves decisions or implications
– Incorrect decisions: need backtracking
ch4-14
7
Ex: Decision on Fault Propagation
d G2
G5 f1
a { G5, G6 }
b G1
c
G6 f2 G5 G6
G3
G4 fail success
e
D-frontiers: are the gates whose output value is x, while one or more
Inputs are D or D’. For example, initially, the D-frontier is { G5, G6 }.
ch4-15
Various Graphs
Graph = (V, E)
Digraph
(directed graph)
DAG
((Directed Acyclic
y Graph)
p )
Tree
ch4-16
8
Ex: Decisions On Line Justification
a k q=1
b q l=1 k=1
c l fail rr=1
1
d
m m=1 o=1
n r s n=1
o success
The corresponding
e p decision tree
f
h
J-frontier: is the set of gates
whose output value is known
– FA set h to 0 (I
(I.e., 0 or 1)
1), b
butt iis nott iimplied
li d
by its input values.
– FP e=1, f=1 (o=0) ; FP q=1, r=1
Ex: initially, J-frontier is {q=1, r=1}
– To justify q=1 l=1 or k=1 Decision point
– Decision: l =1 c=1, d=1 m=0, n=0 r=0 inconsistency at r
backtrack !
– Decision: k=1 a=1, b=1
– To justify r=1 m=1 or n=1 (c=0 or d=0) Done ! (J-frontier is )
ch4-17
Branch-and-Bound Search
• Test Generation
– Is a branch-and-bound search
– Every decision point is a branching point
– If a set of decisions lead to a conflict (or bound), a
backtrack is taken to explore other decisions
– A test is found when
• (1) fault effect is propagated to a PO
• (2) all internal lines are justified
– No test is found after all p
possible decisions are tried
Then, target fault is undetectable
– Since the search is exhaustive, it will find a test if one
exists
ch4-18
9
Implications
• Implications
– Computation
p of the values that can be uniquely
q y
determined
• Local implication: propagation of values from one
line to its immediate successors or predecessors
• Global implication: the propagation involving a
larger area of the circuit and re-convergent fanout
ch4-19
Before After
0 x 0 0
x x
1 x 1 1
1 1
1 0 1 0
x J-frontier={ ...,a } 0 J-frontier={ ... }
a a
D' x D' 0
D D-frontier={ ...,a } D-frontier={ ... }
a D a
ch4-20
10
Local Implications (Backward)
Before After
x 1 1 1
x 1
x 0 0
0
1 1
x x 0
0 x J-frontier={{ ...,a
, }
x a J-frontier={ ... } a
1 1 1
x
x 1
ch4-21
Global Implications
Before After
x d x
d
x x
D x D D
x g g
x x 1
x x
e e
g is called a dominator of d:
because every path from d to an PO passes through g
ch4-22
11
Learning for Global Implication
A D 1 D
A
B 1 0
F B F
C E C E
F=1 implies B=1 F=0 implies B=0 When A=1
Because B=0 F=0 Because {B=1, A=1} F=1
(Static Learning) (Dynamic Learning)
ch4-23
s=
1 r=1
u= v=
t=1
1 1
Appotential
f f f f sub-tree
v=
1
f f
success
sub-tree without a solution
ch4-24
12
Ex: D-Algorithm (1/3)
j 1
e'0
n
e G2
1 k D
a 0 g D
b 1 D’ ≠ 1
c 1
l Conflict at k
f' 1 Backtrack !
f
m
1
ch4-25
j 1
e' 0
n
e G2
1 D
a 0 g D k
b 1 D’ (next D-frontier chosen)
c 1
l
f' 0 1
Conflict at m
Backtrack !
f
1 m
D’ ≠ 1
ch4-26
13
Ex: D-Algorithm (3/3)
14
Decision Tree on D-Frontier
h 1
d' 0 {i,k,m}
d 1
i D’ i
G1
j 1 {k,m,n}
e' 0
n
e G2 n k
1 k
a 0 g D D
b 1 D’
c 1 F {m,n}
l n m
f' 0 1
f
1 m F S
D’
ch4-29
9-Value D-Algorithm
ch4-30
15
Example: 9-Value D-Algorithm
0/1
h 1/u 1/1
d' Decision Tree
0/u
d D’ ((=0/1)
D 0/1)
1/u
i
D’(0/1)
G1 {i, k, m}
1/u j i
e' u/1
u/0 n {k, m, n}
e G2
u/1 D(=1/0)
a 0/1 g k n
u/1 D ((1/0))
b u/1
c u/1
success
1/u
l D’ or 1
f' u/1
u/0
f u/1 No-backtrack !
m
u/1
ch4-31
ch4-32
16
Outline
ch4-33
• In D-algorithm
– TG is done through indirect signal assignment for FA, FP, and LJ,
that eventually maps into assignments at PI’s
– The decision points are at internal lines
– The worst-case number of backtracks is exponential in terms of
the number of decision points (e.g., at least 2k for k decision
nodes)
• In PODEM
– The test generation is done through a sequence of direct
assignments at PI’s
– Decision points are at PIs, thus the number of backtracking might
be fewer
ch4-34
17
Search Space of PODEM
a
0 1
b b
0 1 0 1
c c c c
0 1 0 1 0 1 0 1
d d d d d d d d
F F F S F S F F
ch4-35
• PODEM
– Also aims at establishing a sensitization path based on fault
activation and propagation like D-algorithm
– Instead of justifying the signal values required for sensitizing the
selected path, objectives are setup to
guide the decision process at PI’s
• Objective
– is a signal-value pair (w, vw)
• Backtrace
– B
Backtrace
kt maps a ddesired
i d objective
bj ti iinto
t a PI assignment
i t that
th t is
i
likely to contribute to the achievement of the objective
– Is a process that traverses the circuit back from the objective
signal to PI’s
– The result is a PI signal-value pair (x, vx) 往輸入端追蹤
– No signal value is actually assigned during backtrace !
ch4-36
18
Objective Routine
Objective() {
/* The target fault is w s-a-v */
/* Let variable obj be a signal-value pair */
if (the value of w is x) obj = ( w, v’ ); fault activation
else {
select a ggate (G)
( ) from the D-frontier; fault p
propagation
p g
select an input (j) of G with value x;
c = controlling value of G;
obj = (j, c’);
}
return (obj);
}
ch4-37
• Backtrace Routine
– Involves finding an all-x path from objective site to a
PI,, I.e.,, every
y signal
g in this path
p has value x
Backtrace(w, vw) {
/* Maps objective into a PI assignment */
G = w; /* objective node */
v = vw; /* objective value */
while (G is a gate output) { /* not reached PI yet */
inv = inversion of G;
select
l t an input
i t (j) off G with
ith value
l x;
G = j; /* new objective node */
v = v⊕inv; /* new objective value */
}
/* G is a PI */ return (G, v);
}
ch4-38
19
Example: Backtrace
Dx F 0A C D1 F
xA C =>
xB x x xB 1 x
Ex Ex
The first time of backtracing
D1 F 0A C D1 F
0A C =>
xB 1 x 1B 1 1
Ex E0
The second time of backtracing
ch4-39
PI Assignment in PODEM
Assume that: PI
PI’s:
s: { a, b, c, d } a
Current Assignments: { a=0 } 0
Decision: b=0 objective fails
Reverse decision: b=1
Decision: c=0 objective fails 0
b
1
Reverse decision: c=1
Decision: d=0
failure c
0 1
ch4-40
20
Example: PODEM (1/3)
ch4-41
j 1
e' 0
n
e G2
1 k
a 0 g D G3
b 1
c 1
l
f'
f
m
G4
ch4-42
21
Example: PODEM (3/3)
ch4-43
n=D f' 0 l
1
f
1 m
D’ ch4-44
22
Decision Tree in PODEM
0 a
b
1
c
1
d
1
e
0 1
fail f
success
ch4-45
Terminating Conditions
• D-algorithm
– Success:
(1) Fault
F lt effect
ff t att an output
t t (D
(D-frontier
f ti may nott b
be empty)
t )
(2) J-frontier is empty
– Failure:
(1) D-frontier is empty (all possible paths are false)
(2) J-frontier is not empty
• PODEM
– Success:
• Fault effect seen at an output
– Failure:
• Every PI assignment leads to failure, in which D-frontier
is empty while fault has been activated
ch4-46
23
PODEM: Recursive Algorithm
Overview of PODEM
• PODEM
– examines all possible input patterns implicitly but
exhaustively (branch-and-bound) for finding a test
– It is complete like D-algorithm (I.e., will find one if a
test exists)
ch4-48
24
The Selection Strategy in PODEM
ch4-49
Controllability As Guidance
• Controllability of a signal w
– CY1(w): the probability that line w has value 1.
– CY0(w): the probability that line w has value 0.
– Example:
• f = ab
• Assume CY1(a)=CY0(a)=CY1(b)=CY0(b)=0.5
CY1(f)=CY1(a)xCY1(b)=0.25,
CY0(f)=CY0(a)+CY0(b)-CY0(a)xCY0(b)=0.75
• Example of Smart Backtracing
– Objective (c, 1) choose path ca for backtracing
– Objective
Obj ti ((c, 0) choose
h path
th ca
ffor b
backtracing
kt i
CY1(a) = 0.33
CY0(a) = 0.67 a
c
CY1(b) = 0.5 b
CY0(b) = 0.5
ch4-50
25
Testability Analysis
• Applications
– To give an early warning about the testing problems
that lie ahead
– To provide guidance in ATPG
• Complexity
– Should be simpler than ATPG and fault simulation, I.e.,
need to be linear or almost linear in terms of circuit
size
• Topology analysis
– Only the structure of the circuit is analyzed
– No test vectors are involved
– Only approximate, reconvergent fanouts cause
inaccuracy
ch4-51
SCOAP
(Sandia Controllability/Observability Analysis Program)
值越大代表越困難
ch4-52
26
General Characteristic of
Controllability and Observability
Boundary conditions:
(1) For PI’s: CC0 = CC1 = 1 and SC0 = SC1 = 0
(2) For PO’s: CO = SO = 0
ch4-53
Controllability Measures
x1
Y
x2
27
Controllability Measure (con’t)
x1
x2 Y
x3
Observability Measure
x1
x2 Y
x3
ch4-56
28
PODEM: Example 2 (1/3)
Initial objective=(G5,1).
G5 is an AND gate Choose the hardest-1
Current objective=(G1,1).
G1 iis an AND gatet Choose
Ch the
th hardest-1
h d t1
Arbitrarily, Current objective=(A,1). A is a PI Implication G3=0.
1A CY1=0.25 1/0
G1 G5
B
CY1=0.656
CY1 0.656 G7
C G2
G4 G6
0
G3
ch4-57
1 1 CY1=0.25 1/0
A G1
1 B G5
CY1=0 656
CY1=0.656 G7
C G2 0
G4 G6
0
0
G3
ch4-58
29
PODEM: Example 2 (3/3)
1 A 1 CY1=0.25 1/0=D
G1 1
1 B G5
0 CY1=0.656 G7 D
0 C G2
G4 G6
0
0 0
G3
No backtracking !!
ch4-59
Initial objective=(G5,1).
Choose path G5-G4-G2-A A=0.
Implication for AA=0
0 G1
G1=0,
0, G5
G5=0
0 Backtracking to A
A=1.
1.
Implication for A=1 G3=0.
1 A 1/0
G1
B G5
G7
C G2
G4 G6
G3
0
ch4-60
30
If The Backtracing Is Not Guided (2/3)
1
1 A 1/0
1
G1 G5
B
G7
C G2
G4 G6
0
G3
0
ch4-61
1
1A 1/0=D
1B
G1 A
G5 0 1
0 1
G7 D F B
0C G2 0 1
G4 G6 F C
0
0 0
G3 S
0
ch4-62
31
ECAT Circuit: PODEM (1/3)
Fault activation
g 0->D'
0 a
x b
c h m
l p
d
e i
f
j
n
k
ch4-63
g 0->D'
0 a
x b
1 h 1 m
c l
0 d p
1
e i side-input
f requirement
j 0
n
k
ch4-64
32
ECAT Circuit: PODEM (3/3)
0->D'
0 a g
x b
1 c h 1 m
l p D
0 d D
0 1
e i 0
0 f objective
j 0 0
n
k 1
No backtracking !!
ch4-65
Outline
ch4-66
33
FAN (Fanout Oriented) Algorithm
• FAN
– Introduces two major extensions to PODEM’s
backtracing algorithm
• 1st extension
– Rather than stopping at PI’s, backtracing in FAN
may stop at an internal lines
• 2nd extension
– FAN uses multiple backtrace procedure, which
attempts to satisfy a set of objectives
simultaneously
ch4-67
• Bound line
– A line reachable from at least one stem
• Free line
– A line that is NOT bound line
• Head line
– A free line that directly feeds a bound line
E H
F M
Head lines K
A Bound lines
B J
L
C
ch4-68
34
Decision Tree (PODEM v.s. FAN)
E H
F M
Head lines K
Assume that:
A Bound lines Objective is (J, 0)
B J
L
C
J is a head line
A Backtrace stops at J
1 All makes J = 0
Avoid unnecessary search
B
0 1
S C
0 1 J
0 1
S
S
PODEM FAN
ch4-69
ch4-70
35
Why Multiple Backtrace ?
• Multiple Backtrace
– Starts from a set of objectives (Current_objectives)
– Maps these multiple objectives into a head-line
assignment k=vk that is likely to
• Contribute to the achievement of a subset of the objectives
• Or show that some subset of the original objectives cannot
be simultaneously achieved
0
Multiple objectives 0
May have conflicting
1
Requirements at a stem 1
ch4-71
A1 1
conflicting stem I1
A A2 0 E1
E 1 G 0
1 E2
B 1 H 1 0
Consistent stem J
C 1
Current_objectives Processed entry Stem_objectives Head_objectives
36
Multiple Backtrace Algorithm
Mbacktrace (Current_objectives) {
while (Current_objectives ≠ ) {
remove one entry (k, vk) from Current_objectives;
switch (type of entry) {
1. HEAD_LINE: add (k, vk) to Head_objectives;
2. FANOUT_BRANCH:
j = stem(k);
increment no. of requests at j for vk; /* count 0s and 1s */
add j to Stem_objectives;
3. OTHERS:
inv = inversion of k; c = controlling value of k;
select an input (j) of k with value x;
if ((vk⊕ inv) == c) add(j, c) to Current_objectives;
else { for every input (j) of k with value x
add(j, c’) to Current_objectives; }
}
} TO BE CONTINUED …
ch4-73
Mbacktrace (Current_objectives) {
while (Current_objectives ≠ ) {body in previous page}
if(Stem objectives≠ ) {
if(Stem_objectives≠
remove the highest-level stem (k) from Stem_Objectives;
vk = most requested value of k;
/* recursive call here */
add (k, vk) to Current_objectives;
return (Mbacktrace(Current_objectives);
}
else { remove one objective (k, vk) from Head_objectives;
return (k, vk)
}
}
ch4-74
37
References
[1] Sellers et al., "Analyzing errors with the Boolean difference", IEEE Trans. Computers,
pp. 676-683, 1968.
[2] J. P. Roth, "Diagnosis of Automata Failures: A Calculus and a Method", IBM Journal
of Research and Development, pp. 278-291, July, 1966.
[2'] J. P. Roth et al., "Programmed Algorithms to Compute Tests to Detect and
Distinguish Between Failures in Logic Circuits", IEEE Trans. Electronic Computers,
pp. 567-579, Oct. 1967.
[3] C. W. Cha et al, "9-V Algorithm for Test Pattern Generation of Combinational Digital
Circuits", IEEE TC, pp. 193-200, March, 1978.
[4] P. Goel, "An Implicit Enumeration Algorithm to Generate Tests for Combinational
Logic Circuits", IEEE Trans. Computers, pp. 215-222, March, 1981.
[5] H. Fujiwara and T. Shimono, "On the Acceleration of Test Generation Algorithms",
IEEE TC, pp. 1137-1144, Dec. 1983.
[6] M. H. Schulz et al., "SOCRATES: A Highly Efficient Automatic Test Pattern Generation
System", IEEE Trans. on CAD, pp. 126-137, 1988.
[6'] M. H. Schulz and E. Auth, "Improved Deterministic Test Pattern Generation with
Applications to Redundancy Identification", IEEE Trans CAD, pp. 811-816, 1989.
ch4-75
38
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 5
Design For Testability
& Scan Test
Outline
• Introduction
– Why DFT?
– What is DFT?
• Ad-Hoc Approaches
• Full Scan
• Partial Scan
ch5-2
1
Why DFT ?
ch5-3
• Definition
– Design For Testability (DFT) refers to those design
techniques that make test generation and testing
cost-effective
• DFT Methods
– Ad-hoc methods
– Scan, full and partial
– Built-In Self-Test (BIST)
– Boundary scan
• Cost of DFT
– Pin count, area, performance, design-time, test-time
ch5-4
2
Why DFT Isn’t Universally Used
Previously?
ch5-5
Important Factors
• Controllability
– Measure the ease of controlling
g a line
• Observability
– Measure the ease of observing a line at PO
• Predictability
– Measure the ease of predicting output values
ch5-6
3
Outline
• Introduction
• Ad-Hoc Approaches
– Test Points
– Design Rules
• Full Scan
• Partial Scan
ch5-7
• Design Guidelines
– Avoid redundancy
– Avoid asynchronous logic
– Avoid clock gating (e.g., ripple counter)
– Avoid large fan-in
– Consider tester requirements (tri-stating, etc.)
• Disadvantages
– High fault coverage not guaranteed
– Manual test generation
– Design iterations required
ch5-8
4
Some Ad-Hoc DFT Techniques
• Test Points
• Initialization
input
• Monostable multivibrators Delay
element
output
– One-shot circuit
• Oscillators and clocks One-shot
• Counters / Shift-Registers
– Add control points to long counters input
p
• Partition large circuits
output
• Logical redundancy
• Break global feedback paths
ch5-9
• Information Redundancy
– Outputs = (information-bits) + (check-bits)
– Information bits are the original normal outputs
– Check bits always maintains a specific pre-defined
logical or mathematical relationship with the
corresponding information bits
– Any time, if the information-bits and check-bits violate
the pre-defined relationship, then it indicates an error
• Hardware
Hard are Red
Redundancy
ndanc
– Use extra hardware (e.g., duplicate or triplicate the
system) so that the fault within one module will be
masked (I.e., the faulty effect never observed at the
final output)
ch5-10
5
Module Level Redundancy
Module 1
Majority verdict 0
0
Module voter
0
Module
ch5-11
Add OP
1 (extra PI)
Add 1-CP
ch5-12
6
0/1 Injection Circuitry
• Normal operation
When CP_enable = 0
• Inject
j 0
– Set CP_enable = 1 and CP = 0
• Inject 1
– Set CP_enable = 1 and CP = 1
0 w
C1 MUX C2
1
CP
CP_enable
Inserted circuit for controlling line w
ch5-13
C1 C2 C3 Cn C1 C2 C3 Cn
N= 2n N= 2n
(demultiplexing control points) (multiplexing observation points)
ch5-14
7
Sharing Between Test Points &
Normal I/O
Normal Normal
Functional functional
inputs outputs
Input n n
pins n 1-to-2 n 2-to-1 Output
n
DEMUX’s MUX’s n pins
p
n n n
CP’s Observation
points
SELECT SELECT
PIN PIN
ch5-15
• Impact
– The controllability
y of the fanout-cone of the added
point is improved
• Common selections
– Control, address, and data buses
– Enable / Hold inputs
– Enable and read/write inputs to memory
– Clock and set/clear signals of flip-flops
– Data select inputs to multiplexers and
demultiplexers
ch5-16
8
Example: Use CP to Fix DFT Rule
Violation
• DFT rule violations
– The set/clear signal of a flip-flop is generated by other
logic, instead of directly controlled by an input pin
– Gated clock signals
• Violation Fix
– Add a control point to the set/clear signal or clock signals
D D Q
Q
Violation
CK fix CK clear
clear
logic
logic
CLEAR
ch5-17
• Gated Clocks
– Advantage: power dissipation of a logic design can thus
reduced
– Drawback: the design’s testability is also reduced
• Testability Fix
D Q
D Q
CK
CK Violation
fix
MUX
Gated
CK CK_enable
CK_enable
CP_enable
CK
ch5-18
9
Example: Fixing Tri-State Bus
Contention
• Bus Contention
– A stuck-at-fault at the tri-state enable line may cause
b contention
bus t ti – multiple
lti l active
ti drivers
di are connected
t d
to the bus simultaneously
• Fix
– Add CPs to turn off tri-state devices during testing
(A Bus Contention Scenario in the presence of a fault)
Enable line stuck-at-1
stuck at 1 x
0 0 Unpredictable voltage on bus may
cause a fault to go unnoticed
Enable line active
1 1
ch5-19
Trigger clock
Q0 For 2nd 8-bit start Q8
start Q9
Q1 counter
Q2 Q10
Q3 Q11
8-bit counters 8 bit co
8-bit counters
nters Q12
Q4
Q5 MUX Q13
Q6 CK_for_Q8 Q14
Q15
Q7
CP_enable
CK
ch5-20
10
Observation Point Selection
• Impact
– The observabilityy of the fanin-cone ((or transitive
fanins) of the added OP is improved
• Common choice
– Stem lines having a large number of fanouts
– Global feedback paths
– Redundant signal lines
– Output
O t t off llogic
i ddevices
i h
having
i many iinputs
t
• MUX, XOR trees
– Output from state devices
– Address, control and data buses
(常為電路區塊間之介面訊號)
ch5-21
Problems of CP & OP
X Z
g
Shift-register R1 X’
X Z’
Z Shift-register R2
control Observe
ch5-22
11
Outline
• Introduction
• Ad-Hoc Approaches
• Full Scan
– The Concept
– Scan Cell Design
– Random Access Scan
• Partial Scan
ch5-23
What Is Scan ?
• Objective
– To provide controllability and observability at internal
state variables for testing
g
• Method
– Add test mode control signal(s) to circuit
– Connect flip-flops to form shift registers in test mode
– Make inputs/outputs of the flip-flops in the shift register
controllable and observable
• Types
– Internal scan
• Full scan, Partial scan, Random access
– Boundary scan
ch5-24
12
The Scan Concept
Combinational
Logic
Mode Switch
(normal or test)
Scan In
FF
FF
FF
Scan Out
ch5-25
Combinational Logic
input output
pins pins
D Q D D Q
Q
clock
ch5-26
13
Example: A 3-stage Counter
Combinational Logic
input q1 output
p
q2 g stuck-at-0
pins q3 pins
q1 q3
q2
D D D
Q Q Q
1 1 1
clock
ch5-27
Combinational Logic
input
put q1
q2 output
g stuck-at-0
pins q3 pins
q1 q3
q2
scan-output
MUX
MUX
D D
scan-input
MUX
Q Q D Q
1 1 1 (SO)
(SI)
scan-enable
clock
14
Procedure of Applying Test Patterns
• Notation
PI’s PO’s
– Test vectors T = < tiI, tiF > i= 1, 2, …
Comb.
– Output Response R = < riO, riF > i= 1,
1 2,
2 …
portion
PPI’s PPO’s
• Test Application
– (1) i = 1;
– (2) Scan-in t1F /* scan-in the first state vector for PPI’s */
– (3) Apply t iI /* apply current input vector at PI’s */
– (4) Observe riO //* observe current output response at PO’s
PO s *//
– (5) Capture PPOs to FFs as riF /* capture the response at PPO’s to FFs */
• (Set to ‘Normal Mode’ by raising SE to ‘1’ for one clock cycle)
– (6) Scan-out riF while scanning-in ti+1F /* overlap scan-in and scan-out */
– (7) i = i+1; Goto step (3)
ch5-29
• Common practice
– Scan chain is often first tested before testing the core logic
by a so-called flush test - which pumps random vectors in
and out of the scan chain
15
MUX-Scan Flip-Flop
D
SC (normal / test)
Normal
Master-
Slave
SI (scan input)
Flip-flop
CLK
ch5-31
slave
latch
ch5-32
16
Race-Free Scan FF
CK1
CK2
Q1
D
D Q D Q Q2
SC
SI CK CK
CK1
CK2
ch5-33
D Q1 Q2
CK1
C
SD
想辦法將 MUX
融入FF設計中,
以降低 Scan 對速度的負面影響
CK2
CK3
ch5-34
17
Symbol of LSSD FF
Latch 1
D 1D Q Q1 (normal level-sensitive
latch output)
SI 2D
C CK1
A CK2
Latch 2
D Q SO
B CK
ch5-35
Q1 Q2
D1 D2
D D
Flip Flip
Fl
Flop Fl
Flop
A workaround
D1 Q2
D D
Flip Flip
Flop D2 Flop
Clock
All FFs are triggered by the same clock edge
Set and reset signals are not controlled by any internal signals
ch5-36
18
Some Problems With Full Scan
ch5-37
Performance Overhead
ch5-38
19
Scan-Chain Reordering
3 2
Scan-In Scan-In
1 1
5 3
S
Scan-Out
O t S
Scan-Out
O t
4 4
Scan cell
2 5
Normalized
Scan Predicted Actual area
operating
implementation overhead overhead
frequency
None 0 0 1.0
ch5-40
20
Random Access Scan
Normal
FF 0
data D Q
Y decoder
MUX
Y address FF Test 1
data
Y-enable
ch5-41
Outline
• Introduction
• Ad-Hoc Approaches
• Full Scan
• Partial Scan
ch5-42
21
Partial Scan
• Basic idea
– Select a subset of flip-flops for scan
– Lower overhead (area and speed)
– Relaxed design rules
• Cycle-breaking technique
– Cheng & Agrawal, IEEE Trans. On Computers, April 1990
– Select scan flip-flops to simplify sequential ATPG
– Overhead is about 25% off than full scan
ch5-43
scan design
ch5-44
22
A Partial-Scan DfT Flow
Circuit file
Flip-flop selection
Test model
Circuit with
Partial scan
Test vectors
ch5-45
primary
primary outputs
inputs 1 2 4 5 6
primary
inputs
3
Graph of the circuit
L=3
1 2 4 5 6
L=2
L=1
Depth D=4
ch5-46
23
Partial Scan For Cycle-Free
Structure
ch5-47
ch5-48
24
Partial Scan Design
PI PO
PPI PPO
3
Scan Out
Scan In
1 2 4 5 6 Scan In
ch5-49
CPU
Time
ch5-50
25
Summary of Partial-Scan
• Partial Scan
– Allows the trade-off between test generation effort
and hardware overhead to be automatically explored
• Breaking Cycles
– Dramatically simplifies the sequential ATPG
• Performance Degradation
– Can be minimized by using timing analysis data for
flip-flop selection
ch5-51
26
Chapter 6
Delay Testing
Acknowledgements:
Mainly based on the lecture notes of
“VLSI Test Principles and Architectures”
ch6-1
ch6-2
1
Basic Delay Testing
Delay Test Pattern:
A two-pattern test: <v1, v2>
v1 is an initialization vector
v2 causes the fault to be detected
V1 V2
00 Captured
Next Clock Cycle
01 Passing
circuit
11 Failing
Challenge: The launch time and capture time are just away
by a high-speed clock cycle time
ch6-3
Launch-off shifting
g (LOS)
( )
Aka (also known as) skewed-load
v1 is arbitrary, v2 is derived by a 1-bit shift of v1
Launch-off capture (LOC)
Aka broadside or double-capture
v1 is arbitrary, v2 is derived from v1 through the
circuit function
ch6-4
2
Timing Sequence of Launch
Launch--off-
off-Shifting
PROS: Easier Test Generation to achieve a Higher Fault Coverage
CONS: Hard to produce the Scan-Enable signal ‘SE’
(Note: ‘SE’ has to go LOW between S1 and C1)
d
SE
S1 is a shifting cycle
C1 is a capture cycle
d is the fast clock cycle time
ch6-5
Example of LOS
Question:
v1 is {y1=‘0’, y2=‘0’, y3=‘1’}
What is vector v2 if using LOS?
Assuming scan chain order y3y2y1
V1 V2
0? y1
0? y2 circuit
1? y3
SI (‘1’)
ch6-6
3
Timing Sequence of Launch
Launch--off-
off-Capture
PROS: Scan-Enable signal ‘SE’ to easy to produce
CONS: Fault Coverage is Lower than LOS
V1 V2
C1 C2
CK … …
d
SE
Easier to produce
C1 is a capture cycle
C2 is a capture cycle, too
d is the fast clock cycle time
ch6-7
ch6-8
4
Ex: LOS Pattern Generation
y1
Target fault: y2
A
x Slow-to-rise
- A slow-to-rise
B
Test Requirement: y3
1st time frame: initialize a1 to ‘0’
2nd time frame: detect a2 s-a-0 fault SI
0 y1 1 y2
A 0 A 1/0
1 y2 x a1 1 y3 x a2
B 0 B 0/1
1 y3 0 SE
Detected
1st Time Frame 2nd Time Frame
Final 1st Pattern: (y1, y2, y3, SE) = (0, 1, 1, 0) Shifted to become 2nd Pattern
ch6-9
0 x1 1 x1’ 1/0
A 0 A
0 x2 x a1 1 x2’ x a22
B 0 B 0/1 Detected
1 y
ch6-10
5
Summary
More and more ICs require delay testing (or called
timing testing, performance testing), to ensure that
an IC can perform up to its target speed.
Better understand what LOS, LOC means, since
It’s industrial practice.
Some IC, e.g., CPU, needs to go through speed
binning process, to determine the “quality bin” of
each IC and its sell price.
Delay test is still a tough issue and still evolving.
evolving
Rigorous delay testing also aims to detect “small
defects” so as to reduce the test escape of latent
defects that might hurt an IC’s reliability in its field.
ch6-11
6
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 7
Built-In Self-Test
Design-for-Testability
ch7-2
1
Outline
• Basics
• Test Pattern Generation
• Response Analyzers
• BIST Examples
• Memory
y BIST
ch7-3
ch7-4
2
Good Things About BIST
• At-Speed Testing
– catching timing defects
• Fast
– reduce the testing time and testing costs
– a major advantage over scan
ch7-5
off-line
pre-computed
Circuit Under Test
fault-free
(CUT)
signature
Pass-or-fail
ch7-6
3
Why Compression ?
• Motivation
– Bit-to-bit comparison is infeasible for BIST
• Signature
Si t analysis
l i
– Compress a very long output sequence into a single
signature
– Compare the compressed word with the pre-stored
golden signature to determine the correctness of the
circuit
• Problems
– Many output sequences may have the same signature
after the compression leading to the aliasing problem
– Poor diagnosis resolution after compression
ch7-7
fault-free
4
BIST Issues
• Area Overhead
• Performance
P f D
Degradation
d ti
• Fault Coverage
– Most on-chip generated patterns may not
achieve a very high fault coverage
• Diagnosability
– The chip is even harder to diagnose due to
response compression
ch7-9
ch7-10
5
Example: Hard-To-Detect Fault
• Hard-to-detect faults
– Faults that are not covered by random testing
– E.g., an output signal of an 18-input AND gate
Hard-to-detect fault
x
stuck-at-0
ch7-11
ch7-12
6
BIST Techniques
• Stored-Vector Based
– Micro-instruction
Micro instruction support
– Stored in ROM
ch7-13
z D1 D2 D3 D4 D1 D2 D3 + D4
y1 y2 y3 y4 z y1 y2 y4
y3
7
LFSR – Example
16-bit
16 bit shift register
ch7-15
LFSR Example
D4 D3 D2 D1
+
1 0 0 0
0 0 0 1
D1 D2 D3 D4 0 0 1 1
z y1 y2 y3 y4 0 1 1 1
1 1 1 1
1 1 1 0
y1(t+1) 1001 y1(t) 1 1 0 1
y2(t+1) 1000 y2(t) 1 0 1 0
=
y3(t+1) 0100 y3(t) 0 1 0 1
y4(t+1) 0010 y4(t) 1 0 1 1
0 1 1 0
1 1 0 0
Characteristic polynomial
1 0 0 1
g ( x ) x 4 x1 1 0
0
0
1
1
0
0
0
repeating 1 0 0 0
ch7-16
8
Ex: Primitive LFSR – State Diagram
0000
1000 0001
1100
0010
1110 0100
0111 0011
1011 0110
0101 1101
1010
ch7-17
Primitive Polynomials
(Up to Degree 100)
Note: “24 4 3 1 0” means p ( x) x 24 x 4 x 3 x1 x 0
ch7-18
9
Galois Field GF(2)
• Operation
– Modulo-2 addition, subtraction, multiplication, and
division of binary data
• Properties
– Modulo-2 addition and subtraction are identical
– 0+0=0, 0+1=1, 1+0=1, 1+1=0
– 0-0=0, 0-1=1, 1-0=1, 1-1=0
Bit-stream Bit-stream
multiplication division
ch7-19
Why LFSR ?
• Low aliasing
gpprobability
y
– The fault coverage lost due to the response
compression is less than other compression schemes
ch7-20
10
LFSR – Definitions
• Maximum-length sequence
– A sequence generated by an n-stage LFSR is called a
maximum-length sequence if it has a period of 2n-1
– A maximum-length sequence is called m-sequence
• Primitive polynomial
– The characteristic polynomial associated with a
maximum-length sequence is called a primitive
polynomial
• Irreducible
I d ibl polynomial
l i l
– A polynomial is irreducible if it cannot be factorized
into two (or more) parts, I.e., it is not divisible by any
polynomial other than 1 and itself.
ch7-21
LFSR – Properties
• No. of 1s and 0s
– The number of 1s in an m-sequence differs from the
y only
number of 0s by y one
• Pseudo-random sequence
– The sequence generated by an LFSR is called a pseudo-
random sequence
• The correlation
– Between any two output bits is very close to zero
• Consecutive run of 1s and 0s
– An m-sequence produces an equal number of runs of 1s
and 0s.
– In every m-sequence, one half the runs have length 1,
one fourth have length 2, one eighth have length 3, and
so forth
ch7-22
11
LFSR – Polynomial Multiplication
1101
g ( x ) x4 x3 1 x3 x 2 1
+ D4 + D3 D2 D1
x 4
x 3 1 x 3 x 2 1 x 7 x 5 x 4 x 2 1
ch7-23
12
LFSR – Summary
• LFSRs
– Can be used to implement polynomial
multiplication and division in GF(2)
• As polynomial multiplier
– LFSRs are capable of generating pseudo random
vectors
• As polynomial divisors
– LFSRs are capable of compressing test response
ch7-25
D D D
Q Q Q
Three-cell neighbor
ch7-26
13
Cellular Automata – Name
• Name of CA functions
– Is determined by its truth table
Example: FCA Ci 1 Ci
CiCi-1
Ci+1 00 01 11 10 Name = 64+32+4+2
0 0 1 0 1 = 102
1 0 1 0 1 ch7-27
0 0
D D D D D D
Q Q Q Q Q Q
14
Cellular Automata – Hardware
D D D D D D
Q Q Q Q Q Q
ch7-29
Outline
• Basics
• Test
T t Pattern
P tt G
Generation
ti
– How to generate patterns on chip using
minimum hardware, while achieving
high fault coverage
• Response Analyzers
• BIST Examples
• Memory BIST
ch7-30
15
On-Chip Pattern Generation
ch7-31
16
On-Chip Exhaustive Testing
• Exhaustive testing
– Apply all possible input combinations to CUD
– A complete functional testing
– 100% coverage on all possible faults
• Limitation
– Only applicable for circuits with medium number of
inputs
Signature
6-stage Circuit Under Test
Analyzer
LFSR (CUD)
(SA)
ch7-33
ch7-34
17
Example for Pseudo-Exhaustive
Testing
ch7-35
ch7-36
18
Pseudo Random Testing Hardware
Combinational Sequential
LFSR LFSR
Combinational Combinational
circuit circuit
SA SA
(Circular BIST)
ch7-37
10-stage LFSR
Shift register
LFSR
S S S
Circuit Under Test CUT CUT
R R R
SA SA
(CEBT) (STUMPS)
19
Weighted Pseudo Random Testing
0
LFSR
0
D D D D D D D
Q Q Q Q Q Q Q
1/8 3/4 1/2 7/8 1/2 0.8 0.6 0.8 0.4 0.5 0.3 0.3
ch7-39
• To implement a signal
– with a signal-1 probability (weight) of 5/32
• Procedure
(1) Decompose into a sum of basic weights
5/32 = 4/32 + 1/32 = 1/8 + 1/32
(2) Use AND and OR gates to realize the weight
y1 1/8
y2
y3
z = y 1y2y3 + y 1y2y3y4y5
LFSR
a signal with a
weight of 5/32
y4
1/32
y5
ch7-40
20
Outline
• Basics
• Test
T t Pattern
P tt G
Generation
ti
• Response Analyzers
– How to compress the output response
without losing too much accuracy
• BIST Examples
p
• Memory BIST
ch7-41
• Ones-counting compression
• Transition-counting compression
• Signature Analysis
ch7-42
21
Ones-Counting Signature
• Procedure
– Apply the predetermined patterns
– Count the number of ones in the output
sequence
R0=00000000
R1=11000000
Test R2=10000000
CUT
Pattern
Counter
Clock
signature OC(R0) = 0
OC(R1) = 2
OC(R2) = 1
ch7-43
• Notations
– T0: set of test vectors whose fault
fault-free
free response is 0
– T1: set of test vectors whose fault-free response is 1
• Theorem
– The following new test set does NOT suffer from
fault masking using ones count testing
– T = {T0, (|T0|+1) copies of every pattern in T1}
– Note that the fault masking only occurs when a fault
is detected by the same number of patterns in T0
and T1; the above new test set avoid this condition
ch7-44
22
Transition-Counting Signature
• Procedure
– Apply
pp y predetermined
p patterns
p
– Count the number of 01 and 10 transitions
DFF
Test
CUT
Pattern
Clock Counter
Transition count
ch7-45
Aliasing of Transition-Counting
• Example
1. (0, 1, 1) (0, 0, 1)
2. ((0,, 0,, 1)) ((0,, 1,, 1))
3. (1, 1, 0) (1, 0, 0)
4. (1, 0, 0) (1, 1, 0)
ch7-46
23
Aliasing of Transition Counting
• Aliasing Probability
– Notations
• m: the test length
• r: the number of transitions
– Highest when r=m/2
– No aliasing when r=0 or r=m
– For combinational circuits, permutation of the
i
input
t sequence results
lt iin a diff
differentt signature
i t
– One can reorder the test sequence to minimize
the aliasing probability
ch7-47
• Procedure
– Apply predetermined patterns
– Divide the output sequence by LFSR
Test
CUT LFSR
Pattern
ch7-48
24
Example: Aliasing Probability
• Assume that
– Output
p number to be compressed
p has m=4 bits
– The compression is done by dividing output
number by a divisor of 2n-1, (e.g., the divisor is
22-1 = 3 when n=2)
– The remainder is taken as the signature
• Possible signatures
output = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
remainder = 0 1 2 0 1 2 0 1 2 0 1 2 0 1 2 0
aliasing prob. when signature is 0 = (2m/(2n-1)) / 2m
= 1/ (2n-1) ~ 2-n
ch7-49
+ D Q + D Q + D Q + D Q
clock
ch7-50
25
Outline
• Basics
• Test Pattern Generation
• Response Analyzers
• BIST Examples
• Memory BIST
ch7-51
• A BIST controller
– for controlling the BIST circuitry during self-test
– could be off-chip
ch7-52
26
HP Focus Chip (Stored Pattern)
• Chip Summary
– 450,000 NMOS devices, 300,000 Nodes
– 24MHz clocks, 300K-bit on-chip ROM
– Used in HP9000-500 Computer
• BIST Micro-program
– Use microinstructions dedicated for testing
– 100K-bit BIST micro-program in CPU ROM
– Executes 20 million clock cycles
– Greater than 95% stuck-at coverage
– A power-up test used in wafer test, system test,
field test
ch7-53
• Features
– [Bardell 1982, 84]
g LFSR and Parallel MISR
– Self-Test using
– Multiple scan chains to reduce test time
PIs
...
Scan path
LF
M
MISR
Scan path
FSR
CUT
Scan path
...
Seed POs Signature
ch7-54
27
Scan-Based Logic BIST
Architecture
pseudo-random
d d pattern
tt generator
t
chain 3
chain 2
chain 4
chain 1
primary primary
input pins output pins
ch7-55
...
B2
MUX
Si 0
scan-in D Q D Q D Q D Q
Scan-out
1
...
Q Q Q Q S0
Q1
Q2 Qn-1 Qn
...
B1 B2 operation mode c
0 0 shift register 0
0 1 LFSR pattern generation 0
1 1 MISR response compressor 0
1 0 parallel load (normal operation) 1
ch7-56
28
Example: BILBO-Based BIST
• Test procedure
– each logic block C1, C2, C3 are tested in a serial
manner
– BIST controller needs to configure each BILBO
registers properly during self-testing
BILBO1
when testing C1
BILBO1 is a PRPG C1
BILBO2 is a MISR
BILBO2
C2
BILBO3
C3
ch7-57
Concurrent BILBO
BILBO
C1
concurrent BILBO
needs to be
PRPG and MISR
simultaneously
ch7-58
29
Outline
• Basics
• Test Pattern Generation
• Response Analyzers
• BIST Examples
• Memory BIST
ch7-59
• Historical -Rule
– The number of bits per chip has quadrupled
roughly every 3.1 (or ) years
ch7-60
30
Test Time May Get Too Long !
• Example
– assume that the clock cycle time is 100 ns
Algorithm Testing time (in seconds)
complexity
3/2 2
Capacity n 64n n•log2n 3n 2n
16k 0.1 0.023 0.63 54
64k 0.4 0.1 5.03 14 Mins
256k 1.7 0.47 40.3 3.8 Hrs
1M 6.7 2.1 5.4 Mins 61 Hrs
4M 26.8 9.2 43 Mins 41 Days
16M 1.8 Mins 40.3 5.7 Hrs 2 Years
ch7-61
failure infant
wear-out
rate mortality
normal life failures
failure rate
>>
Time
Short period of accelerated stress test prior to shipment
To eliminate the infant mortality
ch7-62
31
Memory Model
enable read/write
sense amplifier control circuit
clk
ch7-63
Memory Array
P ro b lem : A S P E C T R A T IO o r H E IG H T > > W ID T H
2L- K B it Li n e
S t o rag e C ell
AK
Row Decoder
AK +1 W o rd L in e
A L -1
M .2 K
A0
C o l u m n D ec o de r S elect s a p p ro p ria t e
A K -1 w o rd
In p u t- O u tp u t
(M b its)
ch7-64
32
Fault Models
ch7-65
Example Faults
• SAF : Cell stuck
• SAF : Driver stuck
Fault Models
• SAF : Read/write line stuck
• SAF : Chip-select line stuck
• SAF : Data line stuck
• SAF : Open in data line
• CF : Short between data lines
• CF : Cross-talk between data lines
• AF : Address line stuck
• AF : Open in address line
• AF : Open decoder
• AF : Shorts between address lines
• AF : Wrong access
• AF : Multiple access
• TF : Cell can be set to 0 but not to 1 (or vice-versa)
• NPSF : Pattern sensitive interaction between cells
ch7-66
33
Simple Test Algorithms
• Test Algorithm
– is an abstract description of a sequence of test patterns.
– Background patterns
0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1
0 0 0 0 1 1 1 1
– Checkerboard patterns 0 0 0 0 1 1 1 1
0 1 0 1 1 0 1 0
1 0 1 0 0 1 0 1
– March Patterns 0 1 0 1 1 0 1 0
1 0 1 0 0 1 0 1
ch7-67
A March Algorithm
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0
1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ch7-68
34
Example: A Memory BIST
normal
inputs tester/BIST
BIST
S CCircuit
cu
pattern generator
MUX
clock
FSM-1
output bufffer
test Memory
patterns
delay buffer
reset
memory
response
comparator
pass_or_fail test_done
ch7-69
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
S1 S2 S3 S4 S5
WRITE-0 READ-0 WRITE-1 READ-1 READ-1
if(a == N) if(a == N)
a=0;; aa=0;
0;
a = 0;
Notations of this extended state transition graph:
a: variable for address
N: number of cells
START END
ch7-70
35
Testing Procedure of BISTed Memory
Start
normal tester/
inputs BIST
set the test mode to BIST
MUX
more than one clock cycles
reset
set input signal reset to 0 to test
start the BIST operation BIST patterns Memory
Done
ch7-71
A Waveform Example
clock
reset
cmd R W R R W R R W R R W R R W R
data 0 1 1 0 1 1 0 1 1 0 1 1 0 1 1
address 0 0 0 1 1 1 2 2 2 3 3 3 4 4 4
test_done
pass_or_fail
ch7-72
36
Quality Measures of BIST
BIST-vs.-Tester Tester
Profile
pass fail
B (I) 漏網之魚
pass (III)
I
S 誤殺者
fail (II) (IV)
T
ch7-73
37
Chapter 8
Test Compression
Acknowledgements:
M i l based
Mainly b d on the
th lecture
l t notes
t off
Chapter 6, “VLSI Test Principles and Architectures”
ch8-1
ch8-2
1
Test Compression
Introduction
Test Stimulus Compression
Test Response Compaction
Industry Practices
Concluding Remarks
ch8-3
Introduction
ch8-4
2
Test Data Volume v.s
v.s.. Gate Count
Tes
70
st Data Volume (G
60
50
40
30
20 Test data volume
10 increases with circuit size
Gb)
0
1 2 4 8 16 32 64
ch8-5
ch8-6
3
Architecture for Test Compression
Compressed
Decompressor
Stimulus Core Compacted
Compactor
Stimulus Response
Response
Low-Cost
ATE
ch8-7
Code-based schemes
Dictionary code (fixed-to-fixed)
Huffman code (fixed-to-variable)
Run-length code (variable-to-fixed)
Golomb code (variable-to-variable)
Linear-decompression-based schemes
Broadcast-scan-based schemes
ch8-8
4
Dictionary Code
Dictionary code (fixed-to-fixed)
ch8-9
Huffman Code
Huffman code (fixed-to-variable)
5
Huffman Tree
(More Frequent Symbol, Shorter Code)
Huffman code (fixed-to-variable)
Bottom-up
construction
ch8-11
Run--Length Code
Run
Run-length code (variable-to-fixed)
ch8-12
6
Golomb Code
Golomb code (variable-to-variable)
ch8-13
ch8-14
7
Test Stimulus Compression
Code-based schemes
Linear-decompression-based schemes
Broadcast-scan-based schemes
ch8-15
Linear--Decompression-
Linear Decompression-Based Schemes
Seed of LFSR: (X1, X2, X3, X4)
Compressed
Test vector
To be applied
From ATE
ch8-16
8
Matrix Form
(Linear--Decompression-
(Linear Decompression-Based Schemes)
Decompressor Compressed Test Vector + Seed (?)
Matrix (?)
Original
Test
Vector
(Given)
ch8-17
ch8-18
9
Hardware for Linear-
Linear-Decompressor
MISR
ch8-19
XOR Network: a 3-
3-to-
to-5 Example
s1 s2 s3
o1 o2 o3 o4 o5
ch8-20
10
Test Stimulus Compression
Code-based schemes
Linear-decompression-based schemes
Broadcast-scan-based schemes
ch8-21
ch8-22
11
ATPG Supporting Broadcast-
Broadcast-Scan
Force ATPG tool to generate patterns for
broadcast scan ((by
y binding
g certain PI’s together)
g )
ch8-23
ch8-24
12
Broadcast--Scan Based Scheme
Broadcast
First configuration is: 1->{2,3,6}, 2->{7}, 3->{5,8}, 4->{1,4}
Second configuration
g is: 1->{1,6},
, , 2->{2,4},
, , 3->{3,5,7,8}
, , ,
ch8-25
O i i l Test
Original T t Pattern
P tt
13
Broadcast--Scan Based Scheme
Broadcast
ch8-27
ch8-28
14
Test Response Compaction
ch8-29
ch8-30
15
Zero--Aliasing Output Compaction
Zero
ch8-31
Faulty response
Fault-free 00 01
3-colorable
ch8-32
16
Architecture of X-
X-Compactor
X-compactor with 8 inputs and 5 outputs
ch8-33
X-compact Matrix
Out1 Out2 Out3 Out4 Out5
ch8-34
17
X-Blocking or Masking Techniques
ch8-35
X-Blocking by Selection
Illustration of the X-blocking scheme
ch8-36
18
X-Masking by Masking Logic
‘X’
‘1’
Final Output
To ATE
ch8-37
X-Tolerance by
Counter--Based Output Selection
Counter
X X
Dynamic path means counter operation can be changed at any scan cycle
ch8-38
19
X-Impact-
Impact-Aware ATPG
Concept
Simply use ATPG to algorithmically handle the
impact of residual X’s on the space compactor
Without adding any extra circuitry
ch8-39
ch8-40
20
Output--Compactor-
Output Compactor-Aware ATPG
f2/1
fault could be masked as propagated to p
Block aliasing by assigning a to ‘0’
ch8-41
Time Compaction
Time compaction
A time compactor uses sequential logic to
compact test responses
MISR is most widely adopted
n-stage MISR can be described by specifying a
characteristic polynomial of degree n
ch8-42
21
Multiple--Input Signature Register
Multiple
ch8-43
ch8-44
22
Industry Practices
OPMISR+
Embedded
E b dd d Deterministic
D t i i ti Test
T t
Virtual Scan and UltraScan
Adaptive Scan
ETCompression
ch8-45
ch8-46
23
General Scan Architecture for OPMISR+
ch8-47
EDT ((TestKompression
TestKompression)) Architecture
ch8-48
24
Concluding Remarks
Test compression is
An effective method for reducing test data volume
and test application time with relatively small cost
An effective test structure for embedded hard cores
Easy to implement and capable of producing high-
quality tests
Successful as part of standard design flow
ch8-49
25
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 9
Boundary Scan
Objectives
ch9-2
1
Board Testing Setup
ch9-3
TDI
TDO
ch9-4
2
History
• 1985
– Joint European Test Action Group (JETAG, Philips)
• 1986
– VHSIC Element-Test & Maintenance (ETM) bus standard (IBM et al.)
– VHSIC Test & Maintenance TM Bus Structure (IBM et al.)
• 1988
– Joint Test Action Group (JTAG) proposed Boundary Scan Standard
• 1990
– Boundary Scan approved as IEEE Std. 1149.1-1990
– Boundary Scan Description Language (BSDL) proposed by HP
• 1993
– 1149.1a –1993 approved to replace 1149.1-1990
• 1994
– 1149.1b BSDL approved
• 1995
– 1149.5 approved ch9-5
1149 4
1149.4 Mixed Signal Test Bus
Mixed-Signal Started Nov
Nov. 1991
3
Basic Chip Architecture of 1149.1
Boundary Boundary
Scan Cell Scan path
Sin Sout
ch9-7
Instruction Register
ch9-8
4
Hardware Components of 1149.1
ch9-9
Bus Protocol
Serially
y send instruction over
TDI into instruction register
ch9-10
5
A Typical Boundary Scan Cell
SOUT
IN 0
MUX OUT
1
0
MUX
1 1D Q 1D Q
QA QB Mode_Control
SIN ShiftDR
ClockDR UpdateDR
• Operation Modes
– Normal: Mode_control=0; INOUT
– Scan: ShiftDR=1, ClockDR; TDI…SINSOUT…TDO
捕 – Capture: ShiftDR=0, ClockDR; INQA, OUT driven by IN or QB
投 – Update: Mode_Control=1, UpdateDR; QBOUT
ch9-11
6
States of TAP Controller
ch9-13
Instruction Set
• EXTEST
– Test Interconnection between chips and board
• SAMPLE/PRELOAD
– Sample and shift out data or shift data only
• BYPASS
– Bypass data through a chip
• Optional
– Intest, RunBist, CLAMP, Idcode, usercode, High-Z,
etc.
ch9-14
7
EXTEST
Chip1 Chip2
2. Update-DR
Internal 0 0 Internal
(chip 1) Logic
Logic
3. Capture-DR
(chip 2) TDO TDI Registers
TDI Registers
g TDO
TAP Controller TAP Controller
Internal 0 Internal
4. Shift-DR Logic Logic
(chip 2)
TDI Registers TDO TDI Registers
TAP Controller
TAP Controller
ch9-15
EXTEST
Input
M M
Internal Output
1. Shift-DR QA QB
U
X
Logic U
X
QA QB
(Chip1) TDI
TDO
Input Output to
M M Chip2
2. Update-DR U
Internal
Logic U
QA QB X X
(Chip1) QA QB
TDI
TDO
Input from
Chip1
M M
Internal Output
3. Capture-DR QA
U
Logic U
QB X QA QB X
(C
(Chip2)
)
TDI
TDO
Input
4. Shift-DR M
Internal M Output
U
(Chip2) QA QB X
Logic
QA QB
U
X
TDI
TDO
ch9-16
8
SAMPLE/PRELOAD
Input
M Internal
SAMPLE U Logic M Output
U
X
QA X
QB
QA QB
TDI TDO
Input
Internal
M
PRELOAD U
Logic M
U
Output
X
QA X
QB QA QB
TDI TDO
ch9-17
BYPASS
Internal
Logic
Bypass
TDI Register TDO
(1 bit)
TAP Controller
ch9-18
9
INTEST
Internal Internal
0
Logic 0
Logic
1 Shift-DR
1.Shift-DR 2.Update-DR
2.Update DR
Internal 0 Internal 0
ch9-19
INTEST
Input
M M
Internal Output
U
1. Shift-DR QA QB X
Logic
QA QB
U
X
TDI
TDO
Input
M M Output
Internal
2. Update-DR QA QB
U
X
Logic
QA QB
U
X
TDI
TDO
Input
M M
Internal Output
U U
Logic
3 Capture
3. Capture-DR
DR QA QB X QA QB X
TDI
TDO
Input
M M Output
Internal
U
4. Shift-DR QA QB X
Logic
QA QB
U
X
TDI
TDO
ch9-20
10
A Printed Circuit Board With 1149.1
(Ring configuration, test controller on board)
Chip1 Chip2
Internal Internal
Logic Logic
M M
Registers U
X
Registers U
X
TAP Controller
M
U
X
Registers
TDI
MASTER TDO
Internal
Controller TMS
Logic
TCK
Chip3
ch9-21
TDI TDI
TCK TCK
#1 TMS #1
TMS
Bus TDO Bus TDO
master master
TDI
TDI
TCK
#N TCK
TMS #N
TMS
TDO
TDO
11
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 10
High-Speed Interconnect Testing
Outline
Introduction
Problem,
Problem Objective,
Objective Review
Review, and Motivation
Pulse-Vanishing Test (PV-Test)
VOT-Based Oscillation Test
1
Testing Interconnects in 3D IC
Problem Addressed:
To develop a low-cost method to test the delay fault
associated
i t d with
ith th
the TSV (Through
(Th h Silicon
Sili Via)
Vi )
TSV
TSV DIE2
DIE1
TSV
TSV
Delay fault
2
Testing Interconnects in 2.5-D IC
interposer
TSV TSV
Parametric Faults in
High-Speed Die-to-Die Interposer Wires
Inter
2
-poser 1
3
Objective and Challenge
wrapper
wrapper
×
Pitching Catching
die die
TCK1 TCK2
TCK1
TCK2
Outline
Introduction
Pulse-Vanishing Test (PV-Test)
- At-speed testing for high-speed interconnects
VOT-Based Oscillation Test
4
Electrical Model of an Interposer Wire
Driver Receiver
rmb r r r r r r r r r r rmb
A
c c c c c c c c c c WO
Rwire = N · r
Driver
rmb r r r r r r r r r r rmb
A B
c c c c c c c c c c WO
10
5
Resistive Bridging Fault Model
11
Driver Receiver
A fault-free interposer wire WO B
Threshold
Threshold
12
6
Primitive DfT Circuit
(for Pulse-Vanishing Test)
LAUNCH CAPTURE
CELL TM CELL
functional Driver Interposer Wire (IW) Receiver
input
p 0 A under test WO B
D Q 1
FF
‘1’ D Q ‘1’
R
1ns FF
SE
Threshold (‘0’ initially)
(‘0’ initially)
13
1.9
1.7
1.5
(ns)
1.3
1.1
0.9
Van
0.7 fault-free
0.5
0.5 0.7 0.9 1.1 1.3 1.5 1.7 1.9 2.1
Comment: A larger test pulse width implies larger delay test threshold
14
7
Boundary-Scan Compatible Launch Cell
SO TM
In
(from core) 0 Out
0 Q1 1 (to IW)
Q 1 Q
D D
Q2
SI 1
FF
0
FF
1
Shift_DR PVT_fire
0
Clock_DR TP
PVT_fire
Update_DR1
Note: Q2 needs to be initialized to ‘0’ before a test session
15
SO TM
In
(from IW) 0
PVT_fire Out
0 ‘1’ 1 Q1 Q 1 (to core)
D Q D
0 Q2
SI 1
FF
‘0’’1’
FF
In 1
Shif DR
Shift_DR 0
PVT_fire Update_D
Clock_DR R2
Note: Q1 needs to be initialized to ‘0’ before a test session
The final test result is stored at Q1
16
8
Built-In Self-Test Architecture
PV Test Wrapper
P
PV Test Wrappeer
Die 1 Die 2
(Master) (Slave)
Test
Scheduler
TDO TDI
PV-test
{TCK, Controller
Start_BIST} pass/fail {TCK, TRST, TMS}
Tester
17
PV-Test Procedure
(Scan-In, Init, Pulse, Scan-Out)
Time
Scan Scan Scan Scan Init Pulse Scan Scan Scan Scan
18
9
Simulation Waveforms of a PV-Test
TCLK
States Scan-In
Scan In Init Pulse Scan-Out
Scan Out
PVT_fire
Out_IW1
Inadequate pulse at
Out_IW2 2nd capture cell
Out IW3
Out_IW3
Failing bit
Out_IW4
Pass/Fail
Test Time
20
10
Area Overhead
Estimation is based on a 90nm CMOS process
Area overhead
yp
Type Cell Name y
Layout Area ( )
(m*m)
INVERTER 2.82
Basic 2-input NAND Cell 2.94
Cells MUX Cell 8.47
FF Cell 17.64
Boundary Scan Cell 52.22
B i
Basic Launch Cell 92 56
92.56
Macros Capture Cell 69.16
PV-test controller 670.3
Overhead 55.55% for 1024 interposer wires
Percentage
Over 1149.1 54.9% for 32,768 interposer wires
21
Summary of PV-Test
22
11
Outline
Introduction
Pulse-Vanishing Test (PV-Test)
VOT-Based Oscillation Test
- Characterization-based parametric fault testing
23
Concept 1:
It’s a matter of transition time measurement!
TSV1
Observation point
Normal TSV
Shorter
Sh t rise
i time
ti
Resistive TSV
Longer rise time
To be measured…
24
12
Concept 2: Use Schmitt-Trigger Inverter
- Hysteresis proportional to the input Transition time
Smaller hysteresis
Schematic
VDD
Larger hysteresis
Vout (v)
1.8
Vin Vout
VDD
Vin(v)
1.8
Z1 OR_enable2
TSV1
Die1 Die2
TSV2
OR_enable1 Z2
26
13
Brief Summary of our Idea
27
(a) overall schematic (b) normal inverter (Z=0) (c) ST inverter (Z=1)
VDD VDD VDD
Z
28
14
Three Oscillation Periods in VOT-Analysis
endpoint
d i t off TSV2 TST2 = 6.49
6 49 ns
15
Ex: Correlation between TSV Delay and T
Fault Population: Resistive Open Faults
An outlier in measurable T is an outlier in TSV delay
T = TST TREF
T
Fault
F lt
Free
31
32
16
Ring Oscillator (RO)
(for One Pair of Interposer Wires)
33
17
AO-strategy (All-Oscillation)
(to detect an open fault)
Test_Mode ‘1’ ‘Z1’
Interposer
slow IW
Die 1 Active RO Die 2
35
OO-strategy (One-Oscillation)
(to detect an inter-RO bridging fault)
An inter-RO bridging fault will slow down the speed over a victim IW.
‘1’ ‘Z1’
Interposer
Active RO
victim IW
‘0’ aggressor IW
Grounded RO
‘0’
‘Osc_en’ = ‘0’ ‘Z2’ ‘Tri_en’ = ‘1’ 36
18
NO-strategy (No-Oscillation)
(to detect an intro-RO bridging faults)
Half-Floating RO
‘Osc_en’ = ‘1’ ‘Z2’ ‘Tri_en’ = ‘0’ Test_Mode
37
1V 1V
Weaker Inttra-Bridging Fau
1 kΩ
0V 0V
Intrra Bridge Fault
1V 1V
100 kΩ
Resistance
0V 0.5v 0V
1V 1V
500 kΩ Fault is Detected!
0V 0V
1V 0.4v 1V
1 MΩ Fault is not Undetected!
0V 0V
100ns 200ns 100ns 200ns
End point Observation point
38
19
Example for an Inter-Bridging Fault
39
40
30
No. of occu
20
10
0
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95
Normalized Tdriff (%)
50
OO‐strategy
ences
20
Fault Type Classification
41
21
Testing and Characterization Flow
* IW : Interposer Wire 43
Fault Detection
(Finding Outliers in Normalized Tdrift)
50
urrences
20
10
0
0 0.05 0.1 0.15 0.2 0.25
Tdrift (ns)
50
No. of occurreences
22
Fault Detection Capability
(For Resistive Open Faults)
MDRopen
Di
Driver R
Receiver
i
rmb r r r r r r r r r rmb
A Y WO
c c c c c c c c c c
Cdownstream
45
MDRopen
Pseudo Detectable
(Min. Detectable Open
Chip Conditions Extra‐RC
Fault Resistance)
#1 (FF & ‐10% RC) 245 50.7 ps
#2 (FF) 76 17.5 ps
#3 (SS) 113 26.0 ps
#4 (SS
( & +10%
% RC)) 78 19.7 ps
Average 145 31.4 ps
46
23
Process Drift from Simulation Model
50
FF-corner
45
40 SS-corner
# of occurrences
35 FF-corner &
- 10% {RIW & CIW} SS-corner &
Simulation Model
30
+ 10% {RIW & CIW}
25
20
15
10
5
0
-40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30 35 40
Normalized T drift (%)
47
0.3
0
0 0.1 0.2 0.3 0.4
T (ns)
48
24
Summary of VOT-Based Oscillation Test
49
Conclusion
50
25
國立清華大學電機系
EE-6250
超大型積體電路測試
VLSI Testing
Chapter 11
Logic Diagnosis
Outline
Introduction
Combinational Logic Diagnosis
Scan Chain Diagnosis
Logic BIST Diagnosis
Conclusion
Ch11-2
1
What would you do when chips fail?
Is it due to design bugs?
If most chip fails with the same syndrome when
running an application
I it
Is i due
d to parametric
i yield
i ld loss?
l ?
Timing-related failure?
– Insufficient silicon speed?
Noise-induced failure?
– supply noise, cross-talk, leakage, etc.?
Lack of manufacturability?
– inappropriate layout?
Is it due to random defects?
Via misalignment, Via/Contact void, Mouse bite,
Unintentional short/open wires, etc.
Ch11-3
faulty response
Ch11-4
2
Diagnosis For Yield Improvement
Golden
Reference
Model Physical Failure Analysis
Scanning Electronic Microscope (SEM)
Focused Ion Beam (FOB)
Via void
Mouse bite, etc.
Logic Diagnosis
Defect Mechanisms
Ch11-5
Ch11-6
3
Challenge
Ch11-7
Supporting Circuitry
Supporting Circuitry:
Makes Logic’s inputs controllable and outputs observable
ff
MUX
Test input
Logic
op_mode
memory
ff ff
Logic shift
register Scan out
Logic Logic
Ch11-8
4
Design For Diagnosis
Complexity Original
Of Design
Di
Diagnosis
i
interface circuitry
Separated
Logic &
Memory
Scan-chain
Logic Design
With Full-Scan
Ch11-9
Ch11-10
5
Examples of Faults
Node Fault Short Fault (Bridging)
VDD
A
bridging
GND
Ch11-11
‘1’ ‘1’
G2
~ 2.5 v
pseudo ‘1’
G1
open fault pseudo ‘0’
‘0’
‘1’ G3
Ch11-12
6
A Byzantine Node Type
VDD Truth Table
C driver to ‘1’ A B C Z Zf
0 0 0 1 1
B 0 0 1 0 0
Z 0 1 0 1 1
0 1 1 0 0
A faulty 1 0 0 1 ~0
bridging C min-term
1 0 1 0 0
B
1 1 0 0 0
The faulty output 1 1 1 0 0
driver to ‘0’ could be ambiguous
GND
Ch11-13
Fault Classification
Fault in Logic IC
affects affects
functionality timing
Node Fault
Gate-Delay Path-Delay
Open Fault
Fault Fault
Short Fault
Byzantine Fault
Ch11-14
7
Outline
Introduction
Combinational Logic Diagnosis
Cause-Effect Analysis
Effect-Cause Analysis
Chip-Level Strategy
Diagnostic Test Pattern Generation
Scan Chain Diagnosis
Logic BIST Diagnosis
Conclusion
Ch11-15
Terminology
Device Under Diagnosis (DUD): The Failing Chip
Circuit Under Diagnosis (CUD): The Circuit Model
Failing
g Input
p Vector: Causes Mismatches
Failing chip
input
vector x mismatched PO
v o matched
t h d PO
o matched PO
o matched PO
x mismatched PO
Gate-level CUD
Ch11-16
8
Cause--Effect Analysis
Cause
Ch11-17
output=0 output=1
(a) Circuit under diagnosis v1
Ch11-18
9
Fault Dictionary Reduction – P&R
(a) Full-response table
Output Response (z1, z2)
Fault t1 t2 t3 t4
(c) P&R compression dictionary
f1 10 10 11 10
f2 00 00 11 00 Pass-fail + Extra outputs
f3 00 00 00 00 Fault
ID t1 t2 t3 t4
f4 01 00 00 01
f5 01 00 01 01 f1 1 1 1 0 1 1
f6 01 00 01 01 f2 1 0 0 0 1 1
f7 10 00 10 00 f3 1 0 0 1 0 1
f8 11 11 11 11 f4 1 0 0 1 0 0
Pass (0) or Fail (1) f5 1 0 0 1 1 0
Fault
t1 t2 t3 t4 f6 1 0 0 1 1 0
f1 1 1 0 1 f7 1 1 0 1 0 1
f2 1 0 0 1 f8 0 1 1 0 1 1
f3 1 0 1 1
f4 1 0 1 0
f5 1 0 1 0
f6 1 0 1 0 Response of z1 Response of z2
f7 1 0 1 1
f8 0 1 0 1
(b) Pass-fail dictionary
Ch11-19
10
Outline
Introduction
Combinational Logic Diagnosis
Cause-Effect Analysis
Effect-Cause Analysis
Chip-Level Strategy
Diagnostic Test Pattern Generation
Scan Chain Diagnosis
Logic BIST Diagnosis
Conclusion
Ch11-21
failing chip
0 failing PO
0
0
0
0 failing PO
input
vector 1 mismatched PO
v 0
0
0
CUD 1 mismatched PO
Ch11-22
11
Structural Pruning – Intersection or Union?
z2 z2
primary
inputs z3 z3
z1 z1
z2 z2
primary
inputs z3 z3
Backtrace Algorithm
Trace back from each mismatched PO
To find out suspicious faulty locations
Functional Pruning
During the traceback, some signals can be
disqualified from the fault candidate set based
on their signal values.
Rules
(1) At a controlling case (i.e., 0 for a NAND
gate): Its fanin signals with non-controlling
values (i.e., 1) are excluded from the candidate
set.
(2) At a non-controlling case (i.e., 1 for a NAND
gate): Every fanin signal remains in the
candidate set.
Ch11-24
12
Backtrace Example
0 Target
b 1 mismatched
1 output
e
0 1
0
c
1
1 f
a
1
d 1
0
Ch11-25
Terminology – Injection
An injection at a signal f flips its current value
which could create value-change events downstream.
x f = ‘0’ x
f = ‘1’ o o
o o
v x v xo?
x x
O: correct output A mismatched output
X: failing output could be fixed by the injection!
Ch11-26
13
Terminology – Curable Output
Diagnosis Criterion
A signal is more suspicious if it has more curable outputs
x f = ‘0’ x
f = ‘1’ o o
o o
v x v o cured
x o cured
Ch11-27
x f = ‘0’ o cured
f = ‘1’ o o
o o
v v o
x cured
x o cured
Ch11-28
14
Example of Curable Vector
x1 = 0
x2 = 1 0 failing
x3 = 1 1
x4 = 1
(a) Failing Chip
x1 0
1
1 0 cured
f
x2 1 0 1
0
1
1
1
x3 1
0
x4 1
Ch11-30
15
Inject--and
Inject and--Evaluate Paradigm
design failing chip
input vectors
model response
Ch11-31
Detailed Computation –
Inject--and
Inject and--Evaluate Paradigm
CUD failing failing chip
netlist test vectors syndromes
Ch11-32
16
Reward--and
Reward and--Penalty Heuristic
Rank1: curable vector count
Rank2 = (curable output count – 0.5 * new mismatched output count)
x1 =0
x2 =1 0 failing
x3 =1 1 passing
x4 =0
(a) Failing Chip.
x1 0
1
1 0
cured
f
x2 1 0
0 1
1
new
10
1 mismatch
x3 1
1
x4 0
(b) Circuit Under Diagnosis.
Ch11-33
A w1
B
bridging
C
D w2
Ch11-34
17
SLAT Paradigm
Ref: SLAT (Single Location At a Time) paradigm [Bartenstein 2001]
Note: A SLAT vector is a curable vector
Ch11-35
Ch11-36
18
Outline
Introduction
Combinational Logic Diagnosis
Cause-Effect Analysis
Effect-Cause Analysis
Chip-Level Strategy
Diagnostic Test Pattern Generation
Scan Chain Diagnosis
g
Logic BIST Diagnosis
Conclusion
Ch11-37
z3 mismatched output
f lt f3
fault
19
Dependency Graph
Direct divide-and-Conquer
does not work well !
fault z1
f1
z2 dependency graph
z1
fault
f2 z3
z2 z3
Ch11-39
Main Strategy:
Strategy:
Detach--Divide
Detach Divide--and
and--then
then--Conquer
Phase 1: Isolate Independent Faults
Search for prime candidates
Use word-level information
Phase 2: Locate Dependent Faults As Well
Perform partitioning
Aim
Ai att fifinding
di one ffaultlt iin each
h bl
block
k
Ch11-40
20
Prime Candidates
f1 syndrome
f3 set 1
f1 & f2
are p
prime !
f2 syndrome
set 2
Ch11-41
f1 f3
Example: Dependent Double Faults f1 & f2
May create fake prime candidates {f1, f2, f3}. f4
f2
f5
Ch11-42
21
Word--Level Registers and Outputs
Word
Signals in a design are often defined in words.
This property can be used to differentiate fake prime candidates from the real ones.
Word-Level Output: O1
Word-Level Registers: R1, R2, State
module design( O1, ...)
output[31:0] O1;
reg[31:0] R1, R2;
reg[5:0] State
...
endmodule
Ch11-43
f1
f3 Z f1 f3 Z
f4
f2 f2
f5
R R
Ch11-44
22
Efficiency of Using Word-
Word-Level Info.
Without word-level Information
2.4 real faults out of 72.3 candidates
With word-level Information
1.23 real faults out of 3.65 candidates
After Filtering
# of candidates Original
Filtering Ratio
Prime
Candidates
2 375
2.375 1 23
1.23 48 2 %
48.2
Fake Prime
Candidates
69.96 2.42 96.5 %
Ch11-45
Overall Flow
failing design failing chip
input vectors model response
Phase 1:
(1) Find Word-Level Prime Candidates
Phase 2:
(1) Remove explained outputs and their fanin cones
(2) Partition the rest model into blocks
(3) P
Perform
f di
diagnosisi ffor each
h bl
block
k
Ch11-46
23
Grouping Using Dependency Graph
An example with five faults
One of them is identified as the prime candidate
X a b
a
X b
X c c
X c
d
prime
X e
e
candidates z y
X y
X z
X f i f
X g j
X h
g
X i k h
X j
X k
Ch11-47
X a X a
X b X b
X c X c
X d X d
X e X e
prime
candidates syndromes
X y at y and z
X z are fully
explained
X f X f
X g X g
X h X h
X i X i
X j X j
X k X k
Ch11-48
24
Grouping Example
X a b
a
X b
X c c
X d d
X e e
i f
X f j
X g
X h g
k h
X i
X j
X k Two independent diagnosis blocks
Are successfully derived!
Ch11-49
Summary
Strategy
(1) Search For Word-Level Prime Candidates
(2) Identify Independent Faults First
(3) Locate Dependent Faults As Well
Effectiveness
identify 2.98 faults in 5 signal inspections
find 3.8 faults in 10 signal inspections
Ch11-50
25
Diagnostic Test Pattern Generation
a1 DTPG helps to increase diagnostic resolution
e
a
b d d1 g
Model for differentiating vector generation
c d2
d1 stuck-at 1
a2 f
a e
⊕
fault-free circuit b d g
c d2 x
a2 f z/0
d2 stuck-at 0 ⊕
e
d d1 g
a2 f
Ch11-51
Outline
Introduction
Combinational Logic Diagnosis
Scan Chain Diagnosis
Preliminaries
Hardware-Assisted Method
Signal-Profiling Based Method
Logic BIST Diagnosis
Conclusion
Ch11-52
26
Scan Test and Diagnosis
Ch11-53
Setup-Time Hold-Time
Stuck-at
Violation Fault Violation Fault
Bridging
Slow-To-Rise Slow-To-Fall
Fault Fault
Ch11-54
27
A Stuck-
Stuck-At Fault In the Chain
Effect: A killer of the scan-test sequence
Combinational Logic
input output
pins pins
scan-input scan-output
(SI) (SO)
MU
MU
M
MUX
11010100 D Q D Q D Q 00000000
UX
UX
s-a-0 ?
All-0 syndrome
scan-enable
clock
Ch11-55
bridging
Scan Scan
MU
MU
input output
MU
MU
D Q
X
(SI) F1 F2 F3 F4 (SO)
clock
If(==1) faulty = faulty
else faulty = F2
F2
28
Potential Hold-
Hold-Time Fault?
(Negative Edge-Triggered Flip-Flop)
Y
D Q
Master Slave
normal
CLK = low
Y
D Q
shut down
Master Slave too slowly
Y
D Q
faulty
CLK = high Master Slave
CLK = low
Ch11-57
SI SO
(scan input pin) (scan output pin)
A faulty flip-flop
Fault Type Scan-In Pattern Observed Syndrome
Stuck-at-0 1100110011001100 0000000000000000
Stuck-at-1 1100110011001100 1111111111111111
Slow-to-Rise 1100110011001100 1000100010001000
Sl
Slow-to-Fall
t F ll 1100110011001100 1101110111011100
Ch11-58
29
Augmentation of a Flip
Flip--Flop for Easy
Diagnosis
(From logic)
MUX D Q
(from scan chain) DFF
SC
(a) A normal scan flip-flop.
(From logic)
MUX D Q
((from scan chain))
DFF
Invert SC
A scan chain
SI SO
Stuck-at-0
SI-to-fault Fault-to-SO
Ch11-60
30
Scan Chain Diagnosis Flow
Circuit Diagnostic
Diagnostic
Under Test Sequence
Test Sequences
q
Di
Diagnosis
i G
Generator
t
Test Application
Fault-Free
Observed Images
Signal Profiling
Di
Diagnosis
i Based Observed
Obser ed Images
Diagnosis Program Of Failing Chip
Faulty FF’s
location
Mission Logic
input output
pins pins
Scan Scan
MUX
MUX
MUX
MUX
D
input
p 0
Q
1 x 0 1
output
p
X
s-a-0
(SI) F1 F2 F3 F4 (SO)
clock
31
Definition: Observed Image
Def: An observed image is the scanned-out version of
a snapshot image.
Mi i Logic
Mission L i
input output
pins pins
Scan Scan
MUX
MUX
MUX
MUX
input D
0
Q
1 x 0 1 output
s-a-0
(SI))
(S F1 F2 F3 F4 (SO)
clock
Ch11-63
Modified Inject-
Inject-and
and--Evaluate Paradigm
Step 2: Capture the response to FF’s
core
1 0 x 0 0
logic
1011 x
x x x x
core
llogic
i
A stuck-at-0 fault is assumed 0010
at the output of the 2nd FF from SI 0 1 x 1 0
Ch11-64
32
Test Application: Run-
Run-and
and--Scan
Step 1: Apply a test sequence from PI’s
Setting up a snapshot image at FF’s
Test core
logic
Sequence
S-A-0 core
x logic
0 1 1 0
Less distorted image S-A-0
x 0010
0 1 1 0
SO
up-stream part
will be distorted
Step 2: Scan-out an observed image
Ch11-65
Signal Profiling
A profile is the distribution of certain statistics of the flip-flops.
Failing chip
core faulty flip-flop
logic Scan
x Shifting
0.41 0.51 0.61 0.41 0 0 0.65 0.35
Test
perturbed image
Sequences
Up-stream Down-stream
core
different similar
logic
Ch11-66
33
Profile Analysis
A difference image
Derive the difference profile = fault-free image ⊕ failing image
Ch11-67
Profiling difference
Difference Profile
equency
0.8
0.6
SP(%)
0.4
Signal-1 Fre
0.2
0
1 12 23 34 45 56 67 78 89 100 111 122 133 144 155
DFF Index
0.8
Filtered
Smooth
Difference
Profile Profile Ranking (orProfile
Ranking suspicion) Profile
0.6
0.4
0.2
0
1
13
25
37
49
61
73
85
97
109
121
133
145
157
-0.2
-0.4
-0.6
-0.8
34
Computation of Average-
Average-Sum Filtering
Ch11-69
Ch11-70
35
Summary of Scan Chain Diagnosis
Hardware Assisted
Extra logic on the scan chain
Good for stuck-at fault
Fa lt Simulation
Fault Sim lation Based
To find a faulty circuit matching the syndromes [Kundu 1993]
[Cheney 2000] [Stanley 2000]
Tightening heuristic upper & lower bound [Guo 2001][Y.
Huang 2005]
Use single-excitation pattern for better resolution [Li 2005]
Profiling-Based Method
Locate the fault directly from the difference profiles obtained
b run-and-scan
by d t t
test
Applicable to bridging faults
Use signal processing techniques such as filtering and edge
detection
Ch11-71
Outline
Introduction
Combinational Logic Diagnosis
Scan Chain Diagnosis
Logic BIST Diagnosis
Overview
Interval-Based Method
Masking-Based Method
Conclusion
Ch11-72
36
A Logic BIST Architecture
PRPG (Pseudo-Random Pattern Generator)
Core
Logic
Ch11-73
Ch11-74
37
Binary Search To Locate 1st Failing Vector
Time (or test vector index)
S
Space 3rd
(or scan cell 2nd BIST session length:
index) 147423
First failing at vector #4
1st BIST session
Ch11-75
Interval Unloading-
Unloading-Based Diagnosis
Time (or test vector index)
Space
(or scan cell
index)
failing failing
interval interval
Interval index 1 2 3 4 5 6 7
Ch11-76
38
Deterministic Masking-
Masking-Based Diagnosis
PRPG (Pseudo-Random Pattern Generator) Scan chain index (X)
1 2 3 4 5 6 7 8
Ch11-77
Core
Logic
0
0
1
1
0 ≧ ≦
0
0
0 0 1 0 1 1 0
X Y Z
Counter
MISR (Multiple-Input Signal Analyzer)
Ch11-78
39
A Search for Scan Cells Capturing Errors
PRPG (Pseudo-Random Pattern Generator)
Scan cells
Core Capturing errors
Logic
Conclusions
Logic diagnosis for combinational logic
Has been mature
Good for not just stuck-at faults, but also bridging faults
Scan chain diagnosis
Making good progress …
Fault-simulation-based, or signal-profiling based
Diagnosis of scan-based logic BIST
Hardware support is often required
Interval-unloading, or masking-based
Future challenges
Performance (speed) debug
Diagnosis for logic with on-chip test compression and
decompression
Diagnosis for parametric yield loss due to nanometer effects
Ch11-80
40