ATPG and Fault Simulation: Alberto Bosio
ATPG and Fault Simulation: Alberto Bosio
ATPG and Fault Simulation: Alberto Bosio
Alberto Bosio
bosio@lirmm.fr
1
What is a test?
Fault activation
Combinational circuit Fault effect
X
1
0
Primary 1/0 1/0
0 Primary outputs
inputs 1 (PO)
(PI) 0
1
X
Path sensitization
Stuck-at-0 fault
2
What is a test?
Fault activation
Combinational circuit Fault effect
X
1
0
Primary 1/0 1/0
0 Primary outputs
inputs 1 (PO)
(PI) 0
1
X Test Response
Test Vector Path sensitization
Stuck-at-0 fault
3
Example
n Generate a test for e stuck-at-1
Sa1
a
b e
c
g
d f
4
Example
n 1) Activate the fault
a 0
b e
c
g
d f
5
Example
n 1) Activate the fault
a 0/1
b e
c
g
d f
6
Example
n 1) Activate the fault
Fault Effect
a 0/1
b e
c
g
d f
7
Example
n 1) Propagate the fault effect
a 0/1
0/1
b e
c
g
d f
8
Example
n 1) Propagate the fault effect
a 0/1
0/1
b e
c
g
d f
9
Example
n 1) Propagate the fault effect
a 0/1
0/1
b e 0/1
c
g
0
d f
10
Example
n 1) Propagate the fault effect
a 0/1
0/1
b e 0/1
c
g
0
d f
11
Example
n Justification
a 0/1
0/1
b e 0/1
c
g
0
0
d f
12
Example
n Justification
a 0/1
1 0/1
b e 0/1
c
g
1 0
0
d f
13
Example
n Justification
0
a 0/1
1 0/1
b e 0/1
c
g
1 0
0
d f
14
Some Considerations
n Test is easy
n But….
15
Some problems (the
complexity)
Sa1
a
b e
c
g
d f
17
Some problems (the circuit)
n c stuck-at-1 is an untestable fault
1
a 0/1
0/1
0 0/1
b
c
e 1
g
0 1
1
d f
18
Goals
n You must use the appropriate tool
n Automatic Test Pattern Generator (ATPG)
19
ATPG Architecture
Reduced
Circuit
Fault Manager Fault List
description
TPG
Fault Simulator
Algorithm
Fault Test
Coverage Pattern
20
ATPG Architecture
Reduced
Circuit
Fault Manager Fault List
description
Fault Coverage (FC) = # Detected Faults/#Total Faults
TPG
Fault Simulator
Algorithm
Fault Test
Coverage Pattern
21
The test plan
n Step 1:
n Identify the set of target faults (complete
fault list).
22
The test plan
n Step 1:
n Tools – Fault list generator
n (One of the components of the Fault Manager).
23
The test plan (cont’d)
n Step 1:
n Identify the set of target faults (complete
fault list).
n Step 2:
n Identify the minimum set of distinct target
faults (fault collapsing)
24
The test plan
n Step 2:
n Tools – Fault collapser (One of the
components of the Fault Manager).
25
Fault Manager
Reduced
Fault Collapser
Fault List
26
Fault Manager
Circuit Reduced
description Fault Manager
Fault List
Test Pattern
Generator
Test Fault
Pattern Coverage 27
The test plan (cont’d)
n Step 2:
n Identify the minimum set of distinct target
faults (fault collapsing)
n Step 3:
n Generate, at no charge, an initial set of
patterns (manually, from design validation,
randomly, ...)
28
The test plan (cont’d)
n Step 3:
n Generate, at no charge, an initial set of
patterns (manually, from design validation,
randomly, ...)
n Step 4:
n Update the list of detected faults (fault
simulation)
29
Step 4
n Tools
n Fault Simulators: identify the set of faults
covered by each test pattern.
30
Fault Simulator
Circuit Reduced
description Fault List
Detected
Fault Test Faults
Coverage Pattern
31
The test plan (cont’d)
n Step 4:
n Update the list of detected faults (fault
simulation)
n Step 5:
n Generate a set of patterns to cover the
uncovered faults (TPG)
32
Step 5
n Tools
n ATPG: Automatic Test Pattern Generator
33
TPG
Circuit Reduced
description Fault List
TPG
Fault Simulator Fault Selector
Algorithm
Detected
Faults 34
n They cycle through three sub-phases:
n target fault selection
n Pattern generation
n Covered fault list updating.
35
The test plan (cont’d)
n Step 5:
n Generate a set of patterns to cover the
uncovered faults (TPG)
n Step 6 (optional):
n Testability analysis
n Step 7 (optional):
n Compact test pattern set.
36
Step 6
n Goal
n Estimate the effort needed to test the UUT:
n Pattern length
n Fault coverage
n CPU time
n ...
n Identify hard-to-test areas
n Tools
n Testability Analyzer
n Experience.
37
The test plan (cont’d)
n Step 5:
n Generate a set of patterns to cover the
uncovered faults (TPG)
n Step 6 (optional):
n Testability analysis
n Step 7 (optional):
n Compact test pattern set.
38
Testability Analyzer
n High trade-off between result accuracy
and CPU time.
39
Fault Simulation*
n Problem and motivation
n Fault simulation algorithms
n Serial
n Parallel
n Deductive
*The lecture has been taken from Prof. Agrawal VLSI test course
(http://www.eng.auburn.edu/~agrawvd/COURSE/E7250_06/
course.html) 40
Problem and Motivation
n Given
n A circuit
n A sequence of test vectors
n A fault model
n Determine
n Fault coverage - fraction (or percentage) of
modeled faults detected by test vectors
n Set of undetected faults
41
Problem and Motivation
n Motivation
n Determine test quality and in turn product
quality
n Find undetected fault targets to improve
tests
42
Fault Simulation Scenario
n Circuit model: mixed-level
n Mostly logic with some switch-level for high-impedance (Z) and
bidirectional signals
n High-level models (memory, etc.) with pin faults
n Signal states: logic
n Two (0, 1) or three (0, 1, X) states for purely Boolean logic
circuits
n Four states (0, 1, X, Z) for sequential MOS circuits
n Timing:
n Zero-delay for combinational and synchronous circuits
n Mostly unit-delay for circuits with feedback
43
Fault Simulation Scenario
(Continued)
n Faults:
n Mostly single stuck-at faults
n Sometimes stuck-open, transition, and path-delay
faults; analog circuit fault simulators are not yet in
common use
n Equivalence fault collapsing of single stuck-at faults
n Fault-dropping -- a fault once detected is dropped
from consideration as more vectors are simulated;
fault-dropping may be suppressed for diagnosis
n Fault sampling -- a random sample of faults is
simulated when the circuit is large
44
Fault Simulation Algorithms
n Serial
n Parallel
n Deductive
n ....
45
Serial Algorithm
n Algorithm: Simulate fault-free circuit and save responses.
Repeat following steps for each fault in the fault list:
n Modify netlist by injecting one fault
less memory
n Most faults, including analog faults, can be simulated
46
Serial Algorithm
n Disadvantage: Much repeated computation;
CPU time prohibitive for VLSI circuits
n Alternative: Simulate many faults together
47
Serial Algorithm
48
Serial algorithm
n + very simple
n - not efficient
n Intel I7 is about ~10M gates
n 20M faults, 1 simulation = 1s
n 20Ms ~= 231 days
49
Parallel Fault Simulation
n Compiled-code method; best with two-states (0,1)
n Exploits inherent bit-parallelism of logic operations on
computer words
n Storage: one word per line for two-state simulation
n Multi-pass simulation: Each pass simulates w-1 new
faults, where w is the machine word length
n Speed up over serial method ~ w-1
n Not suitable for circuits with timing-critical and non-
Boolean logic
50
Parallel Fault Simulation
51
Parallel algorithm
n + still very simple
n + more efficient than serial
n Intel I7 is about ~10M gates
n 20M faults, 1 simulation = 1s
n 20Ms ~= 231 days
n Using a 64bits machine
n 231/63 ~= 4 days
52
Deductive Fault Simulation
n One-pass simulation
n Each line k contains a list Lk of faults detectable on it
n Following true-value simulation of each vector, fault lists
of all gate output lines are updated using set-theoretic
rules, signal values, and gate input fault lists
n PO fault lists provide detection data
n Limitations:
n Set-theoretic rules difficult to derive for non-Boolean
gates
n Gate delays are difficult to use
53
Deductive Fault Simulation
54
Deductive algorithm
n - complex
n ++ more efficient than parallel
n Intel I7 is about ~10M gates
n 20M faults, 1 simulation = 1s
n 20Ms ~= 1s
n - it requires a lot of memory
55
Exercice
which faults are detected by the input “01110”?
56
In practice
n Use of Synopsys© Tetramax
Technology_library.v Test_vectors.stil
Fault List
Circuit.v
TMAX
FaultCoverage 57
Invoking TetraMax
n source /soft/Synopsys/source_config/.config_tetramax_standalone_vI-2013.12
n tmax
You can
enter
commands
58
Step1
n Read and Compile the circuit description
59
Step 2
n Generate the fault list
60
Step 3
n Specify the test vectors to be simulated
n We have to use the stil syntax
n Look in the example
Pattern "_pattern_" {!
W "_default_WFT_";!
"precondition all Signals": C
{ "_pi"=0000; "_po"=XX; }!
!
"pattern 0": Call "capture" { !
"_pi"=1010; "_po”=LL; }!
}! 61
Step 3
n Import the test vector file
set_patterns -external example_exo1.stil!
n Now we can run a simulation
run_simulation!
You will got errors:
n
TEST-T> run_simulation !
Begin good simulation of 1 external
patterns.!
0 S2 (exp=0, got=1)!
Simulation completed: #patterns=1,
#fail_pats=1(0), #failing_meas=1(0),
CPU time=0.00! 62
Step 3
n Tmax has to calculate the gold outputs
before running the fault simulation
run_simulation -override_differences!
n Now you can run the fault simulation
run_fault_sim!
63