DYNAMIC TEST SET SELECTION USING IMPLICATION-BASED ON-CHIP DIAGNOSIS Nicholas Imbriglia, Nuno Alves,...

Post on 27-Dec-2015

216 views 0 download

Tags:

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