dynamic test set selection using implication-based on-chip diagnosis nicholas imbriglia, nuno alves,...
TRANSCRIPT
DYNAMIC TEST SET SELECTION USING IMPLICATION-BASEDON-CHIP DIAGNOSIS
Nicholas Imbriglia, Nuno Alves, Elif Alpaslan, Jennifer Dworak
Brown University
NATW 2010
Motivation
As electronic devices become smaller, they become more and more susceptible to wearout and latent defects:
Time Dependent Dielectric Breakdown (TDDB)
Negative Bias Temperature Instability (NBTI)
Electromigration
Motivation
This susceptibility is application and workload dependent
Large ramifications for the online testing of homogeneous, multi-core architectures
If a core fails, similar cores should be tested
Our Solution
Efficient online error detection Detect during normal circuit operation
Efficient online testing of homogeneous cores Test sets short in length Focus on a small area of the circuit Multiple detects in this area
Our Solution
We wish to use the diagnostic information inherent to logic implications to target specific sections of a device
We can then develop test sets specially suited for testing these sections online
These test sets, since they focus only on a portion of the device, can be very short and can be run with minimal interruption of the device’s normal operation
Related Work
Online Error Detection Triple Modular Redundancy Berger and Bose Lin Coding Logic Implications
Online Test Concurrent Autonomous Chip Self-Test
Using Stored Test Patterns (CASP)
Logic Implications
Provide valuable diagnostic resolution The checker hardware requires very little
knowledge about the circuit’s current state
b = 1 f = 0
Logic Implications
Provide valuable diagnostic resolution The checker hardware requires very little
knowledge about the circuit’s current state
sa0
sa0sa0
sa0sa1
b = 1 f = 0
Hardware Implementation
High Level Overview
Test Set Selection Process
Generating Pattern Scores
Scores reflect how valuable a pattern is for a given implication
While multiple detections of a fault are useful, we also wish to promote patterns that allow for full coverage of the faults detectable by an implication
Step #1: Fault Dictionary and Implication Table
Test Pattern #0 1 2 3 4 5
Faults
a stuck-at 0 0 0 1 0 1 1a stuck-at 1 0 1 0 1 0 0b stuck-at 0 0 1 0 0 0 0b stuck-at 1 0 0 0 1 1 1c stuck-at 0 1 0 0 0 0 0c stuck-at 1 0 1 1 1 1 1d stuck-at 0 1 0 0 0 0 0d stuck-at 1 0 0 0 0 0 1e stuck-at 0 0 0 0 0 1 0e stuck-at 1 0 1 0 0 0 1f stuck-at 0 0 0 1 1 0 1f stuck-at 1 1 0 0 0 1 0g stuck-at 0 1 0 0 0 0 0g stuck-at 1 0 1 1 0 0 0h stuck-at 0 0 0 0 1 0 0h stuck-at 1 0 0 1 0 0 1i stuck-at 0 0 1 1 0 1 0
i stuck-at 1 1 0 0 1 0 0
Implication #0 1 2
Faults
a stuck-at 0 0 1 0a stuck-at 1 0 0 1b stuck-at 0 0 1 0b stuck-at 1 0 0 1c stuck-at 0 1 0 0c stuck-at 1 0 1 0d stuck-at 0 0 1 0d stuck-at 1 0 0 1e stuck-at 0 0 1 0e stuck-at 1 1 0 0f stuck-at 0 1 0 0f stuck-at 1 0 0 1g stuck-at 0 0 0 1g stuck-at 1 0 1 0h stuck-at 0 1 0 0h stuck-at 1 0 1 0i stuck-at 0 0 0 1
i stuck-at 1 0 1 0
Step #2: Select the Implication
Test Pattern #0 1 2 3 4 5
Faults
a stuck-at 0 0 0 1 0 1 1a stuck-at 1 0 1 0 1 0 0b stuck-at 0 0 1 0 0 0 0b stuck-at 1 0 0 0 1 1 1c stuck-at 0 1 0 0 0 0 0c stuck-at 1 0 1 1 1 1 1d stuck-at 0 1 0 0 0 0 0d stuck-at 1 0 0 0 0 0 1e stuck-at 0 0 0 0 0 1 0e stuck-at 1 0 1 0 0 0 1f stuck-at 0 0 0 1 1 0 1f stuck-at 1 1 0 0 0 1 0g stuck-at 0 1 0 0 0 0 0g stuck-at 1 0 1 1 0 0 0h stuck-at 0 0 0 0 1 0 0h stuck-at 1 0 0 1 0 0 1i stuck-at 0 0 1 1 0 1 0
i stuck-at 1 1 0 0 1 0 0
Implication #0 1 2
Faults
a stuck-at 0 0 1 0a stuck-at 1 0 0 1b stuck-at 0 0 1 0b stuck-at 1 0 0 1c stuck-at 0 1 0 0c stuck-at 1 0 1 0d stuck-at 0 0 1 0d stuck-at 1 0 0 1e stuck-at 0 0 1 0e stuck-at 1 1 0 0f stuck-at 0 1 0 0f stuck-at 1 0 0 1g stuck-at 0 0 0 1g stuck-at 1 0 1 0h stuck-at 0 1 0 0h stuck-at 1 0 1 0i stuck-at 0 0 0 1
i stuck-at 1 0 1 0
Test Pattern #0 1 2 3 4 5
Faults
a stuck-at 0 0 0 1 0 1 1a stuck-at 1 0 1 0 1 0 0b stuck-at 0 0 1 0 0 0 0b stuck-at 1 0 0 0 1 1 1c stuck-at 0 1 0 0 0 0 0c stuck-at 1 0 1 1 1 1 1d stuck-at 0 1 0 0 0 0 0d stuck-at 1 0 0 0 0 0 1e stuck-at 0 0 0 0 0 1 0e stuck-at 1 0 1 0 0 0 1f stuck-at 0 0 0 1 1 0 1f stuck-at 1 1 0 0 0 1 0g stuck-at 0 1 0 0 0 0 0g stuck-at 1 0 1 1 0 0 0h stuck-at 0 0 0 0 1 0 0h stuck-at 1 0 0 1 0 0 1i stuck-at 0 0 1 1 0 1 0
i stuck-at 1 1 0 0 1 0 0
Implication #0 1 2
Faults
a stuck-at 0 0 1 0a stuck-at 1 0 0 1b stuck-at 0 0 1 0b stuck-at 1 0 0 1c stuck-at 0 1 0 0c stuck-at 1 0 1 0d stuck-at 0 0 1 0d stuck-at 1 0 0 1e stuck-at 0 0 1 0e stuck-at 1 1 0 0f stuck-at 0 1 0 0f stuck-at 1 0 0 1g stuck-at 0 0 0 1g stuck-at 1 0 1 0h stuck-at 0 1 0 0h stuck-at 1 0 1 0i stuck-at 0 0 0 1
i stuck-at 1 0 1 0
Step #2: Select the Implication
Test Pattern #0 1 2 3 4 5
Faults
a stuck-at 0 0 0 1 0 1 1b stuck-at 0 0 1 0 0 0 0c stuck-at 1 0 1 1 1 1 1d stuck-at 0 1 0 0 0 0 0e stuck-at 0 0 0 0 0 1 0g stuck-at 1 0 1 1 0 0 0h stuck-at 1 0 0 1 0 0 1
i stuck-at 1 1 0 0 1 0 0
Step #3: Calculate Scores
Test Pattern # 0 1 2 3 4 5 # of Detects Fault Values
Faults
a stuck-at 0 0 0 1 0 1 1 0 1a stuck-at 1 0 1 0 0 0 0 0 1b stuck-at 0 0 1 1 1 1 1 0 1b stuck-at 1 1 0 0 0 0 0 0 1c stuck-at 0 0 0 0 0 1 0 0 1c stuck-at 1 0 1 1 0 0 0 0 1d stuck-at 0 0 0 1 0 0 1 0 1
d stuck-at 1 1 0 0 1 0 0 0 1
Pattern Scores 2 3 4 2 3 3
Step #4: Pick the Pattern with the Highest Score
Test Pattern # 0 1 2 3 4 5 # of Detects Fault Values
Faults
a stuck-at 0 0 0 1 0 1 1 0 1a stuck-at 1 0 1 0 0 0 0 0 1b stuck-at 0 0 1 1 1 1 1 0 1b stuck-at 1 1 0 0 0 0 0 0 1c stuck-at 0 0 0 0 0 1 0 0 1c stuck-at 1 0 1 1 0 0 0 0 1d stuck-at 0 0 0 1 0 0 1 0 1
d stuck-at 1 1 0 0 1 0 0 0 1
Pattern Scores 2 3 4 2 3 3
Step #3 (again): Calculate Scores
Test Pattern # 0 1 3 4 5 # of Detects Fault Values
Faults
a stuck-at 0 0 0 0 1 1 1 0.135a stuck-at 1 0 1 0 0 0 0 1b stuck-at 0 0 1 1 1 1 1 0.135b stuck-at 1 1 0 0 0 0 0 1c stuck-at 0 0 0 0 1 0 0 1c stuck-at 1 0 1 0 0 0 1 0.135d stuck-at 0 0 0 0 0 1 1 0.135
d stuck-at 1 1 0 1 0 0 0 1
Pattern Scores 2 1.27 1.135 1.27 0.405
Step #3 (again): Calculate Scores
Test Pattern # 0 1 3 4 5 # of Detects Fault Values
Faults
a stuck-at 0 0 0 0 1 1 1 0.135a stuck-at 1 0 1 0 0 0 0 1b stuck-at 0 0 1 1 1 1 1 0.135b stuck-at 1 1 0 0 0 0 0 1c stuck-at 0 0 0 0 1 0 0 1c stuck-at 1 0 1 0 0 0 1 0.135d stuck-at 0 0 0 0 0 1 1 0.135
d stuck-at 1 1 0 1 0 0 0 1
Pattern Scores 2 1.27 1.135 1.27 0.405
Implication Assignment Table
Experimental Setup
c432 c499 c880 c1355 c1908 c2670 c3540 c53150
500
1000
1500
2000
2500
3000
# of Patterns in 20 Detect Supersets
Stuck-AtTransition
Circuit
Nu
mb
er
of
Patt
ern
s
Experimental Results
c432 c499 c880 c1355 c1908 c2670 c3540 c53151
10
100
1000
10000
Faults Covered by an Impli-cation
MinAverageMax
Circuit
Nu
mb
er
of
Fau
lts
Co
vere
d
Stuck-At Fault Detections
Transition Fault Detections
Experimental Results
c432 c499 c880 c1355 c1908 c2670 c3540 c53150
5
10
15
20
25
30
35
40
Minimum Test Set Size
1 Detect5 Detect
Circuit
Avera
ge N
um
ber
of
Patt
ern
s
Conclusion
We have formulated a procedure for extracting diagnostic information from logic implications
This information was then used to target a specific area of the circuit that is suspected of having an error
Narrowing down the possible locations of an error allowed for the creation of very small, highly specialized test sets
Future Work
Additional work could be done to narrow down the suspected sites even further
A given pattern will only detect a subset of the faults covered by an implication
The results of running patterns could further pinpoint a fault’s location