chapter 11 software -based self -testing€¦ · system-on-chip test architecturesee141 ch. 11...

52
EE141 System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 1 Chapter 11 Chapter 11 Software Software - - Based Self Based Self - - Testing Testing

Upload: others

Post on 01-Jun-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 1

Chapter 11Chapter 11

SoftwareSoftware--Based SelfBased Self--TestingTesting

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 2

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 3

Fabrication versus Test CapitalFabrication versus Test Capital

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 4

Test Paradigm ShiftTest Paradigm Shift

�Functional testing

�Structural testing

�BIST

• Embedded hardware tester

• Area, performance, design overhead

• Limited at-speed testing

�SBST

• Embedded software tester

• Use self-tested memory and processor to test

other on-chip components

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 5

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 6

A SoftwareA Software--Based SelfBased Self--Testable SoCTestable SoC

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 7

SelfSelf--Test FlowTest Flow

�Memory self-testing

�Processor self-testing

�Global interconnect testing

�Testing nonprogrammable cores

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 8

SBST vs. BISTSBST vs. BIST

�BIST places the system in nonfunctional

mode

�SBST handles testing as an application

• Minimized DFT circuitry

• Reduce external tester performance requirement

• Greater test accuracy

• Excessive test power and overkill problems

eliminated

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 9

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 10

Processor ModelProcessor Model

�RTL level

�System-graph (S-graph)

• Node: a register that can

be explicitly modified by

an instruction

• Edge: data flow

between registers

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 11

Node LabelingNode Labeling

�assign label 0 to OUT

�K = 0

�while there exists unlabeled nodes

• Assign K+1 to unlabeled nodes whose contents can be transferred to any register(s) labeled K by

executing a single class T or B instruction

• K = K + 1

�end while

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 12

Edge LabelingEdge Labeling

�Edges of an instruction that reads a register

to OUT are labeled 1

�A instruction’s edges are labeled K+1 if its

destination register is labeled K

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 13

FunctionalFunctional--Level Fault ModelsLevel Fault Models

�Register decoding fault

�Instruction decoding and control fault

�Data storage fault

�Data transfer fault

�Data manipulation fault

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 14

Test Generation ProceduresTest Generation Procedures

�Utilize the S-graph and the node/edge labels

to facilitate test generation

�The knowledge gained from edges and

nodes with lower labels is utilized in

generation tests for those with higher labels

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 15

Test Generation ComplexityTest Generation Complexity

�nR: number of registers

�nI: number of instructions

�Register decoding fault

• O(nR3)

�Instruction decoding and control fault

• O(nI2) if the instruction labels do not exceed 2.

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 16

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 17

Test FlowTest Flow

�Test preparation

• One major challenge is extraction of instruction-

imposed I/O constraints

�Self-testing

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 18

PARWAN SHU I/O and PARWAN SHU I/O and

An Example Test Application SequenceAn Example Test Application Sequence

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 19

SHU Input Spatial ConstraintsSHU Input Spatial Constraints

Control Inputs Flag Inputs Data Inputs

asl asr v c z n s (data_in[7]) data_in[6:0]

lda 0 0 0 0 data_in≡ 0 s X X

and 0 0 0 0 data_in≡ 0 s X X

add 0 0 c⊕s X data_in≡ 0 s X X

sub 0 0 c⊕s X data_in≡ 0 s X X

asl 1 0 0 0 data_in≡ 0 s X X

asr 0 1 0 0 data_in≡ 0 s X X

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 20

SHU Temporal ConstrainSHU Temporal Constrain

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 21

Constrained Component Test GenerationConstrained Component Test Generation

�I = IC; F = FC; VC = Φ; TC = Φ;

�while I≠Φ and F ≠Φ

• pick i from I;

• if not Vi,C⊆ VC

– (Ti,C, Fdet) = constrainedTG(F, Vi,C);

– TC = TC∪ Ti,C;

– F = F - Fdet;

– VC = VC∪ Vi,C;

• end if

• I = I - { i };

�end while

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 22

Component Tests for PARWAN ALUComponent Tests for PARWAN ALU

Test Pattern

alu_code in_1 in_2

lda 100 (1111 1111,0110 0011,82) ZZZZ ZZZZ

sta 110 ZZZZ ZZZZ (1111 1111,0110 0011,82)

cma 001 ZZZZ ZZZZ (1111 1111,0110 0011,35)

and 000 (1111 1111,0110 0011,98): odd (1111 1111,0110 0011,98): even

sub 111 (1111 1111,0110 0011,24): odd (1111 1111,0110 0011,24): even

add 101 (1111 1111,0110 0011,26): odd (1111 1111,0110 0011,26): even

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 23

Test Program for Observing ALU OutputsTest Program for Observing ALU Outputs

lda addr(y) // load

add addr(x)

sta data_out // store AC

lda 11111111

brav ifv // branch if overflow

and 11110111

label ifv brac ifc // branch if carry

and 11111011

label ifc braz ifz // branch if zero

and 11111101

label ifz bran ifn // branch if negative

and 11111110

label ifn sta flag_out

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 24

Processor SelfProcessor Self--TestingTesting

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 25

VCCVCC--Based Test Program Synthesis FlowBased Test Program Synthesis Flow

� M = partitioning();

� T = extractTemplate();

� foreach m∈ M

• Tm = rankTemplate();

• while Tm≠ ϕ or fault coverage not acceptable

– t = highest ranked template in Tm;

– F = deriveMappingFunction(t,m);

– generateVCC();

– Pm,t = constrainedTG();

– processor-level fault simulation;

– Tm = Tm - { t };

• end while

� end foreach

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 26

Test Generation Using VCCsTest Generation Using VCCs

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 27

A Test Program Synthesis ExampleA Test Program Synthesis Example

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 28

Functionally Untestable Delay FaultsFunctionally Untestable Delay Faults

�Faults for which no functional test exists

�In PARWAN, paths that start at S1 and end

at the inputs of IR or AC are functionally

untestable

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 29

PARWAN Datapath Constraints for thePARWAN Datapath Constraints for the

““NOP; add;NOP; add;”” SequenceSequence

A7-A0 B7-B0 S2-S0 IR AC

Cycle 1 V1A V1B 100 (NOP)

Cycle 2 V2A V1B 101 (add) Latch

Constraint X...X C...C OZR Care

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 30

Delay Fault Test Program Generation Delay Fault Test Program Generation

FlowFlow

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 31

Functional Random Instruction TestingFunctional Random Instruction Testing

�FRITS

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 32

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE14133

System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 33

ChallengesChallenges

�Faults in functionality critical nodes tend to

fail all diagnostic programs

�A test program may activate multiple modules

�Some faults cannot be detected by SBST at

all

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 34

PrinciplesPrinciples

�Reduce the variety of instructions in each test

program

�Reduce the number of instructions in each

test program

�Create multiple copies of the same test

program to observe different outputs of the

target module

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 35

Diagnostic Test Program Generation FlowDiagnostic Test Program Generation Flow

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 36

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 37

Maximum Aggressor Fault ModelMaximum Aggressor Fault Model

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 38

Data Bus TestingData Bus Testing

�Must be tested from both directions

�Vector 1

• Data may be from or to the processor

�Vector 2

• Test for target core to processor

– Processor reads from core

• Test for processor to target core

– Processor writes target core

– The written vector is read back for comparison

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 39

Address Bus TestingAddress Bus Testing

�Unidirectional

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 40

Functional MA TestingFunctional MA Testing

�Many of the MA faults can never occur during

normal system operations

�FMA tests meet the system constraints and

can be conducted while operating in the

functional mode

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 41

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 42

Test FlowTest Flow

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 43

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 44

InstructionInstruction--Level DFT ConceptLevel DFT Concept

�Inserts test circuitry into the design in the

form of test instructions

• Less intrusive than gate-level DFT

• More attractive for applying at-speed test and for

power/thermal management

�Reuse existing hardware as much as

possible to reduce area overhead

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 45

The Example ProcessorThe Example Processor

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 46

Testability InstructionsTestability Instructions

�s2r (move SR to Rn)

• Improve the observability of SR

• SR => ALU => C => Rn

�r2s (move A to SR)

• Improve the controllability of SR

• A => ALU => SR

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 47

� Read exception signals from Rn

• Allows the processor to set the values of the exception signals from

Rn

• Set T o 1. Then, R27 => controller

� Pipeline register access

• For the hard-to-control registers buried deeply embedded in the

pipeline

• Loading data from general purpose registers to B

EE14148

System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 48

Test Optimization InstructionsTest Optimization Instructions

�load2 (consecutive load to Ri and Rj)

• Reduce the test program size

�xor_all (signature computation)

• Perform a sequence of XOR operations on the

register file

• Reduce test program run time

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 49

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE14150

System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 50

DSPDSP--Based BIST for AMS ComponentsBased BIST for AMS Components

�Utilize on-chip DSP resources to facilitate

stimulus generation and response analysis

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 51

SoftwareSoftware--Based SelfBased Self--TestingTesting

�Introduction

�Software-based Self-Testing Paradigm

�Processor functional fault self-testing

�Processor structural fault self-testing

�Processor self-diagnosis

�Testing global interconnect

�Testing nonprogrammable cores

�Instruction-level DFT

�DSP-based AMS component testing

�Concluding remarks

EE141System-on-Chip Test Architectures Ch. 11 – Software-Based Self-Testing - P. 52

�SBST has the potential to alleviate many

problems associated current structural BIST

techniques

�One major challenge is extracting functional

constraints imposed by the processor

instruction set

�Further research

• Automatic constraint extraction

• Generalized for AMS components