22
Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Embed Size (px)

Citation preview

Page 1: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults »

Andrey GonzalezNegin Sahraii

Test de systèmes ÉlectroniquesELE6306

Page 2: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Introduction

• NPSF important pour tester DRAMs.

• NPSF exige un temps de test long (plus de 100N opérations de lecture/écriture) où N est la taille de l’adresse.

•Il y a différentes sortes de test pour NPSF mais avec un bas taux de couverture.

•La méthode MARCH traditionnel a un bon taux de couverture mais il ne détecte pas tous les NPFS.

•La méthode MARCH en utilisant Backgrounds multiples est proposée [1].Cette méthode détecte statique NPSF, passive NPFS et active NPFS

•Avantages: Temps de test plus court, taux de couverture complet pour NPSF, facile implémentation BIST

[1] K.Cheng, M. Tsai et C. Wu. Université National Tsing Hu

Page 3: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Model de fautes NPFS

• Un “Neighborhood pattern sensitive fault” arrive lorsque le contenu d’une cellule de la mémoire ou la capacité de changement de la cellule est influencé par certain pattern d’autres cellules voisines dans la mémoire.

•NPFS Statique (SNPSF): Il arrive si la cellule de base est forcé à certain état en raison de l’apparition de certain pattern dans les cellules voisines.

•NPFS Passif (PNPSF): Il arrive si la cellule de base ne peut pas changer de l’état 0 à 1 ou 1 à 0 en raison de l’apparition de certain pattern dans les cellules voisines.

•NPFS Actif (ANPSF): Il arrive si la cellule de base est forcé à certain état lorsque un transition arrive dans un seule cellule voisine tandis les autres cellules voisines prendre un certain pattern .

Page 4: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Model de fautes NPFS

Page 5: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme March

•Les algorithmes MARCH Traditionnelles couvrent un petit pourcentage des NPSFs.

•Lorsque on lit ou écrit la cellule base (B), toutes le cellules avec adresse plus haute que B ont le même état. La même chose arrive avec les cellules avec adresse plus basse que B. Exemple:

•La majeure partie des NPSFs ne peut pas être activé par le test MARCH.

•Le TC est plus petit que 30% si l’algorithme MARCH utilise seulement backgrounds de données solides.

Page 6: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme March

•Si on utilise backgrounds de données multiples, tous les patterns peuvent être générés. Exemple:

•Dans la figure, a est le contenu de la cellule et b est le complément de cet valeur.

Page 7: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme March avec 8 Backgrounds

•On a besoin d’un générateur de background pour remplir la mémoire avec les bits correspondant. Le bit a est généré par l’adresse de lignes et de colonne de la mémoire.

•Algorithme MARCH-12N:•{ (wa); (ra,wb,wa); (ra,wb); (rb,wa,wb); (rb,wa); (ra)}.

•Cet algorithme est complet. Il détecte tous les NPSFs avec un temps de test de 96N (12x8N).

Page 8: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme March avec 8 Backgrounds

La figure suivant montre les ANPSFs qui sont détectés avec l’algorithme MARCH-12N avec les 8 backgrounds:

Page 9: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Algorithme March avec 8 Backgrounds

•Si on veut couvrir les fautes AF et CFst, on ajoute 4N opérations à MARCH-12 seulement pour le background 1:

•Background 1 prolongé à 16N operations:

{ (wa); (ra,wb,wa); (ra,wb); (rb,wa,wb); (rb,wa); (ra,wb); (rb,wa); (ra)}.

•Toutes les fautes sont couvertes avec cet “extended 12N MARCH”. L’algorithm resultant 100N (16 + 12x7).

Page 10: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Conception BIST

[2] M.Bushnell, V.Agrawal. Essentials of Electronics Testing

Page 11: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Comparator

Ram Pulse

Generator

UP/Down Counter

Background pattern Generator

BIST Controller(State machin)

RAM

Buffer

Le circuit de BIST

Datain

writ

cle

ar

cou

nt

last

ad

first

ad

fina

error

coun

tup

add(0-14)

test

wr_

n

oe

_

cs

writdatab

data

add0,add1,add6

315

oe_nrst_n

clk

rst_n

bgfbgc

test

syserrorsyscorrect

test

Conception BIST

Page 12: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Conception BIST

Signaltesterrorfinabgfbgcdatainfirstaddlastaddcountupcountclear Si '1', 'counter' recommence la compte (première adresse de mémoire)writesyserrorsyscorrectdatab

csoe_nwr_n

signification

BG2 et les états(wa ou ra) : add6+add0 BG2 et les états(wb ou rb): not(add6+add0)

BG7 et les états(wa ou ra): add0+add1 BG7 et les états(wb ou rb): not(add0+add1)

Si '1', 'counter' compte

Dans le dernier état de l'algorithme pour chaque Background, il devient '1'

Pendent les états wa et ra, il devient '0' et pendent les états wb et rb, il devient '1'

Si '1', pulse we_n actif, si '0', pulse oe_n actif

BG6 et les états(wa ou ra): add1+add6 BG1 et les états(wb ou rb):not(add1+add6)

si test=0 : oe_n='Z', si test=1 et write=0 : oe_n=not(clk), si test=1 et write=1 :oe_n='1'si test=0 : wr_n='Z', si test=1 et write=1 : wr_n=not(clk), si test=1 et write=0 :wr_n='1'

si '1' le contrôleur BIST commence à tester la RAMsi datab#data et oe_n ='0' ,error= '1' ,sinon error= '0'

Quand background=1, bgc= '1'Quand background=8, bgf = '1'

Quand add="000000000000001",il devient 1Quand add="111111111111110",il devient 1

BG3 et les états(wa ou ra): add6 BG1 et les états(wb ou rb): not add6

BG5 et les états(wa ou ra): add1 BG5 et les états(wb ou rb): not add1BG4 et les états(wa ou ra): add0 BG4 et les états(wb ou rb): not add0

BG8 et les états(wa ou ra):add6+add0+add1 BG8 et états(wb ou rb):not(add6+add0+add1)Si test=1 :cs= '0', sinon :cs=' Z'

Quand une erreur est détecte, syserror= '1'Quand le processus de l'algorithme termine sans erreur, syscorrect= '1'BG1 et les états(wa ou ra): '0' BG1 et les états(wb ou rb): '1'

Si '1', 'counter' incrémente l'adresse, sinon 'counter' décrémente l'adresse

Page 13: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

start m0waa

m0wa

m1ra

m1wa

m1wb

m1wbb

m1raa

m1waa

m2raa

m2ra

m2wb

m3wa

m2wbb

m3rbb

m3waa

m3wbb

m3wb

m3rb

m4waa

m4rbb

m4rb

m4wa

m5ra

m5wb

m5raa

m5wbb

m6rb

m6wa

m6waa

m6rbb

m7ra

m7raa

correct

error

test=0

test=1

lastadd=0

bgc=1

lastadd=1

lastadd=0

lastadd=1

lastadd=1

lastadd=1

lastadd=1

lastadd=0

lastadd=0

lastadd=0

lastadd=0

lastadd=1

error=1

firstadd=1 firstadd=0

firstadd=0

firstadd=1

error=1

error=1

error=1

error=1

error=1

bgc=0

bgf=1

bgf=0

s0s6 s8

s10

s3s1 s2

s9

s7s4 s5

s13

s11s12

s14s15

s19s20s21

s18 s17 s16

s23s24

s22

s25s26

s30 s29 s27

s34

s28

s31s32s33

Machine à état du contrôleur BIST:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 340 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 1 0 1 1 0 1 0 0 1 0 1 1 1 1 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 01 1 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 0 0 0 0 1 1 0 0 01 1 1 0 1 1 0 1 1 0 1 0 1 0 1 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 0 0 0 00 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 00 1 0 1 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0fina

Les signaux de sortie du contrôleur BIST

writesyserror

syscorrectclear

dataincountup

count

étatsignal

Page 14: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Modèle de Faute NPSF 

• Ram (32K x 1bit) contient 64 ‘columns’ et 512‘rows’.

•Adresse de cellule défectueuse est «addbase ».

•Cellules voisines:adresse (N) = addbase-64, adresse (W) : addbase-1, adresse ( E )= addbase+1, adresse ( S) =addbase+64.

Page 15: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Modèle de Faute NPSF Statique 

-- Modèle de faute NPSF Statique (“NEWS”<=”1001”) => (B<=’0’):

If(WE’event AND WE=’1’) then Memory(conv_integer(Address) ) :=Data ;End if; If(Address = addbase and Memory(conv_integer(addbase-64))=’1’ and Memory(conv_integer(addbase-1))=’0’ and Memory(conv_integer(addbase+1))=’0’ and Memory(conv_integer(addbase+64))=’1’ ) then Memory(conv_integer(addbase))=’0’; End if;

Page 16: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Modèle de Faute NPSF Passif

--Modèle de faute NPSF passif (“NEWS”<=”1010”) => (Base ne peux pas changer):

If(WE’event AND WE=’1’) then If (change =’0’ )then Memory(conv_integer(Address) ) :=Data ; End if; End if; If(Address = addbase and Memory(conv_integer(addbase-64))=’1’ and Memory(conv_integer(addbase-1))=’0’ and Memory(conv_integer(addbase+64))=’1’ and Memory(conv_integer(addbase+1))=’0’ ) then Change <=’1’ ; else; Change <=’0’ ; End if;

Page 17: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Modèle de Faute NPSF Actif

--Modèle de faute NPSF Actif (“NEWS”<=”01↑1”) => (B<= ‘0’):

If(WE’event AND WE=’1’) then If(Address = addbase+1) then If (Memory(conv_integer(addbase-64))=’1’ and

Memory(conv_integer(addbase-1))=’1’ and Memory(conv_integer(addbase+64))=’1’ and

Data =’1’ and Memory(conv_integer(addbase+1))=’0’ ) then Memory(conv_integer(addbase)) :=’0’ ; End if; End if; Memory(conv_integer(Address) ) :=Data ; End if;

Page 18: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Résultat de la simulation sans fautes

Page 19: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Résultat de la simulation avec NPSF  Statique

Page 20: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Résultat de la simulation avec NPSF  Passif

Page 21: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Résultat de la simulation avec NPSF  Actif

Page 22: Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Andrey Gonzalez Negin Sahraii Test de systèmes Électroniques ELE6306

Conclusions

•La méthode MARCH traditionnel a été améliorée en utilisant des Backgrounds multiples.

•L’algorithme MARCH-12 N prolongé peut détecter tous les NPSFs, CF et AF.

•Temps de test 100N bas en relation au nombre de fautes détectés

•Un Algorithme de diagnostic peut être implémenté pour détecter le type et l’endroit de la faute détecté en utilisant signatures MARCH.