Embedded Processor Based Embedded Processor Based Fault Injection - - PowerPoint PPT Presentation

embedded processor based embedded processor based fault
SMART_READER_LITE
LIVE PREVIEW

Embedded Processor Based Embedded Processor Based Fault Injection - - PowerPoint PPT Presentation

Embedded Processor Based Embedded Processor Based Fault Injection and SEU Fault Injection and SEU Emulation for FPGAs Emulation for FPGAs Bradley Dutton, Mustafa Ali, John Bradley Dutton, Mustafa Ali, John Sunwoo, and Charles Stroud Sunwoo,


slide-1
SLIDE 1

Embedded Processor Based Embedded Processor Based Fault Injection and SEU Fault Injection and SEU Emulation for FPGAs Emulation for FPGAs

Bradley Dutton, Mustafa Ali, John Bradley Dutton, Mustafa Ali, John Sunwoo, and Charles Stroud Sunwoo, and Charles Stroud Sunwoo, and Charles Stroud Sunwoo, and Charles Stroud

slide-2
SLIDE 2

Outline Outline

  • Background

Background

  • What is Built

What is Built-in Self in Self-test for FPGAs? test for FPGAs?

  • Example: BIST for Virtex

Example: BIST for Virtex-5 Configurable Logic Blocks 5 Configurable Logic Blocks

  • Motivation

Motivation

  • What is FPGA fault emulation?

What is FPGA fault emulation?

  • Why do we need it?

Why do we need it?

  • Two case studies of embedded processors used

Two case studies of embedded processors used

  • Two case studies of embedded processors used

Two case studies of embedded processors used for fault injection for fault injection

  • Hard processor

Hard processor-based fault injection based fault injection

  • Atmel AT94K SoC

Atmel AT94K SoC

  • Soft processor

Soft processor-based fault injection and Single based fault injection and Single-Event Event Upset (SEU) emulation Upset (SEU) emulation

  • Xilinx Virtex

Xilinx Virtex-4 and Virtex 4 and Virtex-5 FPGAs 5 FPGAs

  • Conclusions

Conclusions

2

slide-3
SLIDE 3

BIST for FPGAs BIST for FPGAs

  • Basic idea:

Basic idea: reprogram FPGA to test itself reprogram FPGA to test itself

  • No area overhead or performance penalties

No area overhead or performance penalties

  • Applicable to all levels of testing

Applicable to all levels of testing

  • Application independent testing

Application independent testing

  • A generic test approach for a generic component

A generic test approach for a generic component

  • Good diagnostic resolution

Good diagnostic resolution

3

  • Good diagnostic resolution

Good diagnostic resolution

  • Cost:

Cost:

  • Memory to store BIST configurations

Memory to store BIST configurations

  • Goal:

Goal: minimize minimize number and size number and size of configurations

  • f configurations
  • Test time = download + execute + results

Test time = download + execute + results

  • Dominated by download time

Dominated by download time

  • Goal:

Goal: minimize downloads and/or download minimize downloads and/or download time time

  • Results retrieval is second

Results retrieval is second

slide-4
SLIDE 4

AUBIST Approach AUBIST Approach

  • Configure some logic resources to act as

Configure some logic resources to act as

  • Test Pattern Generators (TPGs)

Test Pattern Generators (TPGs)

  • Output Response Analyzers (ORAs)

Output Response Analyzers (ORAs)

  • Configure other resources to be tested

Configure other resources to be tested

  • Blocks Under Test (BUTs)

Blocks Under Test (BUTs)

  • Wires Under Test (WUTs)

Wires Under Test (WUTs)

  • Wires Under Test (WUTs)

Wires Under Test (WUTs)

  • For all configurations, maintain constant

For all configurations, maintain constant

  • placement of TPGs, ORAs, & BUTs

placement of TPGs, ORAs, & BUTs

  • routing of TPG

routing of TPG-to to-BUT & BUT BUT & BUT-to to-ORA ORA

  • minimizes download time via partial reconfiguration

minimizes download time via partial reconfiguration

  • Automatic generation of BIST configurations

Automatic generation of BIST configurations

  • For any size device in FPGA family

For any size device in FPGA family

4

slide-5
SLIDE 5

V-5 Configurable Logic Block (CLB) BIST CLB is most abundant logic resource

25,920 CLBs in Largest Virtex-5

207,360 FFs and 6-input LUTs

652 configuration bits per CLB Some CLBs include SliceMs (LUT RAMs)

SliceM can form small RAMs or Shift Register SliceM can form small RAMs or Shift Register

FF/ FF/ Latch Latch LUT/ LUT/ RAM RAM (64 (64-bit) bit) Carry Carry Logic Logic 6 CIN CIN COUT COUT Switch Switch Matrix Matrix SLICE0 SLICE0 (SliceM) (SliceM) SLICE1 SLICE1 (SliceL) (SliceL) CLB

5

slide-6
SLIDE 6

SliceL BIST Architecture SliceL BIST Architecture

  • Two test sessions

Two test sessions

  • East & West

East & West

  • Every CLB configured as both a Block Under Test

Every CLB configured as both a Block Under Test (BUT) and Output Response Analyzer (ORA) (BUT) and Output Response Analyzer (ORA)

  • Multiple test phases per test session

Multiple test phases per test session

  • Test all modes of operation in CLB

Test all modes of operation in CLB

West West West West East East East East

03/17/2009 SSST 6

TPG TPG TPG TPG West West West West TPG TPG TPG TPG East East East East BUT BUT ORA ORA TPG TPG

slide-7
SLIDE 7

SliceL BIST Architecture SliceL BIST Architecture

  • Test Pattern Generator

Test Pattern Generator

  • 12 inputs to each basic logic element

12 inputs to each basic logic element

  • DSP configured as accumulator generates an exhaustive set

DSP configured as accumulator generates an exhaustive set

  • f patterns
  • f patterns
  • Accumulate prime number 0xCA6691 [1]

Accumulate prime number 0xCA6691 [1]

  • Produces

Produces 212

12 patterns in

patterns in 212

12 clock cycles with high number of

clock cycles with high number of transitions in most significant bits transitions in most significant bits

  • Multiple TPGs connect to alternating columns of BUTs

Multiple TPGs connect to alternating columns of BUTs

03/17/2009 SSST 7

  • Multiple TPGs connect to alternating columns of BUTs

Multiple TPGs connect to alternating columns of BUTs

  • Eliminates fault

Eliminates fault-free TPG assumption free TPG assumption

  • Comparison

Comparison-based output response analysis based output response analysis

  • Compare the outputs of two adjacent, identically configured

Compare the outputs of two adjacent, identically configured CLBs CLBs

  • Row based circular comparison

Row based circular comparison

[1] S. Gupta, J. Rajski, and J. Tyszer, “Test pattern generation based on arithmetic

  • perations,” Proc. IEEE Int. Conf. on Computer-Aided Design, pp. 117-124, 1994.
slide-8
SLIDE 8

Iterative Iterative-OR output response analyzer OR output response analyzer

  • Each ORA compares two outputs of BUT

Each ORA compares two outputs of BUT

  • Initialized to logic 1

Initialized to logic 1

  • Any mismatch will latch a logic 0

Any mismatch will latch a logic 0

  • Results retrieved

Results retrieved

  • Partial configuration memory read back

Partial configuration memory read back

  • High diagnostic resolution when fault(s) detected

High diagnostic resolution when fault(s) detected

03/17/2009 SSST 8

High diagnostic resolution when fault(s) detected High diagnostic resolution when fault(s) detected

  • Via single

Via single-bit iterative bit iterative-OR chain output OR chain output

1

BUTj outputy BUTk outputy

0 1 ORAk carry-out

BUTj outputx BUTk outputx

ORAj carry-out LUT

ORA1 TDI ORA2 ORAn TDO

slide-9
SLIDE 9

SliceM BIST Architecture SliceM BIST Architecture

  • Block RAM TPGs store RAM

Block RAM TPGs store RAM test vectors test vectors

  • March Y + Dual

March Y + Dual-port March [2] port March [2]

  • 2048 x 18

2048 x 18-bit BRAM , 8 bit BRAM , 8N = = 8*256 = 2048 vectors 8*256 = 2048 vectors

  • Iterative

Iterative-OR chain ORA OR chain ORA

TPG TPG BUT BUT ORA ORA TPG TPG

03/17/2009 SSST 9

  • Iterative

Iterative-OR chain ORA OR chain ORA

  • Column based circular

Column based circular comparison comparison

  • One multiple phase test

One multiple phase test session for all SliceMs session for all SliceMs

  • Every CLB with a SLICEM has

Every CLB with a SLICEM has a SLICEL for ORA a SLICEL for ORA

TPG TPG

[2] A. van de Goor, Testing Semiconductor Memories: Theory and Practice, John Wiley and Sons, 1991.

slide-10
SLIDE 10

100 200 300 400 500 600 # Faults Detected 10 20 30 40 50 60 70 80 90 100 Individual FC Cumulative FC

V-5 SliceL BIST Fault Coverage

500 1000 1500 2000 2500 3000 # Faults Detected 10 20 30 40 50 60 70 80 90 100 Individual FC Cumulative FC

Single Stuck Single Stuck-at Simulation at Simulation Fault Injection Fault Injection

1 2 3 4 5 6 Configuration # 1 2 3 4 5 6 Configuration #

Gate-level model (AUSIM)

3008 gate-level collapsed stuck-at faults 100% cumulative coverage in 6 phases w/ DSP TPG

Configuration memory fault injection

614 configuration bit stuck-at faults 100% cumulative coverage

10

slide-11
SLIDE 11

10 20 30 40 50 60 70 80 # Faults Detected 10 20 30 40 50 60 70 80 90 100 Individual FC Cumulative FC

V-5 SliceM BIST Fault Coverage

1000 2000 3000 4000 5000 6000 7000 8000 # Faults Detected 10 20 30 40 50 60 70 80 90 100 Individual FC Cumulative FC

Single Stuck Single Stuck-at Simulation at Simulation Fault Injection Fault Injection

1 2 3 4 5 Configuration # 1 2 3 4 5 Configuration #

Gate-level model (AUSIM)

8462 gate-level collapsed stuck-at faults 100% cumulative coverage in 5 phases w/ RAM tests

Configuration memory fault injection

85 configuration bit stuck-at faults 100% cumulative coverage

11

slide-12
SLIDE 12

Fault Emulation in FPGAs

Configuration memory establishes the system functionality Stuck-at faults in the configuration memory of FPGAs can be easily emulated

Stuck-at 1 = write 1 Stuck-at 0 = write 0 Single Event Upset = invert “good” value

Can not emulate all possible faults, but provides a good statistical sample

Can emulate 97% of SEUs

12

Can emulate 97% of SEUs FF/ FF/ Latch Latch LUT LUT N 1 1

slide-13
SLIDE 13

Motivation for Fault Injection Motivation for Fault Injection

  • Why do we need fault injection?

Why do we need fault injection?

  • Actual faulty parts are difficult to obtain

Actual faulty parts are difficult to obtain

  • Not very useful because faults are fixed

Not very useful because faults are fixed

  • Fault injection allows emulation of any stuck

Fault injection allows emulation of any stuck-at at fault in the configuration memory fault in the configuration memory

  • Good indication of overall fault coverage

Good indication of overall fault coverage

  • Does not permanently damage the device

Does not permanently damage the device

  • Does not permanently damage the device

Does not permanently damage the device

  • No additional overhead when verifying BIST

No additional overhead when verifying BIST

  • Limitation: low speed external configuration

Limitation: low speed external configuration interface interface

  • Embedded core can manipulate configuration

Embedded core can manipulate configuration memory at higher speed memory at higher speed

13

slide-14
SLIDE 14

Physical Fault Injection Physical Fault Injection

  • Physical fault insertion

Physical fault insertion

  • Etch package and damage device with laser

Etch package and damage device with laser

  • Fault Injection Emulation

Fault Injection Emulation

  • Modify configuration memory bits

Modify configuration memory bits

  • Fault Emulator can create single & multiple

Fault Emulator can create single & multiple faults in: faults in:

14

1101 110100010 0010101 01 BIST config BIST config

FPGA FPGA

faults in: faults in:

  • PLBs: LUTs, flip

PLBs: LUTs, flip-flops, etc. flops, etc.

  • Interconnect: PIPs stuck

Interconnect: PIPs stuck-on & stuck

  • n & stuck-off
  • ff

0110 011011001 1001000 00 Stuck Stuck-

  • at values

at values 000010000100 000010000100 Fault mask Fault mask

1101 110110010 0010001 01

Download file Download file

1101 1101 1001 001 0001 01 faults faults

slide-15
SLIDE 15

Atmel AT94K FPSLIC Architecture Atmel AT94K FPSLIC Architecture

  • Field Programmable Gate Array

Field Programmable Gate Array

  • up to 48x48 array of Programmable

up to 48x48 array of Programmable Logic Blocks (PLBs) Logic Blocks (PLBs)

  • RAM cores

RAM cores

  • 32x4 bit RAMs distributed in FPGA

32x4 bit RAMs distributed in FPGA

  • Program memory (up to 32 Kbyte)

Program memory (up to 32 Kbyte)

FPGA FPGA

Data Data RAM RAM

Config Config memory memory

15

  • Program memory (up to 32 Kbyte)

Program memory (up to 32 Kbyte)

  • Single port to processor

Single port to processor

  • Data RAM (up to 16 Kbyte)

Data RAM (up to 16 Kbyte)

  • Dual port to FPGA & processor

Dual port to FPGA & processor

  • 8-bit RISC processor core

bit RISC processor core

  • Various peripherals

Various peripherals

  • Processor can write (but not read)

Processor can write (but not read) FPGA configuration memory FPGA configuration memory Program Program Memory Memory RISC RISC Processor Processor RAM RAM

Peripherals Peripherals

slide-16
SLIDE 16

On On-

  • Chip BIST and Diagnosis

Chip BIST and Diagnosis

  • Atmel SoCs contain:

Atmel SoCs contain:

  • Program & Data RAMs

Program & Data RAMs

  • Processor core

Processor core

  • FPGA core

FPGA core

  • Use processor to:

Use processor to:

16

  • Use processor to:

Use processor to:

  • Configure FPGA for BIST

Configure FPGA for BIST

  • Run BIST

Run BIST

  • Get BIST results

Get BIST results

  • Perform diagnosis

Perform diagnosis

  • Reduces test and diagnosis time by a factor of 36.9

Reduces test and diagnosis time by a factor of 36.9

  • Store only one BIST and diagnostic program on

Store only one BIST and diagnostic program on-chip chip

slide-17
SLIDE 17

Hard Processor Fault Injection Hard Processor Fault Injection

  • Fault injection emulation used for debugging, analysis &

Fault injection emulation used for debugging, analysis & verification of BIST configurations verification of BIST configurations

  • Embedded processor approach gives fast and thorough analysis

Embedded processor approach gives fast and thorough analysis Programmable Programmable Resource Resource Config Config Bits Bits Total Total Faults Faults Download Download Run Time Run Time Processor Processor Run Time Run Time

5 6 7 ult 13 14 15 16 17 18 19

17

Resource Resource Bits Bits Faults Faults Run Time Run Time Run Time Run Time PLB with flip PLB with flip-flops flops 81 162 4 hrs 29 min 4 min 34 sec Vertical Repeaters Vertical Repeaters 71 142 3 hrs 55 min 4 min 1 sec Horizontal Repeaters Horizontal Repeaters 65 130 3 hrs 36 min 3 min 40 sec Free RAM Free RAM 4 8 13 minutes 14 seconds

1 2 3 4 X 3Y 3Z0B 0S X 3Y 3Z0B 2S X 3Y 3Z0B 4S X 3Y 3Z0B 6S X 3Y 3Z1B 1S X 3Y 3Z1B 3S X 3Y 3Z1B 5S X 3Y 3Z2B 1S X 3Y 3Z2B 3S X 3Y 3Z2B 5S X 3Y 3Z3B 0S X 3Y 3Z3B 2S X 3Y 3Z3B 4S X 3Y 3Z4B 0S X 3Y 3Z4B 2S X 3Y 3Z4B 4S X 3Y 3Z4B 6S X 3Y 3Z5B 1S X 3Y 3Z5B 3S X 3Y 3Z5B 5S X 3Y 3Z6B 1S X 3Y 3Z6B 3S X 3Y 3Z6B 5S X 3Y 3Z7B 0S X 3Y 3Z7B 2S X 3Y 3Z7B 4S X 3Y 3Z8B 0S X 3Y 3Z8B 2S X 3Y 3Z8B 4S X 3Y 3Z8B 6S X 3Y 3Z9B 1S X 3Y 3Z9B 3S X 3Y 3Z9B 5S Horizontal Ebus Repeater Faults # C

  • nfigs D

etecting Fault 1 2 3 4 5 6 7 8 9 10 11 12 13 X 3Y 3Z0B 0S X 3Y 3Z0B 2S X 3Y 3Z0B 4S X 3Y 3Z0B 6S X 3Y 3Z1B 1S X 3Y 3Z1B 3S X 3Y 3Z1B 5S X 3Y 3Z2B 1S X 3Y 3Z2B 3S X 3Y 3Z2B 5S X 3Y 3Z3B 0S X 3Y 3Z3B 2S X 3Y 3Z3B 4S X 3Y 3Z4B 0S X 3Y 3Z4B 2S X 3Y 3Z4B 4S X 3Y 3Z4B 6S X 3Y 3Z5B 1S X 3Y 3Z5B 3S X 3Y 3Z5B 5S X 3Y 3Z6B 1S X 3Y 3Z6B 3S X 3Y 3Z6B 5S X 3Y 3Z7B 0S X 3Y 3Z7B 2S X 3Y 3Z7B 4S X 3Y 3Z8B 0S X 3Y 3Z8B 2S X 3Y 3Z8B 4S X 3Y 3Z8B 6S X 3Y 3Z9B 1S X 3Y 3Z9B 3S X 3Y 3Z9B 5S Horizontal Ebus Repeater Faults # C

  • nfigs D

etecting Fau lt

slide-18
SLIDE 18

Soft Processor Fault Injection Soft Processor Fault Injection

  • Not all Virtex

Not all Virtex-4 and Virtex 4 and Virtex-5 FPGAs 5 FPGAs include a dedicated “hard” processor include a dedicated “hard” processor

  • Do include an Internal Configuration Access

Do include an Internal Configuration Access Port (ICAP) in the FPGA fabric Port (ICAP) in the FPGA fabric

  • Soft

Soft-core processor is required core processor is required

  • Soft

Soft-core processor is required core processor is required

  • Modeled in VHDL

Modeled in VHDL

  • Synthesized to a device specific

Synthesized to a device specific netlist netlist, then , then incorporated with BIST circuitry incorporated with BIST circuitry

  • Separate, but operationally identical models for

Separate, but operationally identical models for Virtex Virtex-4 and Virtex 4 and Virtex-5 due to architectural 5 due to architectural differences differences

18

slide-19
SLIDE 19

Virtex Virtex-4 & Virtex 4 & Virtex-5 Config Memory 5 Config Memory

  • 1 Frame = 41

1 Frame = 41 32 32-bit words bit words

  • ICAP provides

ICAP provides read/write read/write access to config access to config memory memory

19 ICAP_OUT[31:0] BUSY

ICAP

CLK_EN ICAP_IN[31:0] WRITE CLK

slide-20
SLIDE 20

Embedded Fault Injection Embedded Fault Injection

  • Fault list stored in block RAM (V

Fault list stored in block RAM (V-4 18 Kb, V 4 18 Kb, V-5 36 Kb) 5 36 Kb)

  • Arranged in 36

Arranged in 36-bit words (V bit words (V-4 = 512, V 4 = 512, V-5 1024) 5 1024)

  • Can be initialized during download or in

Can be initialized during download or in-system via custom system via custom boundary scan user boundary scan user-defined register interface defined register interface

  • Delimiters are used to control operation of processor

Delimiters are used to control operation of processor

  • Pause delimiter: enables injection of multiple faults at once

Pause delimiter: enables injection of multiple faults at once

  • End

End-of

  • f-file delimiter: enables any size fault list (up to maximum)

file delimiter: enables any size fault list (up to maximum)

  • Fault code: specifies type of fault to inject

Fault code: specifies type of fault to inject

  • Fault code: specifies type of fault to inject

Fault code: specifies type of fault to inject

20

Parity[3:2] Description Parity[1:0] Description 00 Continue to next fault 00 Stuck-at zero 01 Pause at fault 01 Stuck-at one 1X End-of-file (EOF) 1X Bit-flip (SEU) 35:34 33:32 32:21 20:0 Delimiters Fault Code Bit Index Frame Address

slide-21
SLIDE 21

Embedded Fault Injection Embedded Fault Injection Operation Operation

IDLE Read Modify Write EOF? Pause? Fault List No Yes Start 21 IDLE Frame Bit Frame EOF? Pause? Reset

  • Flt. List

Pointer Yes No Increment Pointer

slide-22
SLIDE 22

VHDL Component Declaration VHDL Component Declaration

component fltinject is generic( DEVICE : string(1 to 6):="LX110T"); port( GO : in std_logic; CLK : in std_logic; EOF : out std_logic; PAUSED : out std_logic); end component ; end component fltinject;

22

Name Direction Description CLK Input Clock input to ICAP (up to 100 MHz) GO Input Digital 1-shot input asserted to injection faults separated by “pause” delimiters PAUSED Output Indicates injection of faults complete EOF Output Asserted when end of list is reached

slide-23
SLIDE 23

Fault Inject Core Block Diagram Fault Inject Core Block Diagram

ICAP GO EOF PAUSED ROM VHDL Generic: Device Name 36 32 32

Optional

23

Frame RMW Block RAM Fault List Block RAM ROM & FSM 36 15 32 Boundary Scan BSCAN Interface

Configurable Logic Configurable RAMs Dedicated Logic

10

slide-24
SLIDE 24

Implementation Results Implementation Results

  • Image: Embedded Fault

Image: Embedded Fault Injection Core with Injection Core with BIST for Configurable BIST for Configurable Logic Blocks in Virtex Logic Blocks in Virtex-5 5 LX20T LX20T

  • Minimum 64 times

Minimum 64 times speed speed-up versus 50 up versus 50 MHz Boundary Scan MHz Boundary Scan

24

Virtex-4 Virtex-5 # lines of VHDL ~950 ~950 # block RAMs 2 2 # Logic Slices 228 67

Fault Injection Core BIST Logic

MHz Boundary Scan MHz Boundary Scan

  • More realistic ~9100

More realistic ~9100 times speed times speed-up up

slide-25
SLIDE 25

Conclusions Conclusions

  • Fault injection is a proven method for

Fault injection is a proven method for verifying fault coverage of BIST and SEU verifying fault coverage of BIST and SEU tolerance in FPGAs tolerance in FPGAs

  • Main limitation of previous approached is

Main limitation of previous approached is download overhead download overhead

  • Embedded fault & SEU injection approach

Embedded fault & SEU injection approach

  • Embedded fault & SEU injection approach

Embedded fault & SEU injection approach

  • Moves complex circuitry on chip

Moves complex circuitry on chip

  • Can be implemented in “hard” or “soft” processor

Can be implemented in “hard” or “soft” processor

  • Applicable to any FPGA with internal access to the

Applicable to any FPGA with internal access to the configuration memory configuration memory

  • Can operate at system bus speeds

Can operate at system bus speeds

  • Minimum 64 times speed

Minimum 64 times speed-up versus Boundary Scan in up versus Boundary Scan in Virtex Virtex-4 and Virtex 4 and Virtex-5

25

slide-26
SLIDE 26

Thank You Thank You

26