FUNCTIONAL RAM TESTING Christian LANDRAULT [email protected].

72
FUNCTIONAL RAM FUNCTIONAL RAM TESTING TESTING Christian LANDRAULT Christian LANDRAULT [email protected] [email protected]

Transcript of FUNCTIONAL RAM TESTING Christian LANDRAULT [email protected].

Page 1: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

FUNCTIONAL FUNCTIONAL RAM TESTINGRAM TESTING

Christian LANDRAULTChristian LANDRAULT

[email protected]@lirmm.fr

Page 2: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

SUMMARYSUMMARY

IntroductionIntroduction Memory modelingMemory modeling Failure mechanisms and fault Failure mechanisms and fault

modelingmodeling Test algorithms for RAMTest algorithms for RAM

Page 3: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

IntroductionIntroduction

Memories (esp. RAM) are at the Memories (esp. RAM) are at the forefront of commercial electronic forefront of commercial electronic designsdesigns

DRAMs are the technology driver DRAMs are the technology driver for the semiconductor industryfor the semiconductor industry

Memories are the most numerous Memories are the most numerous IPs used in SOC designs IPs used in SOC designs (hundreds ! and >90% of an SoC in (hundreds ! and >90% of an SoC in 2010)2010)

Page 4: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Main types of semiconductor Main types of semiconductor memory RAMs: Random Access memory RAMs: Random Access MemoriesMemories

Dynamic Random Acess Memory Dynamic Random Acess Memory (DRAM)(DRAM) Highest possible densityHighest possible density Slow access time (typically 20ns)Slow access time (typically 20ns) Information stored as charge on capacitor Information stored as charge on capacitor

and should be refreshedand should be refreshed Static Random Acess Memory (SRAM)Static Random Acess Memory (SRAM)

Fastest (typically 2ns)Fastest (typically 2ns) Information stored in cross coupled latchesInformation stored in cross coupled latches

100k

1M

10M

100M

1G

10G

82 86 90 94 98 02 06

1G512M

256M128M

64M16M

4M1M

256k

Number of MemoryNumber of MemoryCells per ChipCells per Chip

Page 5: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Memory testingMemory testing

Memory testing has to prove that Memory testing has to prove that the circuits under test behave as the circuits under test behave as designed, it consists of:designed, it consists of: Parametric tests which concern Parametric tests which concern

voltage/current levels and delays on voltage/current levels and delays on the IO pins of the chipthe IO pins of the chip

Functional testing including dynamic Functional testing including dynamic testingtesting

Page 6: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Parametric (electrical) Parametric (electrical) testingtesting

DC Parametric DC Parametric testingtesting Contact testContact test Power Power

consumptionconsumption Leakage testLeakage test Threshold testThreshold test Output drive Output drive

current testcurrent test Output short Output short

current testcurrent test

AC Parametric AC Parametric testingtesting Rise and fall timeRise and fall time Setup and hold timeSetup and hold time Delay testDelay test Speed testSpeed test

IIDDQDDQ testing (CMOS testing (CMOS memories only)memories only) Zero defect Zero defect

approachapproach Use to detect some Use to detect some

defects not handle defects not handle by functional testingby functional testing

Page 7: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

SUMMARYSUMMARY

IntroductionIntroduction Memory modelingMemory modeling Failure mechanisms and fault Failure mechanisms and fault

modelingmodeling Test algorithms for RAMTest algorithms for RAM

Page 8: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Functional RAM Chip Functional RAM Chip ModelModel

RefreshAddress

Address latch Column decoder Refresh logic

MemoryCell Array

Write driver

Data registerSense amplifiers

Rowdecoder

Data out Data in

R/W and CE

Vss

WL

BL BL

Vdd

6-devices SRAM cellpoly

single-device single-device DRAM cellDRAM cell

WLWL

BLBLCC

Vss

WL

BL BL

Vdd

6-device SRAM celldepletion

VssVss

WLWL

BLBL BLBL

VddVdd

6-device SRAM 6-device SRAM cellcell

CMOSCMOS

RAM write RAM write circuitcircuit

Data inData in

BLBL BLBL

WriteWrite

Two dimensional decoding schemeTwo dimensional decoding scheme(saves decoder and wiring area)(saves decoder and wiring area)• row decoder select row of cells row decoder select row of cells via WLvia WL• column decoder column decoder

Page 9: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Functional SRAM Chip Functional SRAM Chip ModelModel

RefreshAddress

Address latch Column decoder Refresh logic

MemoryCell Array

Write driver

Data registerSense amplifiers

Rowdecoder

Data out Data in

R/W and CE

Page 10: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Functional SRAM Chip Functional SRAM Chip ModelModel

Address

Address latch Column decoder

MemoryCell Array

Write driver

Data registerSense amplifiers

Rowdecoder

Data out CEData in

R/W and

Page 11: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

SUMMARYSUMMARY

IntroductionIntroduction Memory modelingMemory modeling Failure mechanisms and fault Failure mechanisms and fault

modelingmodeling Test algorithms for RAMTest algorithms for RAM

Page 12: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Failure, errors and faultsFailure, errors and faults

A system A system failurefailure occurs when the system occurs when the system behaviour is incorrectbehaviour is incorrect

Failures are cause by errorsFailures are cause by errors An An errorerror is a difference between the is a difference between the

fafaultyulty value and the golden one, this is value and the golden one, this is the manifestation of a faultthe manifestation of a fault

A A faultfault represents the physical difference represents the physical difference between a good and incorrect systembetween a good and incorrect system

Faults can be permanent or non-Faults can be permanent or non-permanentpermanent

Page 13: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Failure MechanismsFailure Mechanisms

CorrosionCorrosion Electromigration (burning out of wires due to Electromigration (burning out of wires due to

collision of electrons and Al grains)collision of electrons and Al grains) Bonding deterioration (open due to Bonding deterioration (open due to

interdiffusioninterdiffusion of materials i.e. Au-Al of materials i.e. Au-Al)) Ionic contamination (modification of threshold Ionic contamination (modification of threshold

vovolltagestages due to ion diffusion into transistor gate due to ion diffusion into transistor gate)) AlloyingAlloying (Al atom migration into Si) (Al atom migration into Si) Radiation and cosmic raysRadiation and cosmic rays (soft memory errors, (soft memory errors,

…)…) …………..

Page 14: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Functional faultsFunctional faults

Cell stuckCell stuck Driver stuckDriver stuck Read/write line stuckRead/write line stuck Chip-select line stuckChip-select line stuck Data line stuckData line stuck Open in data lineOpen in data line Shorts between data Shorts between data

lineslines Crosstalk between Crosstalk between

data linesdata lines

Address line stuckAddress line stuck Open in address lineOpen in address line Shorts between Shorts between

address linesaddress lines Open decoderOpen decoder Wrong accessWrong access Multiple accessMultiple access Cell can be set to 0 and Cell can be set to 0 and

not to 1 (or vice versa)not to 1 (or vice versa) Pattern sensitive Pattern sensitive

interaction between interaction between cellscells

Any wiring Any wiring connection in connection in the memorythe memory

Either a Either a memory cell memory cell

or a data or a data registerregister

Page 15: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Reduced Functional ModelReduced Functional Model

RefreshAddress

Address latch Column decoder Refresh logic

MemoryCell Array

Write driver

Data registerSense amplifiers

Rowdecoder

Data out Data in

R/W and CE

Address decoder

Memory Cell Array

Read / Write logic

Page 16: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Reduced Functional Model Reduced Functional Model (cntd)(cntd)

Address decoder

Memory cell array

Read/write logic

Address

Data

Page 17: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault Models: Address decoder Fault Models: Address decoder Fault AFFault AF

1. A certain address access no cell1. A certain address access no cell

2. A certain cell is never accessed2. A certain cell is never accessed

3. A certain address access 3. A certain address access

multiple cellsmultiple cells

4. A certain cell is accessed by 4. A certain cell is accessed by

multiple addressesmultiple addresses

Ax

Cx

Cx

CyAx

Ax

Ay

Cx

4 4 Address decoder Faults which cannot stand alone Address decoder Faults which cannot stand alone

((assuming same fault during read and write operations and assuming same fault during read and write operations and

no sequential behavior of the faulty decoder)no sequential behavior of the faulty decoder)

Page 18: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault Models: Address decoder Fault Models: Address decoder Fault AFFault AF

4 Combinations of 4 Combinations of Address decoder Faults Address decoder Faults Fault A: 1+2Fault A: 1+2

Fault B: 1+3Fault B: 1+3

Fault C: 2+4Fault C: 2+4

Fault D: 3+4Fault D: 3+4

Ax Cx

Cx

CyAy

Ax

Ax

Ay

Cx

Cy

Ax

Ay

Cx

Cy

Page 19: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Conditions for detecting Conditions for detecting address faults AFaddress faults AF

The March test should contain The March test should contain the two following march the two following march elementselements

(rx, … , wx)(rx, … , wx) (rx, … , wx)(rx, … , wx)

Page 20: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

FunctionalFunctional Memory Faults Memory Faults

A functional fault model is a non-empty A functional fault model is a non-empty set of fault primitivesset of fault primitives

A fault primitive is a difference between A fault primitive is a difference between the observed and the expected memory the observed and the expected memory behaviourbehaviour

A fault primitive is denoted by <S/F/R>A fault primitive is denoted by <S/F/R> S describes the sensitizing operation sequenceS describes the sensitizing operation sequence F describes the state stored in the faulty cellF describes the state stored in the faulty cell R describes the output of the read operationR describes the output of the read operation For example <1/0/-> is a stuck-at 1 and For example <1/0/-> is a stuck-at 1 and

<0w1/0/-> is a rising transition fault<0w1/0/-> is a rising transition fault

Page 21: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Taxonomy of Taxonomy of FunctionalFunctional Memory FaultsMemory Faults

Fault Primitive

C: Number of Cells O: Number of Operations

C=1Single Cell Fault

C>1Coupling Fault

C=22-Coupling Fault

C=33-Coupling Fault

0=<1Static Fault

O>1Dynamic Fault

O=22-op Fault

0=33-op Fault

Page 22: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Static and Dynamic faultsStatic and Dynamic faults

Static faults:Static faults: sensitisation needs only one sensitisation needs only one operation (Testable by common March operation (Testable by common March Tests)Tests) Static Single-Cell Faults (S1CF)Static Single-Cell Faults (S1CF) Static Two-Cell Faults (S2CF)Static Two-Cell Faults (S2CF) ……

Dynamic faultsDynamic faults: : sensitisation needs more sensitisation needs more than one operation (Not testable by than one operation (Not testable by common March Tests)common March Tests) Dynamic Single-Cell Faults (D1CF)Dynamic Single-Cell Faults (D1CF) Dynamic Two-Cell Faults (D2CF)Dynamic Two-Cell Faults (D2CF) ……

Page 23: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Stuck-at fault (SAF)S1CF: Stuck-at fault (SAF)

The logic value of (a line or) a cell The logic value of (a line or) a cell is always 0 (SA0) or 1 (SA1)is always 0 (SA0) or 1 (SA1)

To detect memory cell's SAFs:To detect memory cell's SAFs: SA0: Write 1 Read 1 (w1 r1)SA0: Write 1 Read 1 (w1 r1) SA1: Write 0 Read 0 (w0 r0)SA1: Write 0 Read 0 (w0 r0)

Page 24: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Transition FaultS1CF: Transition Fault

A cell fails to undergo a 0 A cell fails to undergo a 0 1 1 transition (TFtransition (TF

riserise) or a 1 ) or a 1 0 0

transition (TFtransition (TFfallfall

) when it is written) when it is written

To detect transition fault:To detect transition fault: TFTF

riserise : w0 w1 r1 : w0 w1 r1

TFTFfallfall

: w1 w0 r0 : w1 w0 r0

Page 25: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Read Disturb Faults S1CF: Read Disturb Faults (RDF)(RDF)

A Cell is said to have a A Cell is said to have a RDFRDF if the read if the read operation performed on the cell returns operation performed on the cell returns an incorrect value while changing the an incorrect value while changing the contents of the cell to the wrong valuecontents of the cell to the wrong value

To detectTo detect Read Disturb Fault Read Disturb Fault from each from each cell a 1 and a 0 should be read cell a 1 and a 0 should be read r0r0 r1r1

Page 26: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Deceptive Read S1CF: Deceptive Read Disturb Faults (DRDF)Disturb Faults (DRDF)

A Cell is said to have a A Cell is said to have a DRDFDRDF if the read if the read operation performed on the cell returns operation performed on the cell returns the expected value while changing the the expected value while changing the contents of the cell to the wrong valuecontents of the cell to the wrong value

To detect To detect Deceptive Read Disturb FaultDeceptive Read Disturb Fault each cell should be read twice each cell should be read twice successively. The first read sensitize the successively. The first read sensitize the fault and the second detects it fault and the second detects it r0r0r0r0 r1r1r1r1

Page 27: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Incorrect Read Faults S1CF: Incorrect Read Faults (IRF)(IRF)

A Cell is said to have a A Cell is said to have a IRFIRF if a read if a read operation performed on the cell operation performed on the cell returns the incorrect value while returns the incorrect value while keeping the correct stored value in keeping the correct stored value in the cellthe cell

To detect To detect Incorrect Read FaultIncorrect Read Fault from from each cell a 1 and a 0 should be read each cell a 1 and a 0 should be read r0r0 r1r1

Page 28: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S1CF: Write Disturb Faults S1CF: Write Disturb Faults (WDF)(WDF)

A Cell is said to have a A Cell is said to have a WDFWDF if a non if a non transition write operation causes a transition write operation causes a transition in the celltransition in the cell

To detect To detect Write Disturb FaultWrite Disturb Fault each cell each cell

should be read after a non-transition should be read after a non-transition

writewrite 0w0r00w0r0 1w1r11w1r1

Page 29: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault models: Coupling Fault models: Coupling Fault (2 cells)Fault (2 cells)

Implies two cells: the victim cell and the Implies two cells: the victim cell and the aggressor cellaggressor cell

Different kinds of coupling faults:Different kinds of coupling faults: Inversion coupling faultsInversion coupling faults Idempotent coupling faultsIdempotent coupling faults State coupling faultsState coupling faults Dynamic coupling faultsDynamic coupling faults Bridging faultsBridging faults …………....

Page 30: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: Inversion Coupling S2CF: Inversion Coupling FaultFault

Inversion Coupling Fault (CFInversion Coupling Fault (CFinin):): The content of the The content of the victim cell is inverted if the aggressor cell has a victim cell is inverted if the aggressor cell has a transitiontransition

According to the kind of transition (0 According to the kind of transition (0 1 or 1 1 or 1 0) 0) there is two possible CFthere is two possible CFinin types: types:

< < ; ; > < > < ; ; > > To detect CFTo detect CFinin between cell x (victim) and y between cell x (victim) and y

(aggressor)(aggressor) CFCFinin (y rise (y rise x inverted): w0x w0y w1y r0x. x inverted): w0x w0y w1y r0x.

CFCFinin (y fall (y fall x inverted): w0x w1y w0y r0x. x inverted): w0x w1y w0y r0x.

Page 31: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: S2CF: IdempotentIdempotent Coupling Coupling FaultFault

Idempotent Coupling Fault (CFIdempotent Coupling Fault (CFidid):): The victim is forced to The victim is forced to 0 or 1 if the aggressor has a 0 0 or 1 if the aggressor has a 0 1 or 1 1 or 1 0 transition 0 transition

According to the kind of transition (0 According to the kind of transition (0 1 or 1 1 or 1 0) 0) there is four possible CFthere is four possible CFidid types: types:

< < ; 0 > < ; 0 > < ; 0 > < ; 0 > < ; 1 > < ; 1 > < ; 1 > ; 1 > To detect CFTo detect CFidid between cell x (victim) and cell y between cell x (victim) and cell y

(aggressor)(aggressor) CFCFidid (y rise (y rise x=0): w1x w0y w1y r1x x=0): w1x w0y w1y r1x CFCFidid (y fall (y fall x=1): w0x w1y w0y r0x x=1): w0x w1y w0y r0x CFCFidid (y rise (y rise x=1): w0x w0y w1y r0x x=1): w0x w0y w1y r0x CFCFidid (y fall (y fall x=0): w1x w1y w0y r1x x=0): w1x w1y w0y r1x

Page 32: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: State Coupling FaultS2CF: State Coupling Fault

State Coupling Fault (CFState Coupling Fault (CFstst):): The coupled cell (victim) is The coupled cell (victim) is forced to 0 or 1 if the coupling cell (aggressor) is in a forced to 0 or 1 if the coupling cell (aggressor) is in a certain statecertain state

There is four possible CFThere is four possible CFstst types: types:

< 0 ; 0 > < 0 ; 1 > < 1 ; 0 > < 1 ; 1 >< 0 ; 0 > < 0 ; 1 > < 1 ; 0 > < 1 ; 1 > To detect CFTo detect CFstst between cell x (victim) and y (aggressor) between cell x (victim) and y (aggressor)

CFCFstst (y=0 (y=0 x=0): w1x w0y r1xx=0): w1x w0y r1x CFCFstst (y=0 (y=0 x=1): w0x w0y r0xx=1): w0x w0y r0x CFCFstst (y=1 (y=1 x=0): w1x w1y r1xx=0): w1x w1y r1x CFCFstst (y=1 (y=1 x=1): w0x w1y r0xx=1): w0x w1y r0x

Page 33: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: Dynamic Coupling S2CF: Dynamic Coupling Fault Fault

Dynamic Coupling Fault (CFDynamic Coupling Fault (CFdyndyn):): The victim The victim is forced to 0 or 1 if the aggressor cell has is forced to 0 or 1 if the aggressor cell has a read or write operationa read or write operation

More general case of the Idempotent More general case of the Idempotent Coupling Fault (CFCoupling Fault (CFidid) because it can be ) because it can be sensitized by any read or write operationsensitized by any read or write operation

There are four CFThere are four CFdyndyn faults faults

<r0 <r0 w0;0> <r0 w0;0> <r0 w0;1> <r1 w0;1> <r1 w1;0> <r1 w1;0> <r1 w1;1> w1;1>

Page 34: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: Write (read) disturb S2CF: Write (read) disturb coupling fault coupling fault

Write disturb coupling (CFWrite disturb coupling (CFwdwd):): A cell is said to A cell is said to have a CFwd if a non transition write perform have a CFwd if a non transition write perform on the victim results in a transition when the on the victim results in a transition when the aggressor is set into a logic stateaggressor is set into a logic state

There are four types of CFThere are four types of CFwdwd faults faults

Read disturb coupling (CFRead disturb coupling (CFrdrd):): Two cells are said Two cells are said to have a CFrd if a read performed on the to have a CFrd if a read performed on the victim destroys the data stored in the victim if victim destroys the data stored in the victim if a given state is present in the aggressora given state is present in the aggressor

There are four types of CFThere are four types of CFrdrd faults faults

Page 35: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: Incorrect read S2CF: Incorrect read coupling fault coupling fault

Incorrect read coupling faultIncorrect read coupling fault (CF(CFirir):): Two cells are said to have an CFir if a Two cells are said to have an CFir if a read performed on the victim returns read performed on the victim returns the incorrect logic value when the the incorrect logic value when the aggressor is sent into a given stateaggressor is sent into a given state

There are four types of CFThere are four types of CF irir faults faults

Page 36: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

S2CF: Deceptive read S2CF: Deceptive read disturb coupling fault disturb coupling fault

Deceptive read disturb coupling faultDeceptive read disturb coupling fault (CF(CFdrdr):): A cells is said to have an CFdr if A cells is said to have an CFdr if a read performed on the victim a read performed on the victim returns the correct logic value and returns the correct logic value and changes the content of the victim, changes the content of the victim, when the aggressor is sent into a when the aggressor is sent into a given stategiven state

There are four types of CFThere are four types of CFdrdr faults faults

Page 37: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault models: Bridging Faults Fault models: Bridging Faults (BF)(BF)

A short between cells or lines (2 or more)A short between cells or lines (2 or more) This is a bidirectional fault caused by logic level rather than a This is a bidirectional fault caused by logic level rather than a

transitiontransition Two sorts of bridging faults (BFs) exist:Two sorts of bridging faults (BFs) exist:

AND-type (ABF): the shorted cells/lines take the AND value of their fault-AND-type (ABF): the shorted cells/lines take the AND value of their fault-free values (four possible ABFs)free values (four possible ABFs)

OR-type (OBF): the shorted cells/lines take the OR value of their fault-OR-type (OBF): the shorted cells/lines take the OR value of their fault-free values (four possible OBFs)free values (four possible OBFs)

Can be made equivalent to a number of linked CFs, i.e.Can be made equivalent to a number of linked CFs, i.e. "Cell x is the victim of cell y" and "Cell y is the victim of cell x""Cell x is the victim of cell y" and "Cell y is the victim of cell x" The faults are linked. It is possible that they will hide each other.The faults are linked. It is possible that they will hide each other.

To detect a BF, it might be necessary to write a certain pattern on To detect a BF, it might be necessary to write a certain pattern on adjacent memory cells, see checkerboard algorithm using adjacent memory cells, see checkerboard algorithm using (“010101…”) pattern.(“010101…”) pattern.

Page 38: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Pattern Sensitive (PSF)Pattern Sensitive (PSF)

The victim cell is forced to 0 or 1 if a certain number of The victim cell is forced to 0 or 1 if a certain number of neighbors show a particular patternneighbors show a particular pattern

The PSF is the most general k-coupling fault with k=nThe PSF is the most general k-coupling fault with k=n With the Neighborhood Pattern Sensitive Fault (NPSF), the With the Neighborhood Pattern Sensitive Fault (NPSF), the

neighborhood is limited to all the cells in a single position neighborhood is limited to all the cells in a single position surrounding the base cellsurrounding the base cell

Equivalent to an N-coupling fault involving more than one Equivalent to an N-coupling fault involving more than one aggressor (up to 8 adjacent locations)aggressor (up to 8 adjacent locations)

Extremely hard to detectExtremely hard to detect For each memory cell: the effect of all the possible For each memory cell: the effect of all the possible

combinations (2combinations (288) of the adjacent cells should be tested.) of the adjacent cells should be tested.

Page 39: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Neighborhood Pattern Sensitive Neighborhood Pattern Sensitive (NPSF)(NPSF)

In practice two types of NPSF are usedIn practice two types of NPSF are used

The type-1 NPSF with 4 neighborhood cells The type-1 NPSF with 4 neighborhood cells (north, west, south, east)(north, west, south, east)

The type-2 NPSF with 8 neighborhood cellsThe type-2 NPSF with 8 neighborhood cells

Base cellBase cellType-1 neigh-Type-1 neigh-borhood cellborhood cell

Base cellBase cellType-2 neigh-Type-2 neigh-borhood cellborhood cell

Type-1Type-1 Type-2Type-2

Page 40: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Neighborhood Pattern Sensitive Neighborhood Pattern Sensitive (NPSF)(NPSF)

Active NPSF (ANPSF):Active NPSF (ANPSF): change of the base cell due to a transition in the neighborhood cellschange of the base cell due to a transition in the neighborhood cells Each base cell must be read in state 0 and in state 1, for all possible Each base cell must be read in state 0 and in state 1, for all possible

changes in the neighborhood patternchanges in the neighborhood pattern Passive NPSF (PNPSF):Passive NPSF (PNPSF):

the change of the base cell is impossible due to a certain the change of the base cell is impossible due to a certain neighborhood cells configurationneighborhood cells configuration

Each base cell must be written and read in state 0 and in state 1, for Each base cell must be written and read in state 0 and in state 1, for all permutations in the neighborhood patternall permutations in the neighborhood pattern

Static NPSF (SNPSF):Static NPSF (SNPSF): The content of the base cell is forced to a certain state due to a The content of the base cell is forced to a certain state due to a

certain neighborhood patterncertain neighborhood pattern Each base cell must be read in state 0 and in state 1, for all Each base cell must be read in state 0 and in state 1, for all

permutations in the neighborhood patternpermutations in the neighborhood pattern

Page 41: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Dynamic Fault models: examplesDynamic Fault models: examples

Sense Amplifier (SA) Recovery FaultSense Amplifier (SA) Recovery Fault The SA saturates after a long sequence of 0s or 1sThe SA saturates after a long sequence of 0s or 1s

Write Recovery Fault (addressing fault in the Write Recovery Fault (addressing fault in the decoder)decoder) Write followed by a read/write to another location Write followed by a read/write to another location

affects the previously accessed locationaffects the previously accessed location

Detection needs At-Speed testing !!Detection needs At-Speed testing !!

Page 42: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Single-Cell Dynamic Fault Models: Single-Cell Dynamic Fault Models: Dynamic RDF, IRF and DRDFDynamic RDF, IRF and DRDF

Definition similar to the static Definition similar to the static Read Disturb Read Disturb FaultFault, , Incorrect Read FaultIncorrect Read Fault and and Deceptive Read Deceptive Read Disturb FaultsDisturb Faults with an initial write follows by with an initial write follows by one or more read operationone or more read operation

dRDF:dRDF: A Cell is said to have a dRDF if a write followed by A Cell is said to have a dRDF if a write followed by one or more read performed on the cell returns (on the one or more read performed on the cell returns (on the last read) an incorrect value while changing the last read) an incorrect value while changing the contents of the cell to the wrong valuecontents of the cell to the wrong value

dIRF:dIRF: A Cell is said to have a dIRF if a write followed by A Cell is said to have a dIRF if a write followed by one or more read performed on the cell returns (on the one or more read performed on the cell returns (on the last read) incorrect value while keeping the correct last read) incorrect value while keeping the correct stored value in the cellstored value in the cell

dDRDF: dDRDF: A Cell is said to have a dDRRF if a write followed A Cell is said to have a dDRRF if a write followed by one or more read performed on the cell returns (on by one or more read performed on the cell returns (on the last read) the expected value while changing the the last read) the expected value while changing the contents of the cell to the wrong valuecontents of the cell to the wrong value

Page 43: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault models: Fault models: Data Retention Data Retention (DRF)(DRF)

A cell fails to retain its logic value after some timeA cell fails to retain its logic value after some time Due to a defective pull-up within a SRAM cellDue to a defective pull-up within a SRAM cell A cell loses its value due to leakage current: the cell A cell loses its value due to leakage current: the cell

lose its charge due to this leakage currentlose its charge due to this leakage current Two different DRFs exist (loss of 1 and loss of 0) and Two different DRFs exist (loss of 1 and loss of 0) and

may coexistmay coexist To detect DRF => a delay has to be inserted before To detect DRF => a delay has to be inserted before

reading back memory content (usually ~ 10-100 ms)reading back memory content (usually ~ 10-100 ms) Can be easily add to any test algorithmCan be easily add to any test algorithm Test time increase dramatically !Test time increase dramatically !

Page 44: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Fault models: linked faultsFault models: linked faults

Linked faults are two or more faults (coupling faults) that Linked faults are two or more faults (coupling faults) that affect the same cellaffect the same cell

Can be of the same type ( i.e. CF x->y and CF z->y )Can be of the same type ( i.e. CF x->y and CF z->y )or of different types ( i.e. CF x->y and TFor of different types ( i.e. CF x->y and TFriserise y ) y )

They can hide each other (They can hide each other (fault maskingfault masking): Extremely difficult to ): Extremely difficult to detectdetect

ii jj kk ll ii kk ll

<<;1>;1>

<<;0>;0> <<;0>;0><<;1>;1>

2 CF2 CFidid faults faults 2 CF2 CFidid linked faults linked faults

Page 45: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Relation between Relation between functional faults and fault functional faults and fault modelsmodels

SAFSAF

CFCF

Shorts between data Shorts between data lineslines

Crosstalk between Crosstalk between data linesdata lines TFTF

Cell can be set to 0 Cell can be set to 0 and not to 1 (or vice and not to 1 (or vice versa)versa)

AFAF

Address line stuckAddress line stuck Open in address lineOpen in address line Shorts between Shorts between

address linesaddress lines Open decoderOpen decoder Wrong accessWrong access Multiple accessMultiple access

Cell stuckCell stuck Driver stuckDriver stuck Read/write line stuckRead/write line stuck Chip-select line stuckChip-select line stuck Data line stuckData line stuck Open in data lineOpen in data line

NPSFNPSF Pattern sensitive Pattern sensitive

interaction between interaction between cellscells

Page 46: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Relation between functional Relation between functional faults and fault models faults and fault models (examples)(examples)

Vss

WL

BL BL

Vdd

11

2233

44

55 66

77

1, 2, 1, 2, 33: : SA0SA0 44: : AF for cells AF for cells

after the openafter the open 5, 6: 5, 6: State State

Coupling FaultsCoupling Faults 7: 7: SAF (depending SAF (depending

on the cell on the cell content and the content and the technology)technology)

Page 47: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

dynamic Read Destructive Faultdynamic Read Destructive Faultin the core cell in the core cell [ETS04][ETS04]

Defect 1Defect 1

Defect 1 involves a dynamic Defect 1 involves a dynamic Read Destructive FaultRead Destructive Fault

I / O DATAI / O DATA

R O

WR

O W

DE

CO

DE

RD

EC

OD

ER

MEMORYMEMORY

ARRAYARRAY

C O L U M NC O L U M N

D E C O D E RD E C O D E R

Tn3Tn3

Tn2Tn2

Tn1Tn1

Tp2Tp2

Tp1Tp1

SS SBSB Tn4Tn4

WLWL

BLBBLBBLBL

DefectDefect Fault Fault ModelModel

Min Min Res(kRes(k))

11 dRDFdRDF ~130~130

22 RDF; DRDFRDF; DRDF ~8~8

33 RDF; DRDFRDF; DRDF ~3~3

44 TFTF ~25~25

55 IRF; TFIRF; TF ~100~100

66 TFTF ~2000~2000

Page 48: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

dynamic Read Destructive Faultdynamic Read Destructive Faultin the core cellin the core cell

Lower resistive size of Defect 1Lower resistive size of Defect 1 more read operations are required to more read operations are required to sensitizesensitize the fault the fault

w0 r0 r0 r0 r0 r0

Page 49: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

dynamic Read Destructive Faultdynamic Read Destructive Faultin the core cellin the core cell

Detection of dRDF as function of resistance value, cycle time and number of read operation

0

2

4

6

8

10

1,6 1,8 2 2,5 3 3,5 4 6 8 10

Cycle time (ns)

R (

MO

hm)

w-r

w-r-r

w-r-r-r

w-r-r-r-r

w-r-r-r-r-r

No Fault

Page 50: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Validity of fault modelsValidity of fault models

Use of Inductive Fault Analysis at the Use of Inductive Fault Analysis at the layout levellayout level Generate defect sizes, location and layers Generate defect sizes, location and layers

(according to what may really happen in the (according to what may really happen in the fab.)fab.)

Place the defect on a model of the layoutPlace the defect on a model of the layout Extract the schematic and electrical Extract the schematic and electrical

parameters for the defective cellparameters for the defective cell Deduce and check possible fault modelsDeduce and check possible fault models

Results depend on the used technology Results depend on the used technology and fab. processesand fab. processes

14,8%14,8%17,8%17,8%DRFDRF

3,3%3,3%0%0%ICFICF

13,2%13,2%9,9%9,9%SCFSCF

7,0%7,0%0%0%TFTF

11,9%11,9%21,0%21,0%SOFSOF

49,8%49,8%51,3%51,3%SAFSAF

<9<9mm<2<2mmSpot SizeSpot Size

Page 51: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

SUMMARYSUMMARY

IntroductionIntroduction Memory modelingMemory modeling Failure mechanisms and fault Failure mechanisms and fault

modelingmodeling Test algorithms for RAMTest algorithms for RAM

Page 52: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test Algorithms: notations Test Algorithms: notations usedused

: indicates address ascending order: indicates address ascending order

: indicates address descending order: indicates address descending order

w0 : write 0 at current locationw0 : write 0 at current location

w1 : write 1 at current locationw1 : write 1 at current location

r0 : read current location, expecting a 0r0 : read current location, expecting a 0

r1 : read current location, expecting a 1r1 : read current location, expecting a 1

(….): algorithm element(….): algorithm element

{(…),(…),…,(…)}: full algorithm{(…),(…),…,(…)}: full algorithm

Page 53: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithmsTest algorithms

Full Full Behavioural test is Behavioural test is definitively definitively too consuming (3.n.2too consuming (3.n.2nn))

Classical and early memory testing Classical and early memory testing methods with test time proportional methods with test time proportional toto n (zero-one, checkerboard, …)n (zero-one, checkerboard, …) nn2 2 and n.logand n.log22(n) (walking1/0, ping-pong, (n) (walking1/0, ping-pong,

GalGalpatpat,, Galcol, Galcol, …) …)

Page 54: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithm: Zero-OneTest algorithm: Zero-One

This minimal test consists of writing 0s and This minimal test consists of writing 0s and 1s in the memory1s in the memory Step1: write 0 in all cellsStep1: write 0 in all cells Step2: read all cells (0 expected)Step2: read all cells (0 expected) Step3: write 1 in all cellsStep3: write 1 in all cells Step4: read all cells (1 expected)Step4: read all cells (1 expected)

O(n)O(n) test test Fault coverage:Fault coverage:

Not all AFs detectedNot all AFs detected SAFs detected if the adress decoder is fault freeSAFs detected if the adress decoder is fault free Not all TFs and CFs detectedNot all TFs and CFs detected

Page 55: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithm: Test algorithm: CheckerboardCheckerboard

Cell are divided in two groupsCell are divided in two groups Step1: write 1 in all green cells and 0Step1: write 1 in all green cells and 0 in pink cellsin pink cells Step2: read all cellsStep2: read all cells Step3: write 0 in all green cells and 1 in pink cellsStep3: write 0 in all green cells and 1 in pink cells Step4: read all cellsStep4: read all cells

O(n)O(n) test test Fault coverage:Fault coverage:

Not all AFs detectedNot all AFs detected SAFs detected if the adress decoder is fault freeSAFs detected if the adress decoder is fault free Not all TFs and CFs detectedNot all TFs and CFs detected

This test is able to detect bridging faultsThis test is able to detect bridging faults

Page 56: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithms: GALPAT Test algorithms: GALPAT and Walking 1/0and Walking 1/0

Memory is filled with 0s (or 1s) except for the Memory is filled with 0s (or 1s) except for the base-cell which contains a 1 (0)base-cell which contains a 1 (0)

During theDuring the test the base cell walks through the test the base cell walks through the memorymemory

Difference between GALPAT and W 1/0 is in Difference between GALPAT and W 1/0 is in reading the base cell reading the base cell

0 0 0 0 0 0 0 0

0 1 0 0 1 0 0 0

0 0 0 0 0 0 0 0

Walking 1/0Walking 1/0

0 0 0 0 0 0

0 1 00 1 0

0 0 00 0 0

GALPATGALPAT

Page 57: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithms: GALPAT Test algorithms: GALPAT and Walking 1/0and Walking 1/0

All AFs are detected and locatedAll AFs are detected and located All SAFs are detected and locatedAll SAFs are detected and located All TFs are detected and locatedAll TFs are detected and located All CFs are also detected and locatedAll CFs are also detected and located But both are But both are O(nO(n22)) tests tests other tests have been proposed as a shorter other tests have been proposed as a shorter

alternative (0(nalternative (0(n3/23/2):): Sliding diagonalSliding diagonal Butterfly (only neighboorhood cells of the base cell are read)Butterfly (only neighboorhood cells of the base cell are read) GALCOLGALCOL

1 0 0 0 00 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 1

0 0 1 0 00 0 0 1 00 0 0 0 11 0 0 0 00 1 0 0 0

0 1 0 0 00 0 1 0 00 0 0 1 00 0 0 0 11 0 0 0 0

Page 58: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test algorithms test timeTest algorithms test time

Number of operationsNumber of operations

nn nn n.logn.log22nn nn2 2 (hr!!)(hr!!)

1Mb1Mb 0.0630.063 1.261.26 18.3318.33

16Mb16Mb 1.011.01 24.1624.16 4691.34691.3

256Mb256Mb 16.1116.11 451451 1200959.91200959.9

2Gb2Gb 128.9128.9 3994.43994.4 76861433.776861433.7

8774 Years !!8774 Years !!

Page 59: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March testsMarch tests

The test is "marching" through the The test is "marching" through the memorymemory

The test is composed of March The test is composed of March elements represented between ()elements represented between ()

March tests are the simplest testMarch tests are the simplest tests s (optimal ?)(optimal ?) to detect most of the to detect most of the functional faultsfunctional faults

Page 60: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March tests: March tests: example of example of MATS++MATS++

{{(w0); (w0); (r0,w1); (r0,w1); (r1,w0,r0)}(r1,w0,r0)}

For i=0 to n-1For i=0 to n-1 Write 0 in cell CWrite 0 in cell Cii

For i=0 to n-1For i=0 to n-1 Read cell CRead cell Cii and check its content (0 expected) and check its content (0 expected) Write 0 in cell CWrite 0 in cell Cii

For i=n-1 to 0 For i=n-1 to 0 Read cell CRead cell Cii and check its content (1 expected) and check its content (1 expected) Write 0 in cell CWrite 0 in cell Cii Read cell CRead cell Cii and check its content (0 expected) and check its content (0 expected)

Page 61: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March tests: March tests: example of example of MATS++MATS++

{{(w0); (w0); (r0,w1); (r0,w1); (r1,w0,r0)}(r1,w0,r0)}

Takes 6n operations when used bit-Takes 6n operations when used bit-wisewise

All SAFs are detected All SAFs are detected All AFs unlinked with TFs are detectedAll AFs unlinked with TFs are detected All AFs linked with TFs are detectedAll AFs linked with TFs are detected All TFs are detectedAll TFs are detected

00 11

Page 62: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March test summaryMarch test summary

Name Ref. algorithm

MATS [NAI79] { (w0); (r0,w1);(r1)}

MATS+ [ABA83] {(w0);(r0,w1); (r1,w0)}

MATS++ [VAN91] {(w0);(r0,w1);(r1,w0,r0)}

March X [VAN91] {(w0);(r0,w1);(r1,w0);(r0)}

March C- [MAR82] {(w0);(r0,w1);(r1,w0);(r0,w1);(r1,w0);(r0)}

March A [SUK81] {(w0);(r0,w1,w0,w1);(r1,w0,w1);(r1,w0,w1,w0);(r0,w1,w0)}

March Y [VAN91] {(w0);(r0,w1,r1);(r1,w0,r0);(r0)}

March B [SUK81] {(w0);(r0,w1,r1,w0,r0,w1);(r1,w0,w1);(r1,w0,w1,w0); (r0,w1,w0)}

March GS [VAN93] {(w0);(r0,w1,r1,w0,w1);(r1,w0,r0,w1);(r1,w0,w1,w0); (r0,w1,r1,w0);Del;(r0,w1,r1);Del;(r1,w0,r0)}

March M [MIK96] {(w0);(r0,w1,r1,w0);(r0);(r0,w1);(r1);(r1,w0,r0,w1,);(r1);(r1,w0)}

March LR [VAN96] {(w0);(r0,w1);(r1,w0,r0,w1);(r1,w0);(r0,w1,r1,w0,);(r0)}

March U [VAN97] {(w0);(r0,w1,w0,w1,r1);(r1,w0,w1,w0,r0);(r0,w1,w0,w1,r1); (r1,w0,w1,w0,r0; (r0)}

March LA [VAN99] {(w0);(r0,w1,r1,w0);(r0,w1); (r1,w0,r0,w1); (r1,w0)}

March SR [VAN00] { (w0);(r0,w1,r1,w0);(r0,r0); );(w1), (r1,w0,r0,w1); (r1,r1)}

Name Ref. algorithm

MATS [NAI79] { (w0); (r0,w1);(r1)}

MATS+ [ABA83] {(w0);(r0,w1); (r1,w0)}

MATS++ [VAN91] {(w0);(r0,w1);(r1,w0,r0)}

March X [VAN91] {(w0);(r0,w1);(r1,w0);(r0)}

March C- [MAR82] {(w0);(r0,w1);(r1,w0);(r0,w1);(r1,w0);(r0)}

March A [SUK81] {(w0);(r0,w1,w0,w1);(r1,w0,w1);(r1,w0,w1,w0);(r0,w1,w0)}

March Y [VAN91] {(w0);(r0,w1,r1);(r1,w0,r0);(r0)}

March B [SUK81] {(w0);(r0,w1,r1,w0,r0,w1);(r1,w0,w1);(r1,w0,w1,w0); (r0,w1,w0)}

March GS [VAN93] {(w0);(r0,w1,r1,w0,w1);(r1,w0,r0,w1);(r1,w0,w1,w0); (r0,w1,r1,w0);Del;(r0,w1,r1);Del;(r1,w0,r0)}

March M [MIK96] {(w0);(r0,w1,r1,w0);(r0);(r0,w1);(r1);(r1,w0,r0,w1,);(r1);(r1,w0)}

March LR [VAN96] {(w0);(r0,w1);(r1,w0,r0,w1);(r1,w0);(r0,w1,r1,w0,);(r0)}

March U [VAN97] {(w0);(r0,w1,w0,w1,r1);(r1,w0,w1,w0,r0);(r0,w1,w0,w1,r1); (r1,w0,w1,w0,r0; (r0)}

March LA [VAN99] {(w0);(r0,w1,r1,w0);(r0,w1); (r1,w0,r0,w1); (r1,w0)}

March SR [VAN00] { (w0);(r0,w1,r1,w0);(r0,r0); );(w1), (r1,w0,r0,w1); (r1,r1)}

March SS [HAM02] {(w0);(r0,r0,w0,r0,w1);(r1,r1,w1,r1,w0);(r0,r0,w0,r0,w1); (r1,r1,w1,r1,w0; (r0)}

Page 63: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March test Fault Coverage March test Fault Coverage (example)(example)

AlgorithAlgorithmm

Fault CoverageFault CoverageOperatOperat

ion ion countcount

SSAAFF

AFAF TFTF CFCFinin

CFiCFidd

CFCFdydynn

SCSCFF

Linked faultsLinked faults

MATSMATS AlAlll

SomeSome 4.n4.n

MATS+MATS+ AlAlll

AllAll 5.n5.n

MATS+MATS+++

AlAlll

AllAll AllAll 6.n6.n

March March XX

AlAlll

AllAll AllAll AllAll 6.n6.n

March March C-C-

AlAlll

AllAll AllAll AllAll AllAll AllAll AllAll 10.n10.n

March March AA

AlAlll

AllAll AllAll AllAll All linked CFids, some CFins All linked CFids, some CFins linked with CFidslinked with CFids 15.n15.n

March March YY

AlAlll

AllAll AllAll AllAll All TFs linked with CFinsAll TFs linked with CFins 8.n8.n

March March BB

AlAlll

AllAll AllAll AllAllAll linked CFids, all TFs linked All linked CFids, all TFs linked

with CFids or CFins, some with CFids or CFins, some CFins linked with CFidsCFins linked with CFids

17.n17.n

Page 64: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

March test Fault Coverage March test Fault Coverage (example for single and two cell (example for single and two cell FFMs in %)FFMs in %)

AlgorithAlgorithmm

Single-Cell FFMsSingle-Cell FFMs Two-cell FFMsTwo-cell FFMsOperatOperat

ion ion countcountSFSF TFTF WW

DFDFRDRDFF

DRDRDFDF IRFIRF

CFCF

ststCFCFdsds

CFCF

trtrCFCFwdwd

CFCF

rdrd

CFCFdrdrdd

CFCF

irir

MATS+MATS+ 101000

5050 --101000

--101000

5050 2525 2525 -- 5050 -- 5050 5.n5.n

March March BB

101000

101000

--101000

--101000

7575 6262 5050 -- 5050 -- 5050 17.n17.n

March March UU

101000

101000

--101000

--101000

101000

6666 101000

--101000

--101000 13.n13.n

March March C-C-

101000

101000

--101000

--101000

101000

6666 101000

--101000

--101000 10.n10.n

March March LRLR

101000

101000

--101000

--101000

101000

6666 101000

--101000

--101000 14.n14.n

March March SRSR

101000

101000

--101000

101000

101000

101000

6666 101000

--101000

7575 101000 14.n14.n

March March SSSS

101000

101000

101000

101000

101000

101000

101000

101000

101000

101000

101000

101000

101000 22.n22.n

Page 65: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Testing of Neighborhood Testing of Neighborhood Pattern-Sensitive FaultsPattern-Sensitive Faults

Active NPSF (ANPSF):Active NPSF (ANPSF): Each base cell must be read in state 0 and in state 1, for all Each base cell must be read in state 0 and in state 1, for all

possible transitions in the neighborhood patternpossible transitions in the neighborhood pattern (k-1).2(k-1).2k k possible patterns, (type-1: k=5, type-2: k=9)possible patterns, (type-1: k=5, type-2: k=9)

Passive NPSF (PNPSF):Passive NPSF (PNPSF): Each base cell must be written and read in state 0 and in Each base cell must be written and read in state 0 and in

state 1, for all permutations in the neighborhood patternstate 1, for all permutations in the neighborhood pattern 22k k possible patternspossible patterns

Static NPSF (SNPSF):Static NPSF (SNPSF): Each base cell must be read in state 0 and in state 1, for all Each base cell must be read in state 0 and in state 1, for all

permutations in the neighborhood patternpermutations in the neighborhood pattern 22k k possible patternspossible patterns

Page 66: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Testing of Neighborhood Testing of Neighborhood Pattern-Sensitive FaultsPattern-Sensitive Faults

It is essential to minimize the number of It is essential to minimize the number of writes during NPSF testingwrites during NPSF testing

SNPSF patterns are produced following SNPSF patterns are produced following an Hamiltonian sequence (hamiltonian an Hamiltonian sequence (hamiltonian distance of 1 between patterns, Gray distance of 1 between patterns, Gray code for example): k+2code for example): k+2kk-1 writes-1 writes

ANPSF and PNPSF patterns are ANPSF and PNPSF patterns are produced following an Eulerian produced following an Eulerian sequence : k+k.2sequence : k+k.2kk writes writes

Page 67: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Testing of Neighborhood Testing of Neighborhood Pattern-Sensitive FaultsPattern-Sensitive Faults

NNumber of writes umber of writes further reduced by testing further reduced by testing the neighborhoods simultaneouslythe neighborhoods simultaneously

Tilling method: number of Tilling method: number of writes divided by kwrites divided by k

Two-group methodTwo-group method (type-(type-1 only): number of writes 1 only): number of writes divided by 4divided by 4

B

a

bd

c

Group 1Group 1 Group 2Group 2

Page 68: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Basic NPSF location Basic NPSF location algorithmalgorithm

write base-cells with 0;write base-cells with 0;looploop

apply a pattern;apply a pattern; {it could change the base-cell from 0 to 1}{it could change the base-cell from 0 to 1}

read base-cell;read base-cell;endloop;endloop;write base-cells with 1;write base-cells with 1;looploop

apply a pattern;apply a pattern; {it could change the base-cell from 1 to 0}{it could change the base-cell from 1 to 0}

read base-cell;read base-cell;endloop;endloop;

Page 69: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Basic NPSF detection Basic NPSF detection algorithmalgorithm

write base-cells with 0;write base-cells with 0;looploop

apply a pattern; {it could change the base-cell from 0 to 1} apply a pattern; {it could change the base-cell from 0 to 1} read base-cell;read base-cell;

endloop;endloop;write base-cells with 1;write base-cells with 1;looploop

apply a pattern; {it could change the base-cell from 1 to 0}apply a pattern; {it could change the base-cell from 1 to 0}endloop;endloop;read base-cell;read base-cell;

Only valid for ANPSF or SNPSF for which no Only valid for ANPSF or SNPSF for which no transition is needed in the base celltransition is needed in the base cell

Tilling method cannot be used as base cells are Tilling method cannot be used as base cells are changingchanging

Page 70: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

NPSF testing algorithm NPSF testing algorithm summarysummary

AlgorithmAlgorithm LocationLocation Fault coverageFault coverage Operation Operation countcountSAFSAF TFTF NPSFNPSF

AA PP SS

TDANPSF1GTDANPSF1G NN LL DD 163.5 n163.5 n

TLAPNPSF1GTLAPNPSF1G YY LL LL LL LL LL 195.5 n195.5 n

TLAPNPSF2TTLAPNPSF2T YY LL LL LL LL 5122 n5122 n

TLAPNPSF1TTLAPNPSF1T YY LL LL LL LL 194 n194 n

TLSNPSF1GTLSNPSF1G YY LL LL 43.5 n43.5 n

TLSNPSF1TTLSNPSF1T YY LL LL 39.2 n39.2 n

TLSNPSF2TTLSNPSF2T YY LL LL 569.8 n569.8 n

TDSNPSF1GTDSNPSF1G NN LL DD 36.125 n36.125 n

DDetectietection or on or

LLocatioocationn

AActivective PPassiveassive SStatictatic

type-type-11oror

type-type-22TTilling illing or 2-or 2-

GGroup roup methodmethod

Page 71: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test of Word-Oriented Test of Word-Oriented MemoriesMemories

For SAFs and TFs which involve only one For SAFs and TFs which involve only one cell use data background and its cell use data background and its complement instead of 0 and 1complement instead of 0 and 1

MATS+ for a 4 bit memoryMATS+ for a 4 bit memory

Data background = 0101Data background = 0101

{{(w0101); (w0101); (r0101,w1010); (r0101,w1010); (r1010,w0101)}(r1010,w0101)}

Page 72: FUNCTIONAL RAM TESTING Christian LANDRAULT landraul@lirmm.fr.

Test of Word-Oriented Test of Word-Oriented MemoriesMemories

For CFs involving cells in different words use data For CFs involving cells in different words use data background and its complement instead of 0 and 1background and its complement instead of 0 and 1

For CFs involving cells in the same word:For CFs involving cells in the same word: If the write operation dominates the CF, no problemIf the write operation dominates the CF, no problem If the CF dominates the write operation, CFIf the CF dominates the write operation, CF inin are detected but are detected but

for CFid data background has to be replaced by B data for CFid data background has to be replaced by B data backgroundbackground

For SCFs and BFs data background has also to be For SCFs and BFs data background has also to be replaced by logreplaced by log22B+1 data backgroundB+1 data background