109
New Methods for Efficient Functional Testing of SoCs Matteo SONZA REORDA www.cad.polito.it

New Methods for Efficient Functional Testing of SoCs

  • Upload
    newbu

  • View
    201

  • Download
    1

Embed Size (px)

Citation preview

Page 1: New Methods for Efficient Functional Testing of SoCs

New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA

www.cad.polito.it

Page 2: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 2

Summary

Introduction Processor testingPeripheral testingHW supportConclusions

Page 3: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 3

Introduction

Typical SoCs includeOne or more processor coresSeveral memory modulesOther modules, including custom (digital

and analog) logic, and peripheral cores

Page 4: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 4

SoC test

Possible solutions heavily depend on the origin of the cores the test solutions they support

They include scan test for logic and processor(s)BIST (especially for memories) functional test (for both single modules and

whole system)

Page 5: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 5

Major issues: scan test

Scan test is a mature and well-known (and supported) approach, but may not be usable if

it is not supported by the core AND the netlist is not available

could give low defect coverage (it mainly targets stuck-at faults, only) if the SoC must work at high frequency, or with advanced technologies

if the number of cores is high, may require a significant amount of work to connect the scan chains to the outside

Page 6: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 6

Major issues: BIST

Very popular for memories Increasingly popular for logic blocks Able to provide high defect coverage (normally

at-speed test) Normally requires an extensive modification of

the HW (typically performed by the module provider)

Requires understanding and adopting a given protocol for test activation and result extraction

Page 7: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 7

Major issues: functional test

It aims at testing the functions rather than the faults; therefore, it may require limited structural information

It is based on exercising the system (or a given module) with suitable stimula, with minor (or without) test reconfiguration

This test can often be performed at-speed may be able to catch a good percentage of defects

but it requires suitable stimula ad hoc mechanisms for accessing each core during test

Page 8: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 8

Test architecture

The complexity of SoCs raises issues in terms ofTest access mechanismsTest program generation Interfacing with the external ATETest length (duration and size)DiagnosisDebug…

Page 9: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 9

Test access mechanisms

Popular solutions are based on IEEE 1149.1 for interfacing the device with

the outside IEEE 1500 for defining

the test interface of each core the test interconnection between the cores and

the TAP

Page 10: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 10

SoC Architecture: normal mode

SoC

ProcessorCore

Memory Core1 Core2

Functional Bus

PeripheralCore1

PeripheralCore2

Page 11: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 11

SoC Architecture: test mode

SoC

ProcessorCore

Memory Core1 Core2

PeripheralCore1

PeripheralCore2

TAP

ATEFunctional Bus

SI1-SO1

BIST

SI2-SO2

BIST

Page 12: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 12

SoC Architecture: test mode 2

SoC1500 wrapper 1500 wrapper

1500 wrapper

ProcessorCore

Memory Core1

1500 wrapper

Core2

1500 wrapper 1500 wrapper

PeripheralCore1

PeripheralCore2

TAP

ATE

Page 13: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 13

Trends

Standard interface for all coresEasier test program generationPossible test program generation automation

Signals between ATE and cores are commands instead of vectors

The frequency of test commands is independent on the test frequencyLow-cost ATE

Page 14: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 14

Processor test

Most common approachesScan testBIST (for internal memories, and for large

internal logic blocks)Functional test

Page 15: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 15

Functional test

Based on forcing the processor to execute a proper test program, and then checking the results

Requires proper mechanisms toUpload the test programChecking the results

Page 16: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 16

SoC Test Architecture

SOC

ATE

ProcessorCore

RAM Core1 Core2

DMAController

Internal Bus

Page 17: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 17

Test Protocol

Configure the SoC in Test ModeLoad the Test Program in the internal code

memory (e.g., through the DMA controller)Force the processor to execute the Test

ProgramCheck the results

This approach is often called Software-Based Self-Test (SBST)

Page 18: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 18

Result check

The correctness of the results of the test program may be checked by forcing it to write to (and by observing) the memorysome proper (and easily observable) output

ports some externally accessible bus

Page 19: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 19

Advantages

Low-cost ATEAt-speed testLimited hardware resources

Page 20: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 20

Test stimula generation

May be based onStimula from the designer (e.g., intended for

design validation)Random stimulaAd hoc stimula, manually or automatically

generated

In any case, a test coverage metric should be available

Page 21: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 21

Processor test generation

May be performed byThe processor core providerThe processor core user

Main problems:How to manage test program execution?How to observe its behavior?How to get a good test program?

Page 22: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 22

Test generation for processors (I)

Test architecture: Papachristou et al. (DAC99)

Test program generation:Thatte and Abraham (TonC80)Batcher and Papachristou (VTS99) Chen and Dey (VTS2000)

Processor verification:Shen et al. (DAC99)Utamaphethai et al. (VLSI Design 99)

Page 23: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 23

Test Program Generation

Manually, following guidelines and algorithms

Automatically

Page 24: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 24

Manual Methods

Empirical methodsGlobal methodsUnit-oriented methods

Page 25: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 25

Empirical methods

They are based on the knowledge of the Instruction Set Architecture (ISA), only

ExamplesAll instructionsAll instructions with all addressing modesAll code fragments to stimulate all units ...

No metrics are normally used

Page 26: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 26

Global methods

Aim at testing the whole processor starting from the ISA, only

They are based on a systematic approach

They do not guarantee a given fault coverage, although significant values can normally be reached

Page 27: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 27

Thatte, Abraham [TonC84]

Works on the RTL description of a simple processor, only, as it can be extracted from a user manual

Defines rules to build a graph describing the instruction behavior wrt registers

Defines a set of functional fault modelsDefines some procedures to generate

sequences of instructions addressing the above fault models

Page 28: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 28

Processor graph

One vertex for every register (including special register, such, as PC)

Two special vertices (IN and OUT) for memory and I/O

One edge for every data transfer from one register (or memory, or I/O) and another; each edge is labeled with the identifier of the corresponding instruction

Page 29: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 29

Functional fault models

For the register decoding function When a register is written

All the registers are written No register is written Another register is written

For the instruction decoding and control function

For the data storage function For the data transfer function For the data manipulation function

Page 30: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 30

Procedures for test generation

They allow detecting all the previously listed faults (one at a time)

ExampleTo test the register decoding faults

Initialize all registers to a given value ZEROFor every register

Write a value ONE in the register Read the register Read the other registers

Page 31: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 31

Unit-oriented methods

They provide a sequence of operations able to exhaustively cover a given unit (e.g., an arithmetic one)

Page 32: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 32

Automatic methods

Macro-based methodsEvolutionary-based methods

Page 33: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 33

Macro-based approach

A Macro is the basic block of the Test Program

Each macro:Focuses on a single target instruction in the

µP Instruction Set Includes the code for

Exciting the instruction functionalitiesMaking the results observable

Page 34: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 34

Example #1

The macro for the ADD instruction is:

MOV AX, K1 ; load register AX with K1

MOV BX, K2 ; load register BX with K2

ADD AX, BX ; sum BX to AX

MOV RW, AX ; write AX to RW

MOV RW, PSW ; write status reg to RW

Observable register

EXCITATIONPHASE

OBSERVATIONPHASE

Macro parameters

Page 35: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 35

Example #2

The macro for the JG instruction is:

MOV BX, 0 ; clear BX

MOV AX, K1

CMP AX, K2 ; compare AX with K2

JG Label ; jump if AX > K2

MOV BX, 1 ; move 1 to BX

Label: MOV RW, BX; write BX to RW

Page 36: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 36

Macro Selection andParameter Optimization

do{ m = select_a_macro();

O = select_the_operands(m);F = compute_detected_faults(m, O);

if( F is not empty ) add m(O) to the test program;}while( stopping_condition() == FALSE );

Page 37: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 37

Macro Selection

The final Test Program should have minimal length

An adaptive approach has been adopted: Macros are selected on a random basis A selection probability is associated to each macro At the beginning, all macros have the same

selection probability Each time a macro is selected, its selection

probability is increased if it detected at least one fault, decreased elsewhere

Page 38: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 38

Operands

Each macro has some parameters: Immediate valuesMemory cell addresses…

Page 39: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 39

Operand Selection

An Evolutionary approach has been adopted:Random values are initially chosenAn evaluation function is associated to each

set of valuesCurrent values are possibly improved using

a Genetic Algorithm

Page 40: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 40

Evaluation Function

It is based on three terms:A first order term, corresponding to the

number of detected faultsA second order term, corresponding to the

number of excited faultsA third order term, corresponding to the

activity caused by the excited faults

The value of the evaluation function is computed by fault simulation

Page 41: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 41

Experimental Results

The proposed method has been evaluated on:A prototype (named ATPGS) implementing

the proposed approachAn Intel 80C51 model

Page 42: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 42

ATPGS architecture

ATPGKernel

GA FaultSimulator

µPnetlist

FaultList

MacroLibrary

TestProgram

Macro + Operands

Detected Faults

Macr

os

Page 43: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 43

Case Study: i8051 µC

8-bit microprocessor developed by Intel in the 80sQuite old but still popular (USB)128 bytes directly-accessible data memory

+ 32 bytes bit-addressable data memory64KB external memory accessible using a

special instruction (MOVX)4KB internal + 64KB external program

memory

Page 44: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 44

Case Study: i8051 µC (2)

RT-Level description7,500 VHDL lines4 KB program + 2 KB data memory

Gate-Level description12K gates28,792 stuck-at faults

Page 45: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 45

Case Study: i8051 µC (3)

Instruction Set: 44 instructions from 0-operand ones (e.g., DIV AB) to 3-operand (e.g., CJNE Op1, Op2, R)

Non-orthogonalInstruction Library: 81 entries

prologue, epilogue66 sequential operations 13 conditional branches

Page 46: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 46

Results

#Macros 213

Macro Generation 2 days of an experienced programmer

Parameter Optimization 24 h (CPU time)

Fault Coverage 92%

Test Program Length 624 instructions

Page 47: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 47

Reference Results (stuck-at FC)

80%

92%94%

RandomTest Program

GenerationATPGS Full-scan

version

Page 48: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 48

Result Analysis

Most of the undetected faults are in the Divider:

better results could be obtained by running a combinational ATPG for computing the optimum parameters and removing untestable faults

A nearly complete fault coverage has been obtained for the Control Unit

Page 49: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 49

The µGP approach

Based on an evolutionary algorithm (named µGP)

Suitable internal representation, evaluation function and operators are defined

System architecture for automatic test program generation has been devised

Page 50: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 50

Test Program Generator

Cultivates a population of µ individuals (DAG)

In each generation: λ new individuals are generated mutating

existing ones the best µ from (µ+λ) are selected for

surviving

Stop condition: steady stateSelection: tournament selection (τ)

Page 51: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 51

Individual Representation

ADD ADDCAJMPANLCJNECLRCPLDADECDIVDJNZINCJBJBCJCJMPJNBJNCJNZJZLJMPMOVMOVCMOVXMULNOPORLPOPPUSHRLRLCRRRRCSETBSJMPSUBB…

Instruction library

A

B

C

D

E

F

H

Prologue

Epilogue

ADD ADDCAJMPANLCJNECLRCPLDADECDIVDJNZINCJBJBCJCJMPJNBJNCJNZJZLJMPMOVMOVCMOVXMULNOPORLPOPPUSHRLRLCRRRRCSETBSJMPSUBB…

Instruction library

A

B

C

D

E

F

H

Prologue

Epilogue

ORL A, reg

ORL C, /num

ORL C, !num

ORL A, #num

ORL num, reg

PARAMETERS

PreviousNode

NextNode

reg = R1

ORL A, R1

Instructionlibrary

ORL A, reg

ORL C, /num

ORL C, !num

ORL A, #num

ORL num, reg

PARAMETERS

PreviousNode

NextNode

reg = R1

ORL A, R1

Instructionlibrary

Page 52: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 52

Evolutionary Operators

Add node (sequential or branch)Remove nodeModify the parameters of a nodeCrossover

Page 53: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 53

Auto Adaptation

MicroGP internally tunesnumber of consecutive mutations activation probabilities of all operators

Significant performances improvement

Page 54: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 54

System Architecture

generator

testprogram

instructionlibrary

netlist

faultsimulator

generator

testprogram

instructionlibrary

netlist

faultsimulator

Page 55: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 55

System Architecture

generator

testprogram

instructionlibrary

netlist

faultsimulator

generator

testprogram

instructionlibrary

netlist

faultsimulator

simple description of µP assembly language syntax

test program evaluator

µGP evolutionary engine

Page 56: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 56

MicroGP Test Program

Sun Enterprise 250 running at 400 MHz 2 Gbytes of RAMTest program generated in few days

Used for fault simulationsEvolutionary calculations required negligible

CPU time

Page 57: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 57

Test Programs Comparison

General applicationsFibonacci, int2bin

Exhaustive test benchprovided by i8051 designer

ATPGSDATE01

Page 58: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 58

Test Programs Comparison (2)

Random (comparable CPU)Same number of random test programsSame number random sequences of

macros (DATE01)

Page 59: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 59

Experimental Results (%FC)

0

10

20

30

40

50

60

70

80

90

100

Fib

on

acci

int2

bin

TestA

ll

Ran

do

m

Ran

do

m

Macro

AT

PG

S

Mic

roG

P

FC%

Page 60: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 60

HW support

Some HW can be added to the SoC (without modifying any core) to support the test

Page 61: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 61

I-IP-based Approach

ATE

SoC

Processor Core

I-IP

Memory

An I-IP manages the execution of the

Software-based Self Test

Page 62: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 62

I-IP tasks

Support the upload of the test-program into the code memory

Force the microprocessor to run the self-test procedure

Collect the resultsInteract with the ATE

Page 63: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 63

Test Architecture

Data Memory

System Bus

CPU

Self-testdata

Interrupt port

Instruction Memory

Self-Testcode

TESTACTIVATION

UPLOADRESULT

1500 WRAPPER

Select

I-IPATE

Page 64: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 64

Test program upload

The I-IP takes the control of the bus through a circuitry directly connected to the memory

Page 65: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 65

Self-test activation

The self-test program corresponds to an Interrupt Service Routine

An interrupt request activates the test execution

Page 66: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 66

Result monitoring

A test signature is generated by means of a MISR module

The MISR register is connected to a processor port

The test procedure writes results to the processor port

Page 67: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 67

Communication with the ATE

A 1500-compliant wrapper is in charge of receiving commands from the ATE and sending data to it

High-level commands:Load the test programRun the testRead the test statusRead the results

Page 68: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 68

Experimental analysis

2 case studies have been considered: Intel 8051SPARC Leon I

RT-Level behavioral VHDL descriptionCommercial synthesis toolAlready existing test programs (Corno et

al. [DATE03])

Page 69: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 69

Area Overhead

Intel 8051Processor core: 25,292 gates I-IP: 490 gates1500 wrapper: 1,580 gatesArea overhead: 8.1%

SPARC Leon IProcessor core: 65,956 gates I-IP: 3,632 gates1500 wrapper: 2,263 gatesArea overhead: 8.9%

Page 70: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 70

Test program details

Intel 8051Program size: 1,234 bytesProgram duration: 8,768 clock cyclesSA fault coverage: 95%

SPARC Leon IProgram size: 1,678 bytesProgram duration: 21,552 clock cyclesSA fault coverage: 94%

Page 71: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 71

Debug

The I-IP can be usefully exploited also for debug (if the µP does not support other features)Can be programmed from the outside (e.g.,

to trigger an interrupt when a given address flows on the bus)

Can force the processor to execute a procedure that accesses to any register or memory word

Page 72: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 72

On-line test

SBST can be used for on-line test, tooShort test procedures can be activated

periodically, or during idle timesThey must be written in such a way that

they don't interfere with the µP normal behavior

Page 73: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 73

Delay faults

Rising performances and complexity of today’s microprocessors

Higher working frequenciesTraditional fault models no longer

sufficient

⇒ At-speed delay test is often required

Page 74: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 74

Path-delay fault

The cumulative delay of a combinational path exceeds some specified duration

1

2

Page 75: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 75

Path-delay fault testing [cont.]

1→0

2

- 0

Non-robust test

- 1

1

Tests consist of vector pairs (V1, V2)

Excitation and Propagation required.

Page 76: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 76

Test application: scan-based

Shift out dataShift in dataScan

Enable

Clock

Launch clock Capture clock

Shift out dataShift in dataScan

Enable

Clock

Launch clock Capture clock

a) Launch-on-shift (LOS)

b) Launch-on-capture (LOC)

Page 77: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 77

Test application: functional

clk

i – 1 i i + 1

V2 (i – 1)V1 (i )

V2 (i )V1 (i + 1)

Software-Based Self-TestThe test vectors reach the path inputs during

normal at-speed circuit operations Fault excitation and results observation

depend on data/instructions sequences

Page 78: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 78

Path-Delay fault testability

Not all faults are testableStructurally sensitizable pathsFunctionally sensitizable paths

SBST techniques target functionally sensitizable faults, only

All faultsAll faults

Page 79: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 79

Proposed approach

The flow is based on three steps:1. Fault list selection and classification

2. Fault excitation conditions learning

3. Fault excitation refinement and error propagation enhancement

Page 80: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 80

1. Fault list selection/classification

Path-Delay fault list generationStatic Timing Analysis

Structurally untestable faults pruningStructurally coherent path-delay fault

classificationaimed at concentrate the test generation

efforts on specific processor areas

Page 81: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 81

2. Fault excitation conditions learning

Concentrates on a structurally coherent fault set

Aim: generate a test program to excite at least one fault

This step is based onAn evolutionary algorithm to generate test

programsAn evaluation algorithm to assess a test

program’s ability to cover the addressed faults

Page 82: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 82

2. Fault excitation conditions learning

Test programpopulation

Test program Evolutionary

algorithm

Structurally coherent

path-delay fault list

Evaluationalgorithm

Max FitnessValue

capture CK

Page 83: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 83

3. Fault excitation refinement and error propagation enhancement

Aims: Increase the number of excited pathsEnhance error propagation through addition

of I/O instructions

This step is based on:An evolutionary algorithm to optimize test

programsHardware-accelerated fault grading (FPGA)

Page 84: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 84

3. Fault excitation refinement and error propagation enhancement

learnedTest program

population

mutatedTest

programEvolutionary

algorithm

Structurally Coherent

path-delay fault list

Hardware-acceleratedevaluator

Excitation/Propagation

Fitnessvalues

Page 85: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 85

3. Fault excitation refinement and error propagation enhancement

learnedTest program

population

mutatedTest

programEvolutionary

algorithm

Structurally Coherent

path-delay fault list

Hardware-acceleratedevaluator

Excitation/Propagation

Fitnessvalues

Optimization of theOptimization of thetest program population:test program population:application of genetic mutations on Assembly test programs

MOV R1, 10MOV R2, 15ADD R1, R2

MOV R3, 10MOV R2, 18ADD R1, R2

Page 86: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 86

3. Fault excitation refinement and error propagation enhancement

FPGA

InstrumentedProcessor-based

system

Programmemory

Fault simulationcontroller

Test programupload

Results download

start/stop

Page 87: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 87

3. Fault excitation refinement and error propagation enhancement

1A

B

C

D

2FF

FF

EXC

enable

Activation condition logicFault injection logic

Page 88: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 88

Case study

Intel 8051 microcontrollerConnected to external

program memory coreParallel output ports

connected to MISRfor results observation

8051µprocessor

Programmemory

System bus

MIS

R

Page 89: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 89

Case study [cont.]

1. Fault list selection/classification 1,403 worst paths extracted with

Synopsys Tetramax 234 of them are structurally

sensitizable “true” paths Automatically classified into 18

coherent fault sets (each including 30 paths max)

Page 90: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 90

Case study [cont.]

2. Fault excitation conditions learning Evolutionary tool: µGP Ad-hoc evaluation tool

Targets non-robust coverage 1,000 lines of C code Interacts with Mentor Graphics Modelsim

Page 91: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 91

Case study [cont.]

3. Fault excitation refinement and error propagation enhancement

Evolutionary tool: µGP Sabotaged circuit mapped on FPGA

Fault grading @ 15 MHz

Page 92: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 92

Case study [cont.]

1,827 K1.3 K8689mutated set

611 K0.5 K2746learned set

lenght[cc]

size[bytes]

Propagated[#]

Excited[#]

91.0 hourson a SUN Ultra 250

workstation @ 400 MHz

8.8 hours

136 M4.5 K1223stuck-at set

Page 93: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 93

Peripheral testing

Peripheral cores can also be tested viaScan testFunctional test

In the latter case, the test requiresA suitable test program

To program the peripheralTo exercize the peripheral

Some external data (either in input or output)

Page 94: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 94

Functional test for peripherals

Testing peripherals using functional test may follow two strategiesTesting the peripheral working in the

configuration that is used by a given application, only

Testing the peripheral working in all possible configurations

Page 95: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 95

Peripheral testing

It requiresConfiguring the peripheral (configuration

code fragment)Exercising the peripheral (functional

fragment, including code and data)

Page 96: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 96

Test architecture

SoC

Microprocessor

core

Memory

core

Input/Output

peripheral core

Output

periperhal core

Input

peripheral core

BU

S

ATE

Logic core

Page 97: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 97

Test stimula generation

It can be done in different ways:Manually or automaticallyStarting from a data-sheet, an RT-level

description, a gate-level description

Suitable metrics are required to guide generation (and to stop it)

Page 98: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 98

RT-level coverage metrics

The most popular ones are Statement coverage Branch coverage Condition coverage Expression coverage

It is common practice to maximize all of them Crucial issues

Which is the most suitable order for the metrics to be considered?

Which is the maximum value for each metric?

Page 99: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 99

RT-level coverage metrics

The most popular ones are Statement coverage Branch coverage Condition coverage Expression coverage.

It is common practice to maximize all of them. Crucial issues

Which is the most suitable order for the metrics to be considered?

Which is the maximum value for each metric?

It depends on the description style

Page 100: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 100

RT-level coverage metrics

The most popular ones are Statement coverage Branch coverage Condition coverage Expression coverage.

It is common practice to maximize all of them. Crucial issues

Which is the most suitable order for the metrics to be considered?

Which is the maximum value for each metric?

100% is not always achievable (e.g., due to

unreachable statements)

Page 101: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 101

High-level metrics representativeness

Can we forecast gate-level stuck-at fault coverage by only looking at RT-level metrics?

Page 102: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 102

Case of study

UART

Motorola 6809 Microprocessor

RAM Memory

Transmitter Module

Receiver Module

Configuration Logic Module

PIA

SoC

BUS

8

1

1

Configuration and functionality module

Page 103: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 103

Details

Description PIA UART

RT-level

# statements 149 383

# branches 134 182

# conditions 75 73

# expressions

N/A 54

Gate-level# gates 1,016 2,247

# faults 1,938 4,054

Page 104: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 104

PIA results

PIA Test SetsCode Coverage

[%]

Test TimeTest Blocks

Fault coverage

[# clock cycle]

[#] [%]

Final test Set

Statement 99.7

625 9 96.2Branch 98.5

Condition 98.9

Expression -

Page 105: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 105

UART results

UART Test SetsCode Coverage

[%]Test Time

Test Blocks

Fault Coverage

[# clock cycle]

[#] [%]

Step 1

Statement 97,2

2,050 8 86.1Branch 98,9

Condition 98,1

Expression 72.9

Step 2

Statement 99.2

4,300 14 94.3Branch 99.5

Condition 99.7

Expression 99.6

Page 106: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 106

UART results

UART Test Sets Code Coverage [%] Test Time

Test Blocks

Fault Coverage

[# clock cycle]

[#] [%]

Step 1

Statement 97,2

2,050 8 86.1Branch 98,9

Condition 98,1

Expression 72.9

Step 2

Statement 99.2

4,300 14 94.3Branch 99.5

Condition 99.7

Expression 99.6

Maximizing one metric, only, is not enough

Page 107: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 107

UART results

UART Test Sets Code Coverage [%] Test Time

Test Blocks

Fault Coverage

[# clock cycle]

[#] [%]

Step 1

Statement 97,2

2,050 8 86.1Branch 98,9

Condition 98,1

Expression 72.9

Step 2

Statement 99.2

4,300 14 94.3Branch 99.5

Condition 99.7

Expression 99.6

Test time is much longer than for PIA, due to

different conditions to test (parity, overrun, etc.)

Page 108: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 108

UART results

UART Test SetsCode Coverage

[%]Test Time

Test Blocks

Fault Coverage

[# clock cycle]

[#] [%]

Step 1

Statement 97,2

2,050 8 86.1Branch 98,9

Condition 98,1

Expression 72.9

Step 2

Statement 99.2

4,300 14 94.3Branch 99.5

Condition 99.7

Expression 99.6

Maximizing RT-level metrics can guarantee good gate-level fault

coverage

Page 109: New Methods for Efficient Functional Testing of SoCs

Matteo SONZA REORDA – Politecnico di Torino 109

Conclusions

Functional test for SoCs is increasingly popular in industry is a hot research topic

Hybrid solution combining it with DfT may be effective

Effective test generation is still an open problem