52
Chapter 4: Memory Built In Chapter 4: Memory Built-In Self-Test Self Test Jin-Fu Li Jin Fu Li Dept. of Electrical Engineering National Central University National Central University Jhongli, Taiwan

memory built in self test

Embed Size (px)

DESCRIPTION

memory built in self test pdf

Citation preview

Page 1: memory built in self test

Chapter 4: Memory Built InChapter 4: Memory Built-In Self-TestSelf Test

Jin-Fu LiJin Fu LiDept. of Electrical Engineering

National Central UniversityNational Central UniversityJhongli, Taiwan

Page 2: memory built in self test

Outline

• ROM BIST

• RAM BIST

• Serial BIST for RAMs• Serial BIST for RAMs

• Processor-Based RAM BISTProcessor Based RAM BIST

• RAM BISTs in SOCs

• References

2Jin-Fu LiEE, National Central University

Page 3: memory built in self test

Introduction • Characteristics of today’s SOC designs

− Typically more than 30 embedded memories on a hichip

− Memories scattered around the device rather than concentrated in one locationconcentrated in one location

− Different types and sizes of memories− Memories doubly embedded inside embedded cores− Memories doubly embedded inside embedded cores− Test access to these memories from only a few chip

I/O pinsp

• Built-in self-test (BIST) is considered the best solution for testing embedded memories withinsolution for testing embedded memories within SOCs− It offers a simple and low-cost means without

3Jin-Fu LiEE, National Central University

It offers a simple and low cost means without significantly impacting performance

Page 4: memory built in self test

General BIST Architecture

Circuit Under Test (CUT)

Test Generator

Response Verification

Test ControllerTest Controller

4Jin-Fu LiEE, National Central University

Page 5: memory built in self test

ROM Functional Block Diagram Inputs

Buffer

NOR/NANDNOR/NAND(ROM Array)

Decoder

Buffer

O t t

5Jin-Fu LiEE, National Central University

Outputs

Page 6: memory built in self test

An Example of ROM BIST

ROM

Cou

ROMnter

MISRMISRController

StatusGo/No-Go

6Jin-Fu LiEE, National Central University

Page 7: memory built in self test

Typical RAM BIST Architecture

Normal I/Os

T t C t ll

RAM

Test C

Test Controller

RAM

Collar

Test PatternGenerator

ComparatorGo/No-Go

Comparator

7Jin-Fu LiEE, National Central University

Page 8: memory built in self test

RAM BIST • In general, two BIST approaches have been

proposed for the RAMs− FSM-based RAM BIST− ROM-based RAM BIST

• Controller− Generate control signals to the test patternGenerate control signals to the test pattern

generator & the memory under test

• Test pattern generator (TPG)Test pattern generator (TPG)− Generate the required test patterns and Read/Write

signalsg

• ComparatorEvaluate the response

8Jin-Fu LiEE, National Central University

− Evaluate the response

Page 9: memory built in self test

ROM-Based RAM BIST • The features of ROM-based BIST scheme

− The ROM stores test procedures for generating test patterns

− Self-test is executed by using BIST circuits controlled by the microprogram ROMby the microprogram ROM

− A wide range of test capabilities due to ROM programming flexibilityp g g y

• The BIST circuits consists of the following functional blocksfunctional blocks− Microprogram ROM to store the test procedure

Program counter which controls the microprogram− Program counter which controls the microprogram ROM

− TPG

9Jin-Fu LiEE, National Central University− Comparator

Page 10: memory built in self test

ROM-Based RAM BIST Architecture

Normal I/Os

Mi

Normal I/Os

E d

Test

MicroprogramROM

End

RAM

CollarTPG

Go/No-Go Comparator

10Jin-Fu LiEE, National Central University

Page 11: memory built in self test

March-9N Test Procedure & Microcodes M h 9N• March-9N:

CLEAR

STEP MICROCODE0 0 0 0 0 0 0 0 1 0

OPERATION CLEAR WRITE(D), INC AC, IF AC=MAX THEN INC PC READ(D)WRITE(D’), INC AC, IF AC=MAX THEN INC PC ELSE DEC PCREAD(D’)

0 0 0 0 0 0 0 0 1 01 0 1 0 0 0 0 1 0 00 0 0 0 0 0 0 1 0 01 1 1 0 0 1 0 1 0 00 0 0 0 0 1 1 0 0 0READ(D )

DEC ACREAD(D)

WRITE(D), INC AC, IF AC=MAX THEN INC PC ELSE DEC PC

WRITE(D’) DEC AC IF AC=0 THEN INC PC ELSE DEC PC

0 0 0 0 0 1 1 0 0 01 1 1 0 0 0 0 1 0 00 0 0 1 0 0 0 0 0 00 0 0 0 0 0 1 0 0 01 1 0 1 0 1 0 1 0 0

STOP

WRITE(D’), DEC AC, IF AC=0 THEN INC PC ELSE DEC PCREAD(D’) WRITE(D), DEC AC, IF AC=0 THEN INC PC ELSE DEC PC

1 1 0 1 0 1 0 1 0 00 0 0 0 0 1 1 0 0 01 1 0 1 0 0 0 1 0 00 0 0 0 0 0 0 0 0 1

IF AC=MAX/0 ELSE DEC PC INCREMENT AC DECREMENT ACDECREMENT AC EXCLUSIVE OR INVERT/NORMAL COMPARE/MASK WRITE/READ

11Jin-Fu LiEE, National Central University

WRITE/READ CLEARTEST END

Page 12: memory built in self test

FSM-Based RAM BIST

Normal I/OsNormal I/Os

E d

Test

FSMEnd

RAM

CollarTPG

Go/No-Go Comparator

12Jin-Fu LiEE, National Central University

Page 13: memory built in self test

FSM-Based RAM BIST A l f h di f ll• An example of the state diagram of controller

S0W0 NOT last address?

S1R0NOT last address?

S2W1

SR1 S3

S4

R1

W0NOT last address?

S5R0NOT last address?

S4W1

SEnd

13Jin-Fu LiEE, National Central University

S4End

Page 14: memory built in self test

Programmable RAM BIST A l f h bl RAM BIST• An example of the programmable RAM BIST

T

Normal I/Os

CMD

Con

TPG &

C

Test C RAM

BSI

BSC

CMD

TGOntroller

Com

par

Collar

RAMBSC

BRSENA

rator BGODONE

CLKBNSCLK

14Jin-Fu LiEE, National Central University

Page 15: memory built in self test

FSM State Diagram of the Controller

Idle BRS=1

Shift dBSC=1

Shift_cmd

BSC=0

DONE=1

Get_cmd

Apply ENA=1

DONE=0

15Jin-Fu LiEE, National Central University

Page 16: memory built in self test

Programmability Th bili b hi d b i• The programmability can be achieved by using test command

• The test command format− U/D OP Data background

− U/D: ascending/descending address sequence

U/D OP Data background

sequence− OP: test operations

∗ For example, wa, rawa’, rawa’ra, warawa’ra’, etc. o e a p e, a, a a , a a a, a a a a , etc.

− Data backgrounds

• Th idth f h fi ld ff t th• The width of each field affects the programmability of the BIST design

F l if 4 bit d f OP th l 1616Jin-Fu LiEE, National Central University

− For example, if 4 bits are used for OP, then only 16 possible test operations can be generated

Page 17: memory built in self test

FSM State Diagram of the TPG

Idle ENA=0

Init DONE/GO

ENA=1

Ifetch

Null=1Null=0

Ifetch

Exec

Dfetch

CompareNo-Go Error=0Error=1

17Jin-Fu LiEE, National Central University

Page 18: memory built in self test

Serial BIST • Today’s telecommunication ICs often have a

variety if multiport memories on one chip

• Typical RAM BISTs evaluate all the bits of a memory word in parallel as it is readmemory word in parallel as it is read

• We can encounter significant problems when applying these BIST schemes to chips that haveapplying these BIST schemes to chips that have multiple embedded RAMs of varying sizes and port configurationsport configurations− The area cost of these BIST designs would be

unacceptably highunacceptably high

• One better solution is a serial BIST techniqueT h BIST d i l RAM

18Jin-Fu LiEE, National Central University

− To share BIST design among several RAMs

Page 19: memory built in self test

Benefits of Serial BIST

• Only a small amount of additional circuitry is requiredrequired

• Only a few lines are needed to connect the RAM to the test controllerto the test controller

• Several RAM blocks easily share the BIST ycontroller hardware

• The serial-access mode does not compromiseThe serial access mode does not compromise the RAM cycle time

• E i ti d i d t d• Existing memory designs do not need any modification to use the serial interface

19Jin-Fu LiEE, National Central University

Page 20: memory built in self test

Serial-Data-Path Connection

Ci Ci+1

Row

de Ci Ci+1ecoder

Column decoder

LatchLatch

Write Read

BIST

LatchLatch

BIST on From previous output or serial input

To next test inputor serial input

20Jin-Fu LiEE, National Central University

Oi Oi+1Ii Ii+1

Page 21: memory built in self test

Serial Shift Operation • An example of serial shift operations for the

match element (R0W1)Time Operation Serial Word Serial

0 0 0 0

Time Operation Serial in

Word content

Serial out

0 X X0 0 0 0

1 0 0 0

1 R0 X

2 W1 1 000 0 0 00 0 0 01 0 0 01 0 0 0 1 0 0 0

1 1 0 01 0 0 0 3 R0 1

4 W1 1 00

0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0

1 1 0 0 1 1 0 0

1 1 1 06 W1 1 5 R0 1

000

0 0 0 0 0 0 0 0 1 0 0 0

1 1 1 0 1 1 1 0

1 1 1 1 8 W1 1

7 R0 1 00

X XX 01 01 0

21Jin-Fu LiEE, National Central University

8 W1 1

Page 22: memory built in self test

Serial March (SMarch) • Assume that a RAM has W words, and each

word contains C bits

• A Read operation is denoted by R0, R1, or Rx, depending on the expected value at the serialdepending on the expected value at the serial output (x=do’t care)

• For a write operation the terms W0 or W1 are• For a write operation, the terms W0 or W1 are used and only the serial input is forced to the value indicatedvalue indicated

• The SMarch modified from March C- is as f llfollows− CCCC

CCCC

WRWRWRWRWRWRWRRxW

)1,1()1,0(;)0,0()0,1()1,1()1,0(;)0,0()0(

⇓⇑

⇑c

22Jin-Fu LiEE, National Central University

CCCC WRWRWRWR )0,0()0,0(;)0,0()0,1( ⇓⇓

Page 23: memory built in self test

Serial BIST ArchitectureBIST GO Done

Controller TiminggeneratorSO SI

Counters

ControlData outData in

msblsb

MultiplexerMultiplexer Multiplexer

Data inAddress C-1

MultiplexerMultiplexer MultiplexerCC

RAM (W words of C bits)

Address Data in Data out Control

23Jin-Fu LiEE, National Central University

Page 24: memory built in self test

Sharing BIST in Daisy-Chain StyleBIST GO Done

Controller TiminggeneratorSO SI

CountersgSO SI

R d/W itAdd Read/WriteAddress

Test Collar Test Collar Test Collar

RAM1 RAM2 RAM3

Test Collar Test Collar Test Collar

Serial InterfaceSI SO

Serial InterfaceSI SO

Serial InterfaceSI SO

24Jin-Fu LiEE, National Central University

Page 25: memory built in self test

Sharing BIST in Parallel StyleBIST

GODone

DeMux

TimingSO SIC t Controller

ggenerator

Counters

Read/WriteAddress

Test Collar Test Collar Test Collar

RAM1 RAM2 RAM3

Test Collar Test Collar Test Collar

Serial InterfaceSI SO

Serial InterfaceSI SO

Serial InterfaceSI SO

25Jin-Fu LiEE, National Central University

Page 26: memory built in self test

BIST Using Data Decoding/Encoding

n

m wire n

nm wire e

26Jin-Fu LiEE, National Central University

Page 27: memory built in self test

Processor-Based RAM BIST

Normal I/OsNormal I/Os

Test

Processor

RAM

CollarTPG

Go/No-Go Comparator

27Jin-Fu LiEE, National Central University

Page 28: memory built in self test

NTHU Processor-Programmable BIST

ADDRADDR_cpu

DATAO

ADDR_bist

Embedded On-chip EmbeddedBIST core

DATAODATAO_sys

Clock_cpu

DATAO_bist

Mux_selCPU bus MemoryBIST core

controlCtrl_cpu

Ctrl_bist

DATAIDATAI_sysDATAI_bistDATAI_cpu

Source: Prof. C. W. Wu, NTHU

28Jin-Fu LiEE, National Central University

Page 29: memory built in self test

NTHU Processor-Programmable BIST • BIST core

RBG

DATAO_cpu

L t/hi h t dd

DATAO_bist

Addressdecorder

RAL

RAH REA

AddresscounterADDR_cpu

Lowest/highest addr ADDR_bist

Up/downRME

RIR

RFLAG

RED Controller

Read/WriteControl

Up/down

DATAI_bist

DATAI sys

Match/unmatch

Comparator

Data background

DATAI_sys

29Jin-Fu LiEE, National Central University

Source: Prof. C. W. Wu, NTHU

Page 30: memory built in self test

NTHU Processor-Programmable BIST • Data registers

Register FunctionRBG Store background data

RAL

RAH

Store lowest address

Store highest address

RME

RIR

Store current March element

Instruction register of BIST circuit

RFLAG

RED

Status register of BIST circuit

Erroneous response of defective cell

REA Address of defective cell

30Jin-Fu LiEE, National Central University

Source: Prof. C. W. Wu, NTHU

Page 31: memory built in self test

NTHU Processor-Programmable BIST Source: Prof. C. W. Wu, NTHU• BIST procedure

Test program write data background to RBGTest program write data background to RBG

Test program write lowest/highest address to RAL/RAHPerformed bytest program

Test program write March instructions to RME

Test program write START to RIR

↑(Wa) ↑(Ra,Wa’) ↑(Ra’,Wa) ↓(Ra,Wa’) ↓(Ra’,Wa) ↓(Ra)

CompareData error

Write ERROR to RFLAGWrite error response to REDWrite faulty addr to REA

Performed byBIST circuit

yes

No

March elementcomplete

yes

No

31Jin-Fu LiEE, National Central University

Write FINISH to RFLAGTest program

take over

Page 32: memory built in self test

SOC Testing

• A typical SOC chip

FPGA

Flash MemoryADC

Wrapper

DSPCPU

y

UDL

Sink

Wrapper

Source

Sink

Test Access Mechanism (TAM)TAM

MPEG SRAM SRAMDRAM

Source: Y. Zorian, et al.-ITC98

32Jin-Fu LiEE, National Central University

Page 33: memory built in self test

SOC Test Access FPGA Flash

MemoryUDL

ADC

Wrapper

Off-chip Source/Sink1. Pins determine bandwidth

DSPCPU UDL

Source

SinkTAM TAM

2. More TAM area3. Requires expensive ATE

MPEG SRAM SRAMDRAM

FPGA Flash Memory

ADC

WrapperOn chip Source/SinkDSPCPU

MemoryUDL

Sink

Wrapper

Sink

On-chip Source/Sink1. Close to Core-under-test2 Less TAM area

MPEG SRAM SRAMDRAM

Source Source2. Less TAM area3. BIST IP area4. Requires lightweight ATE

33Jin-Fu LiEE, National Central UniversitySource: Y. Zorian and E.J. Marinissen

Page 34: memory built in self test

1500 Scalable Test Architecture

User Defined Parallel TAMSource Sink

1500 W

TAM-outTAM-in

1500 W

TAM-outTAM-in

Core1

1500 Wrapper

CoreN

1500 Wrapper

Fin Fout Fin FoutCore1

WIR

CoreN

WIRWSI WSIWSO WSOWIR WIRWSI WSIWSO WSOWIP

User-Defined

Test Controller

34Jin-Fu LiEE, National Central University

Page 35: memory built in self test

1500 Test Wrapper

W WTest stimuli Test response WPI WPOCore

WB

R

WB

R

Functional data

Functional data

WBY

data data

WIR WSOWSI

WSC

35Jin-Fu LiEE, National Central University

Page 36: memory built in self test

Memories in SOCs

FPGAADC

DSPCPU

Flash Memory

UDL DSPCPU UDL

SRAMDRAM

SRAM SRAM

BISTBIST

MPEG SRAM SRAMDRAM

BISTBIST

BIST dN BIST

36Jin-Fu LiEE, National Central University

BIST-ready memory coresNon-BIST memory cores

Page 37: memory built in self test

RAM BIST in SOCs • Memory cores in an SOC can be categorized

into two types in term of testability− BIST-ready memory cores− Non-BIST memory cores

• An SOC can contain tens or even hundreds of memory corese o y co es− Although a BIST usually have only about 8

controlling pins− The total BIST controlling pins is huge if each BIST-

ready memory cores has its own BIST controlling pins

• The BIST controlling pins should be shared− One solution is using memory BIST interface

37Jin-Fu LiEE, National Central University

g y

Page 38: memory built in self test

Sharing BIST Controlling Pins

FPGAADC

DSPCPU

Flash Memory

UDL DSP

DRAM

SRAM SRAM SRAMBIST

BIST

MBI MBIMBI

MPEGSRAM

SRAM DRAM

BISTBISTMBI

MBI

SRAM

38Jin-Fu LiEE, National Central University

Page 39: memory built in self test

Memory BIST Interface (MBI)

39Jin-Fu LiEE, National Central University

Page 40: memory built in self test

Memory BIST Interface (MBI) • Instruction Register

− Store the instructions∗ RUN_BIST, RUN_DIAGN, EXPORT_STATUS, TAM_CONTROL

• Bypass Registeryp g− It is selected if the corresponding memory core is not

tested

• Monitor Register− Monitor the error flag (indicating whether a memory o to t e e o ag ( d cat g et e a e o y

fault is detected or not)

• Status RegisterStatus Register− Record the key status values, such as Fail output from

the BIST

40Jin-Fu LiEE, National Central University

Page 41: memory built in self test

Testing Multiple Memories with MBI

• Using RUN_BIST instruction, we can test multiple memory cores concurrentlymemory cores concurrently− When one or more BIST circuits detect faults, the primary

MSO_N will be high after N-K clock cycles if the concurrent output of the (K+1) through the N memory cores are fault free

41Jin-Fu LiEE, National Central University

output of the (K+1) through the N memory cores are fault free

Page 42: memory built in self test

Sharing BIST Hardware BIST controlling signals

BIST ControllerTPG &

Comparator

BIST C ll BIST C llBIST C ll

RAM 1

BIST Collar

RAM N

BIST Collar

RAM 2

BIST Collar

42Jin-Fu LiEE, National Central University

Page 43: memory built in self test

RAM BIST Compiler

S P f C W W NTHU

43Jin-Fu LiEE, National Central University

Source: Prof. C. W. Wu, NTHU

Page 44: memory built in self test

1500-Compilant BIST

T

RAM

Wra

TAP C

on

TAP

RAMBIST

pper

ntroller

P

44Jin-Fu LiEE, National Central University

Page 45: memory built in self test

Programmable BISD for RAMs in SOCs • General test architecture

ATEATE

TAP controllerSOC

TAM

Processor + Test Program Memory

Wrapper

TAM

Embedded Memory Core

S A ll D l ITC03

45Jin-Fu LiEE, National Central University

Source: Appello D., et. al. ITC03

Page 46: memory built in self test

Programmable BISD for RAMs in SOCs • Test Processor

Processor

ControlUnit

WrapperP1500Instructions

Test Program

MemoryAdapter

P1500Output Data

Address BusData BusControl Signals

S A ll D l ITC03

g

46Jin-Fu LiEE, National Central University

Source: Appello D., et. al. ITC03

Page 47: memory built in self test

Programmable BISD for RAMs in SOCs • Control Unit

− Manage the test program executionManage the test program execution− Include an Instruction Register (IR) and

Program Counter (PC)Program Counter (PC)− The control unit allows the correct update of

some registers located in Memory Adaptersome registers located in Memory Adapter− This part simplifies the processor reuse in

different applications without the need for anydifferent applications without the need for any re-design

47Jin-Fu LiEE, National Central University

Page 48: memory built in self test

Programmable BISD for RAMs in SOCs • Memory Adapter

− Control Address registers (Current address)g ( _ )− Control Memory registers

∗ Current_dataR i d d t∗ Received_data

− Control Test registers∗ Dbg index, Step, Direction flag, and Timer registersg_ , p, g, g

− Result registers∗ Status, Error, and Result registers

− Some constant value registers∗ Add_Max, Add_Min, DataBackGround, Dbg_max

48Jin-Fu LiEE, National Central University

Page 49: memory built in self test

Programmable BISD for RAMs in SOCs • Processor instruction set

I t ti M iInstruction Meaning

SET_ADDCurrent_address ⇐ Add_Max

Direction flag ⇐ BACKWARDDirection flag ⇐ BACKWARD

RST_ADDCurrent_address ⇐ Add_Min

Direction flag ⇐ FORWARDg

STORE_DBGCurrent_data ⇐ DataBackGround[Dbg_index]

Dbg_index ⇐ Dbg_index+1

INV_DBG Current_data ⇐ NOT (Current_data)

READ Current data ⇐ Memory[Current address]READ Current_data ⇐ Memory[Current_address]

WRITE Memory[Current_address] ⇐ Current_data

49Jin-Fu LiEE, National Central University

Source: Appello D., et. al. ITC03

Page 50: memory built in self test

Programmable BISD for RAMs in SOCs • Wrapper

WSI

TAP c W W

WCDR W

Me

WRCK

WRSTN

ShiftWRcontroller

WIR

WB

DR

RBR

emory

Processor

Test

UpdateWR

CaptureWR

SelectWIR BY

TestProgram

SelectWIR

WSO

CORE

Wrapper

50Jin-Fu LiEE, National Central University

Source: Appello D., et. al. ITC03

Page 51: memory built in self test

Summary

• ROM BIST has been presentedp

• ROM-based and FSM-based RAM BIST have been introducedbeen introduced

• Serial BIST methodology for embedded i h l t dmemories has also presented

• BIST approaches for testing multiple RAMs in an pp g pSOC have also been addressed

51Jin-Fu LiEE, National Central University

Page 52: memory built in self test

References• [1] A. K. Sharma,”Semiconductor memories – technology, testing, and

li bilit ” IEEE P 1997reliability”, IEEE Press, 1997.

• [2] B. Nadeau-Dostie, A. Silburt, and V. K. Agarwal,”Serial interfacing for embedded-memory testing”, IEEE D&T, pp.52-63, apr. 1990.

• [3] C. W. Wu,”VLSI testing & design for testability II: Memory built-in self-test”, http://larc.ee.nthu.edu.tw/~cww/

• [4]C.-H. Tsai and C.-W. Wu, ``Processor-programmable memory BIST for[4]C. H. Tsai and C. W. Wu, Processor programmable memory BIST for bus-connected embedded memories'', in Proc. Asia and South Pacific Design Automation Conf. (ASP-DAC), Yokohama, Jan. 2001, pp. 325-330

• [5]C -W Wang C -F Wu J -F Li C -W Wu T Teng K Chiu and H -P Lin ``A[5]C. W. Wang, C. F. Wu, J. F. Li, C. W. Wu, T. Teng, K. Chiu, and H. P. Lin, A built-in self-test and self-diagnosis scheme for embedded SRAM'', in Proc. 9th IEEE Asian Test Symp. (ATS),Taipei, Dec. 2000, pp. 45-50

• [6]D Appello F Corno M Giovinetto M Rebaudengo and M S Reorda ”A• [6]D. Appello, F. Corno, M. Giovinetto, M. Rebaudengo, and M. S. Reorda, A P1500 compliant BIST-Based approach ro embedded RAM diagnosis”, pp.97-102, MTDT, 2001.

• [7]J F Li H J H J B Ch C P S C W W C Ch S I Ch C Y• [7]J. F. Li, H. J. Huang, J. B. Chen, C. P. Su, C. W. Wu, C. Cheng, S. I. Chen, C. Y. Hwang, and H. P. Lin,”A hierarchical test methodology for systems on chip”, IEEE Micro, pp. 69-81, Sep./Oct., 2002.

f

52Jin-Fu LiEE, National Central University

• [8]S. Mourad and Y. Zorian,”Principles of Testing Electronic Systems”, John Wiley & Sons, 2000.