Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation •...

34
Lecture 3 - Fault Simulation and Fault Injection Fault simulation Fault simulation algorithms • Serial • Parallel • Deductive Random Fault Sampling Fault Injection • ASIC • FPGAs

Transcript of Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation •...

Page 1: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Lecture 3 - Fault Simulation andFault Injection

• Fault simulation

• Fault simulation algorithms• Serial• Parallel• Deductive• Random Fault Sampling

• Fault Injection• ASIC• FPGAs

Page 2: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Problem and Motivation

• Fault simulation Problem: GivenA circuitA sequence of test vectorsA fault model

– DetermineFault coverage - fraction (or percentage) of modeled faults detected by test vectorsSet of undetected faults

• MotivationDetermine test quality and in turn product qualityFind undetected fault targets to improve tests

Page 3: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault simulator in a VLSI Design Process

Verified designnetlist

Verificationinput stimuli

Fault simulator Test vectors

Modeledfault list

Testgenerator

Testcompactor

Faultcoverage

?

Remove tested faults

Deletevectors

Add vectorsLow

AdequateStop

Page 4: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Simulation Scenario• Mostly single stuck-at faults

• Sometimes stuck-open, transition, and path-delay faults; analog circuit fault simulators are not yet in common use

• Equivalence fault collapsing of single stuck-at faults

• Fault-dropping -- a fault once detected is dropped from consideration as more vectors are simulated; fault-dropping may be suppressed for diagnosis

• Fault sampling -- a random sample of faults is simulated when the circuit is large

Page 5: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Simulation Algorithms

• Serial

• Parallel

• Deductive

• Random Fault Sampling

Page 6: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Serial Algorithm• Algorithm: Simulate fault-free circuit and save

responses. Repeat following steps for each fault in the fault list:

• Modify netlist by injecting one fault• Simulate modified netlist, vector by vector, comparing

responses with saved responses• If response differs, report fault detection and suspend

simulation of remaining vectors

• Advantages:• Easy to implement; needs only a simulator, less memory• Most faults, including analog faults, can be simulated

Page 7: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Serial Algorithm (Cont.)• Disadvantage: Much repeated computation; CPU

time prohibitive for VLSI circuits

• Alternative: Simulate many faults together

Test vectors Fault-free circuit

Circuit with fault f1

Circuit with fault f2

Circuit with fault fn

Comparator f1 detected?

Comparator f2 detected?

Comparator fn detected?

Page 8: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Parallel Fault Simulation

• Exploits inherent bit-parallelism of logic operations on computer words

• Storage: one word per line for two-state simulation

• Multi-pass simulation: Each pass simulates w-1 new faults, where w is the machine word length

• Speed up over serial method ~ w-1

Page 9: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Parallel Fault Sim. Example

a

b c

d

e

f

g

1 1 1

1 1 1 1 0 11 0 1

0 0 0

1 0 1

s-a-1

s-a-0

0 0 1

c s-a-0 detected

Bit 0: fault-free circuitBit 1: circuit with c s-a-0

Bit 2: circuit with f s-a-1

Page 10: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Deductive Fault Simulation• One-pass simulation

• Each line k contains a list Lk of faults detectable on k

• Following simulation of each vector, fault lists of all gate output lines are updated using set-theoretic rules, signal values, and gate input fault lists

• PO fault lists provide detection data

Page 11: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Deductive Fault SimulationExample

a

b c

d

e

f

g

1

1 1

0

1

{a0}

{b0 , c0}

{b0}

{b0 , d0}

Le = La U Lc U {e0}= {a0 , b0 , c0 , e0}

Lg = (Le Lf ) U {g0}= {a0 , c0 , e0 , g0}

U

{b0 , d0 , f1}

Notation: Lk is fault list for line kkn is s-a-n fault on line k

Faults detected bythe input vector

1

Page 12: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Sampling

• A randomly selected subset (sample) of faults is simulated.

• Measured coverage in the sample is used to estimate fault coverage in the entire circuit.

• Advantage: Saving in computing resources (CPU time and memory.)

• Disadvantage: Limited data on undetected faults.

Page 13: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Motivation for Sampling

• Complexity of fault simulation depends on:• Number of gates• Number of faults• Number of vectors

• Complexity of fault simulation with fault sampling depends on:

• Number of gates• Number of vectors

Page 14: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Random Sampling Model

All faults witha fixed butunknowncoverage

Detectedfault

Undetectedfault

Random

picking

Np = total number of faults

(population size)

C = fault coverage (unknown)

Ns = sample size

Ns << Npc = sample coverage

(a random variable)

Page 15: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Example

A circuit with 39,096 faults has an actualfault coverage of 87.1%.

The measured coverage in a random sample of 1,000 faults is 88.7%.

CPU time for sample simulation was about 10% of that for all faults.

Page 16: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

• Problem and Motivation

• ASIC– performed by simulation or – emulation to speed up the process

• FPGAs– directly into the bitstream

Fault Injection

Page 17: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Problem and Motivation

• Fault injection Problem: GivenA circuitAn applicationA fault model

– DetermineBehavior of faulty circuit

• MotivationDetermine product safetyFind unsafe states to improve product safetyRedesign product for fault tolerance

Page 18: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Injection

General: ASIC performed by simulation or emulation to speed up the process

Page 19: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

• When should a fault be inserted?

Pseudo-random number

generator

timelocationbit

Fault Injection EnableSignals

Enable_registers

Enable_memory

Fault maskreset

Reset_core

clock

Memory location

Fault Injection Block

[0][4][5][7]

8-bit pseudo-random register

Fault Injection Control Block

applicationcorecore

......• Where should a fault be inserted?

Page 20: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Device Under Test Core Registers

CLK RST

mask ...

FI_EN

ENFI_EN CLK RST

mask

FI_EN

ENFI_EN

Hamming Code

Hamming Decode

• Special paths are required in the high-level description to ensure the full controllability of a fault insertion.

Page 21: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Device Under Test Core Memory

FI_memory location

mask

WEAENARSTACLKAADDRADIA

DOA

DOB

WEBENBRSTBCLKBADDRBDIB

FI_enable_memory

WEA

FI_memory location

mask

WEAENARSTACLKAADDRADIA

DOA

DOB

WEBENBRSTBCLKBADDRBDIB

Hamming Code

Hamming Decode

FI_enable_memory

WEA

• Dual-port memories allows high flexibility with low extra logic.

• Good fault model approximation: the faults can be injected in the memory at any time (all micro-controller states) without perturbing the normal operation.

Page 22: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Monitor Block

• Observability of an error in response of a fault injected in the DUT.

• Assumption: application results will be stored in the internal memory.

• Two main tasks are performed by the monitor block:• Clear all the internal memory in order to avoid

accumulation of faults; • Read all the internal memory to analyse if there is an error

or not.

Page 23: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Injection Platform (Emulation)

Fault injection Soft-core

“Golden” Soft-core

Fault injection block

reset

Reset_core

clock

Monitor Block

Monitor Block

data

data

status

status

Lost of sequence

error

Chipscope Analyzer

Virtex FPGA

jtagcomputer

• “Golden” chip approach was used to observe the faults in the system.

• Comparing:– Data memory error– Application_end signal in the end lost of sequence.

Page 24: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Reset

Reset_MEM

Read_MEM

Clear_MEM

Clear Memory Application

Fault Injection Signals

Reset_DUT

Clear Memory ApplicationRead Memory

Time range for Fault Injection

Application_end

Lost of sequence

Error

Page 25: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Case Sudy: μ8051 Fault Injection Experiment

000000010000001000000011000001000000010100000110000000010000001000000011000001000000010100000110000000010000001000000011000001000000010100000110000000010000001000000011000001000000010100000110000000010000001000000011000001000000010100000110000000010000001000000011000001000000010100000110000000010000000100000001000000010000000100000001000000100000001000000010000000100000001000000010000000110000001100000011000000110000001100000011000001000000010000000100000000100000010000000100000001010000010100000101000000101000010100000101000001100000011000000110000000110000011000000110000101010010101000111111010101000110100101111110000101010010101000111111010101000110100101111110000101010010101000111111010101000110100101111110000101010010101000111111010101000110100101111110000101010010101000111111010101000110100101111110000101010010101000111111010101000110100101111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000….000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

variables

Matrix 2Matrix Result

0h

0Ah0Bh

1Fh2Fh

52h53h

76h

100h

Matrix 1

• Registers: Datapath, Control block, state machine (16 registers)

• Memory: 256 bytes application memory (RAM)

• 8051 Application: 6x6 Matrix Multiplication – Multiplication is performed by subsequent

addition and left shift register.

• According to the TIME:– fault in the memory location < 52h can

generate an error or a lost of sequence.

memory

Page 26: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Case Study: μ8051 Fault Injection ExperimentVirtex Platform

• The fault injection system and the (DUT) were implemented in Virtex FPGA platform.

• Thousands of faults were injected in some seconds

• The emulation in FPGA showed a ~120,000 times acceleration

• Component: Virtex XCV300 -240p

• 8051-like micro-controller runs at 10 MHz

• Fault injection Standard 8051 – 28 % LUTs

• Fault injection Hardened 8051– 30 % LUTs

Page 27: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Injection

FPGAs

(Directly into the bitstream)

Page 28: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Context• Many digital designs are synthesized in SRAM based FPGAs

• Transient faults?

DesignDesign

clk

E1E2E1E3E2E3

SynthesisCustomization bits

…10101011110001101010…

M M M M

Upset = bit-flip

…10101011100001101010…

clk

E1E2E1E3E2E3 fault

Page 29: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Motivation• A way to test the reliability of a (fault-tolerant) design is

to perform fault injection, simulating the effects of upsets (bit-flips), and see how the design responds

• The estimated time for injecting one bit fault in a FPGA bitstream is around 1 to 3 seconds

• The main steps of the fault injection are:– read the bit file – flip one bit– write the new bit file– download it to the board by the configuration mode interface

– check the output signal

Page 30: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Fault Injection Cost AnalysisXCV300 Analysis

CLB Rows x CLB Cols32 x 48

Total of 1.536 CLBs1.327.104 CLB Bits

Total of 470 CLBs Used406.080 CLB Bits

31 days!

9.5 days!

Page 31: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

CLB View in the FPGA Editor

Which bit in the bitstream correspond to this connection?

Which bit in the bitstream correspond to the logic?

Page 32: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

Virtex Bitstream

...

Frame

0

...

171615

0 1 2 3 …. 47

Bit

CLB

BRAM

IOB

586 bits

What does this bit do?

Page 33: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

SEUs Effects on FPGAs I

Bit Flip in a Single Linebit: 03 frame: 29

Fault effect:- Open Circuit

Page 34: Lecture 3 - Fault Simulation and Fault Injectionfglima/projeto/aula3t.pdfProblem and Motivation • Fault simulation Problem: Given A circuit A sequence of test vectors A fault model

SEUs Effects on FPGAs II

Bit Flip in a Hex Line Muxbit: 01 , frame:32

Fault effect:- Open Circuit- Short Cut Circuit