Test de systèmes Électroniques Algorithme de test de mémoires pour « Neighborhood Pattern sensitive Faults » Test de systèmes Électroniques ELE6306 Andrey Gonzalez Negin Sahraii
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
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 .
Model de fautes NPFS
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.
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.
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).
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:
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).
Conception BIST [2] M.Bushnell, V.Agrawal. Essentials of Electronics Testing
Conception BIST Buffer Le circuit de BIST Comparator Ram Pulse Generator UP/Down Counter Background pattern Generator BIST Controller (State machin) RAM Buffer Le circuit de BIST Datain writ clear count lastad firstad fina error countup add(0-14) test wr_n oe_ cs datab data add0,add1,add6 3 15 oe_n rst_n clk bgf bgc syserror syscorrect
Conception BIST
Machine à état du contrôleur BIST:
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.
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’;
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; 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’ ;
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; Memory(conv_integer(Address) ) :=Data ;
Résultat de la simulation sans fautes
Résultat de la simulation avec NPSF Statique
Résultat de la simulation avec NPSF Passif
Résultat de la simulation avec NPSF Actif
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.