La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

TEST INTEGRE BIST : “Built-In Self-Test”

Présentations similaires


Présentation au sujet: "TEST INTEGRE BIST : “Built-In Self-Test”"— Transcription de la présentation:

1 TEST INTEGRE BIST : “Built-In Self-Test”
Christian LANDRAULT Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier (LIRMM)

2 Définitions et terminologie
Capacité d’un circuit à se tester lui-même Test en ligne Test hors ligne Concurrent codage Non Concurrent routines de diagnostic Fonctionnel logiciels de test spécifiques Structurel modèles de fautes explicites

3 Pourquoi du test intégré ?
prix élevé et toujours croissant des testeurs génération des séquences de test longue et difficile temps d ’application des séquences élevé inefficacité grandissante des testeurs

4 Test intégré Un passage obligé
Carte de route SIA (aspect technologie)

5 Test intégré Un passage obligé
Carte de route SIA (aspect test)

6 Principe du test intégré
Génération de vecteurs Circuit sous Test Evaluation des réponses Contrôle du test

7 Avantages du test intégré
Suppression de la nécessité de testeur coûteux possibilité de test à vitesse nominale taux de couverture bon et « modulable » temps de test court (vitesse + hiérarchisation) possibilité de test en fonctionnement (temps de dormance)

8 Plan du chapitre Génération intégrée de vecteurs de test
Analyse intégrée des réponses Structures pour le test intégré Planification et contrôle du test intégré Test intégré des mémoires

9 Différentes méthodes de génération
Test aléatoire (pseudo-aléatoire) pas besoin d ’ATPG test long (TC fonction de la longueur de la séquence) pseudo-aléatoire : même caractéristique qu’aléatoire mais appliqué de manière déterministe Test déterministe utilisation d ’ATPG vecteurs fixés et optimaux Test exhaustif (pseudo-exhautif) pseudo-exhaustif : même caractéristique qu’exhaustif mais séquence moins longue

10 Registre à décalage rebouclé et autonome
La séquence d’états parcourue dépend de l ’état initial 10 10 11 BASCULES D 00

11 Registre à décalage à rebouclage linéaire (LFSR)
La séquence d ’états parcourue dépend toujours de l’état initial + + 001 100 010 101 011 110 000 111

12 Registre à décalage à rebouclage linéaire (généralisation)
+ C1 C2 C3 Cn Cn-1 Q1 Q2 Q3 Qn-1 Qn ci=1 si la connexion existe sinon ci = 0 est la séquence de sortie

13 Registre à décalage à rebouclage linéaire (généralisation)
est la séquence de sortie

14 Registre à décalage à rebouclage linéaire (généralisation)
La séquence de sortie dépend toujours de l’état initial et du « cablage » du LFSR Polynôme caractéristique

15 Registre à décalage à rebouclage linéaire (généralisation)
pour un LFSR de n bascules, une séquence de longueur 2n-1est dite de longueur maximum le polynôme caractéristique d’un LFSR à longueur maximum est dit polynôme primitif il existe des polynômes primitifs pour toutes valeurs de n en pratique on privilégie les polynômes primitifs avec peu de termes (surface plus faible)

16 LFSR de longueur maximum (n=3)
+ Q1 Q2 Q3 100 001 010 000 011 Séquence de longueur maximum 101 État absorbant 111 110

17 LFSR de longueur maximum
Quelques polynômes primitifs pour 1  n  36

18 Génération pseudo-aléatoire par automates cellulaires
Un automate cellulaire (AC) est une MEF dont l’état suivant est fonction de l ’état présent et des états des autres automates En pratique, l ’état suivant est fonction de l ’état présent et de l ’état des cellules voisines règle 90 : règle 150 :

19 Génération pseudo-aléatoire par automates cellulaires
Cellule élémentaire 5 modes de fonctionnement

20 Génération pseudo-aléatoire pondérée
+ C1 C2 C3 Cn Cn-1 Q1 Q2 Q3 Qn-1 Qn P1 ou P0 =0,5 P1 = 0,25, P0 =0,75 P1 = 0,75, P0 =0,25

21 Génération exhaustive
Utilisation de LFSR modifié + + + + C1 C2 C3 Cn-1 Cn Q1 Q2 Q3 Qn-1 Qn NOR

22 Génération exhaustive
+ Q1 Q2 Q3 000 100 001 010 011 101 111 110

23 Génération déterministe
Génération d ’une séquence de test par ATPG (ou autre moyen) génération de cette séquence par une structure matérielle : ROM : simple mais coûteux MEF : toujours simple et toujours coûteux recherches en cours

24 BIST et taux de couverture
Description des circuits Longueur de la séquence de test pour obtenir le taux de couverture maximum circuits Fonctions Nombre d’Entrées/Sorties Nombre total de fautes Nombre de fautes redondantes déterministe aléatoire [ c432 Décodeur de priorité 36/7 864 4 41 2,5 103 c499 ECAT 41/32 998 8 61 1,9 103 c880 ALU + contrôle 60/26 1760 39 3,7 104 c1355 2710 91 2,2 106 c1908 33/25 3816 9 144 6,2 104 c2670 157/140 5340 117 77 1,1 107 c3540 50/22 7080 137 2,3 106 c5315 ALU + sélecteur 178/123 10630 59 90 5,3 104 c6288 Multiplieur 16 bits 33/32 12576 34 45 c7552 206/108 15104 131 114 4,9 1011

25 Amélioration du taux de couverture
Insertion de point de test (contrôle et observation) : Modification du circuit Ajout de vecteurs supplémentaires déterministes : ROM (taille), Réinitialisation du LFSR, modifications de vecteurs aléatoires inutiles (bit flipping) BIST Hybride où les vecteurs supplémentaires sont générés par le testeur

26 Analyse intégrée des réponses
Vérification de la parité Compaction de la réponse par comptage : comptage des 1 (0) comptage des transitions Compaction de la réponse par LFSR

27 Vérification de la parité
Initialisation de la bascule Détection des fautes simples sur un bit et d’erreurs en nombre impair sur une chaîne de m bits Probabilité de masquage

28 Vérification de la parité (plusieurs sorties)
Associer un vérificateur de parité à chaque sortie (coût élevé) « groupage » des sorties avant compression (taux de masquage plus élevé)

29 Comptage des transitions
Simulations logiques du circuit sain et du circuit fautif Comptage des transitions dans e circuit sain et le circuit fautif

30 Comptage des transitions
Technique utilisée par HP dans les années 80 pour la maintenances des plaques Probabilité de masquage pour une séquence de longueur m avec r transitions Pm r m-1 Pm=0 pour 0 et m transitions L’objectif est donc de rendre le nombre de transitions du circuit sain ou très grand ou très petit

31 Compaction par utilisation de LFSR : division polynomiale
La séquence de bits est assimilée à un polynôme Q(x) La signature sera le reste de la division de Q(x) par le polynôme caractéristique du LFSR P(x) Q(x) = x6+x3+x P(x) = x3+x+1 reste (signature) r(x) = x+1 (0011) 001010 1011 00011

32 Division polynomiale : analogie avec les nombres entiers
Séquence de sortie : On la considère comme la signature est le reste de la division par 99 soit 6 (cette signature est toujours < 99) si à la place on reçoit : le reste sera 60 et les erreurs seront détectées en fait la séquence reçue est différente de la séquence idéale par une erreur de si l'erreur est divisible par 99 il y a masquage sinon détection (99x635) = Reste 6 Reste 6

33 Compaction par utilisation de LFSR (une seule sortie)
Taux de masquage faible et surtout « modulable » de l’ordre de si n est le nombre de bascules

34 Compaction par utilisation de MISR (plusieurs sorties)
Taux de masquage faible et « modulable » Toujours de l’ordre de si n est le nombre de bascules

35 Compaction par utilisation de MISR (plusieurs sorties)
L'approximation pour la probabilité de masquage est d'autant plus valable que la séquence à analyser est longue Pour les séquences courtes toujours utiliser un polynôme primitif comme diviseur et éventuellement faire une vérification par simulation de fautes

36 Mise en œuvre Test parallèle : « Test per clock »
Entrées primaires Sorties primaires Circuit sous Test Génération de vecteurs Evaluation des réponses Contrôle du test

37 Test parallèle : « Test per clock »
Utilisation de registres spéciaux pouvant fonctionner en quatre modes différents : fonction de bascule D (mode système) le registre effectue la génération autonome d'états qui sont considérés comme vecteurs de test (mode génération de vecteurs de test) le registre comprime la réponse du circuit (mode d'analyse de signature) les états internes du registre peuvent être entrés et sortis en série (mode scan) BILBO (Built-In Logic Block Observer) : Könemann, Mucha, Zwiehoff, 1979

38 Registre BILBO B1=B2=1, registre parallèle (entrées Zi et sorties Qi)
B1=B2=0, registre série (entrée SCI, sortie SCO) B1=1 et B2=0, analyseur de signature parallèle (entrées Zi) B1=1 et B2=0, générateur de vecteurs (entrées Zi constantes et sorties Qi) Le circuit est remis à zéro en positionnant B1=0 et B2=1.

39 Test parallèle Placement des registres de test
SDI SDO R1 C1 R2 C2 Le BIST s'effectue comme suit : en mode décalage les registres R1 et R2 sont initialisés R1 génère les vecteurs pour le circuit C1 dont les réponses sont compressées par R2 R2 travaille ensuite en générateur pour C2 alors que R1 compresse les réponses de C2 après compression les contenus de R1 et R2 doivent être décalés en mode série et comparés aux résultats attendus

40 Test parallèle : Unité de test
Les registres de test ne peuvent pas être utilisés simultanément en générateur et analyseur le nombre de registre doit donc être augmenté et le contrôle s'avère complexe une unité de test est la portion minimum de circuit pouvant être testée indépendamment une unité de test comprend le module à tester T, un registre de test pour l'analyse de la réponse et tous les registres de test générant en entrée les vecteurs de test au module T

41 Exemple RTL et Unités de test
PI Registre Test 3 Registre Test 7 Registre Test 3 Registre Test 7 Registre Test 4 C Registre Test 1 Registre Test 3 Test register 1 C Registre Test 2 Registre Test 4 Registre Test 5 Registre Test 4 C Registre Test 5 Registre Test 2 Registre Test 2 C Registre Test 2 Registre Test 1 Registre Test 2 Registre Test 5 C Registre Test 4 Test register 6 C Registre Test 6 PO

42 Compatibilité des unités de test
Deux unités de test (UT) peuvent être activées simultanément s'il n'y a pas de conflit de ressources conflit : un même registre doit simultanément générer des vecteurs et analyser des réponses temps de test minimum correspond au parallélisme maximum problème de couverture minimum appliqué au graphe d'incompatibilité de test où les nœuds sont les UT et les arcs les incompatibilités entre UT

43 Procédure de BIST Session de Test : UT effectuées en parallèle
Procédure de BIST : Sessions de test effectuées séquentiellement (en série) L'unité de contrôle du BIST doit implémenter matériellement la procédure

44 Control incompatibility graph
Test units Sessions de Test Registre Test 3 Registre Test 7 Registre Test 4 {TR1, TR2} {TR3} {TR4, TR5, TR6} Registre Test 1 Registre Test 3 Registre Test 2 Registre Test 4 Registre Test 5 Control incompatibility graph Registre Test 5 Registre Test 2 TR 1 TR 2 Registre Test 2 Registre Test 1 Registre Test 2 TR 6 TR 3 Registre Test 4 Registre Test 6 TR 5 TR 4

45 « Test per clock » POUR et CONTRE
temps de test réduit le test à la vitesse nominale est possible les tests utilisant deux vecteurs consécutifs sont envisageables moyennant l'utilisation de registres de test appropriés CONTRE le surcoût matériel est élevé car les registres (BILBO) prennent plus de place qu'un scan avec générateur série la partie contrôle est plus compliquée que dans le test per scan l'insertion des registres de test à un impact sur les performances du système

46 Mise en œuvre Test série : « Test per scan »
Génération de vecteurs Entrées primaires Registre de scan Circuit sous Test Contrôle du test Evaluation des réponses Sorties primaires

47 Partie contrôle du test série : « Test per scan »
module under test MUT Compteur de vecteur CT Compteur de bit TPG scan path TRE TEND BCU shift/capture 1) TPG génère une séquence de bits et remplit le scan 2) Sur l'horloge de "capture" : - appliquer le contenu du scan path au MUT - charger la réponse du MUT dans le scan path 3) Décaler une nouvelle séquence de bits et compacter la réponse (TRE)

48 « Test per scan » POUR et CONTRE
convient à tout flot de conception commercial supportant le scan le matériel pour le BIST est extérieur au MUT d'où un faible impact sur les performances du système le contrôle du BIST est simple l'approche peut être facilement étendu au scan partiel et au scan multiple en général, le surcoût matériel est plus faible que dans le schéma de "test per clock" CONTRE temps de test long (entrée série) de nombreuses fautes nécessitent deux vecteurs de test et ne peuvent pas être détecter par scan le module sous test n'est pas testé à vitesse nominale

49 Mise en œuvre Test série : «multiple scan »
MUT T P G / L F S R + M I S R + . . . . . . . . . . Bardell and McAnney, 1984 ("STUMPS" à IBM) Réduction du temps de test Corrélation (dépendance linéaire) entre les signaux d'entrée (insertion de "Phase shifter")

50 Dépendance linéaire Par construction les bits fournis par un LFSR sont linéairement dépendants par exemple le test du collage à zéro de s nécessite a1 = a3 = a4 = 1 a0 x0 Donc x1= 1, x0 + x2= 1 et x0 + x1 + x2= 1 qui ne peuvent être satisfaites simultanément a1 x1 a2 x2 s a3 x0+x2 a4 x0+x1+x2 a5 x0+x1 LFSR x0 x1 x2

51 Insertion de "Phase Shifter" [Rajski, Tyszer] VLSI test Symposium1998
Circuit sous test Chaîne de scan Chaîne de scan Chaîne de scan M I S R L F S R Chaîne de scan Chaîne de scan Bonne séparation des chaînes avec 1 à 3 portes OUEX par chaîne

52 Test intégré des mémoires
Mémoires RAM Quelques approches de test pseudo exhaustif En général utilisation d'algorithmes déterministe de type "March" Mémoires ROM

53 Test des RAM Le modèle du circuit
Adresse Décodeur d’adresse Tableau des cellules mémoires Logique de lecture/écriture Données Suffisant si l’on est pas intéressé par la localisation de la faute

54 Fautes du décodeur d’adresse : Sous-type et occurrence
avec une certaine adresse aucune cellule est accédée une certaine cellule n’est jamais accédée avec une certaine adresse plusieurs cellules sont accédées une certaine cellule est accédée avec plusieurs adresses Une faute du décodeur d’adresse combine au moins deux sous-types

55 Fautes du décodeur d’adresse exemples
Ax Cx Ax Cx Sous-types 1 & 2 Ax Cx Ay Cy Sous-types 3 & 4 Ay Cy Sous-types 1 & 3

56 Fautes dans le tableau de cellules : fautes de cellule
collage d’une cellule à 0 ou à 1 (CA) collage ouvert d ’une cellule (SOF) faute de transition d’une cellule (FT) elle ne peut effectuer une transition montante (FTM) ou descendante (FTD) faute de rétention de données (deux sous types à 0 ou 1)

57 Fautes dans le tableau de cellules : fautes entre cellules
fautes de couplage entre deux cellules (CF) : fautes de couplage d’inversion (2 sous-types) (CFin) la transition 0-1 (ou 1-0) de la case couplante fait passer la case couplée de x a x* (x = 0 ou 1) fautes de couplage idempotente (4 sous-types) (CFid) la transition 0-1 (ou 1-0) de la case couplante fait passer la case couplée de x à x* mais pas de x* à x fautes de couplage d ’état (4 sous-types) (CFst) la cellule couplée est forcée à une valeur (0 ou 1) si la cellule couplante est à une certaine valeur (0 ou 1) Rmq : fautes de couplages entre K cellules très complexes si aucune restriction sur la position respective des k cellules fautes de voisinage (FV) fautes de couplages entre une cellule et ses cellules voisines

58 Test des mémoires Notions de fautes liées
les fautes liées influencent la même cellule l’effet est un possible masquage de faute (donc des tests plus complexes afin de les prendre en compte) < ;1> < ;1> < ;0> < ;0> i j k l i k l 2 fautes de couplages idempotentes 2 fautes de couplages idempotentes liées

59 Test des RAM Les algorithmes March
Tests pour les fautes de collage, les fautes de transition et les fautes de couplage Def1: un élément de March est une séquence finie d’opérations appliquée à chaque cellule d’une mémoire en les parcourant soit en ordre croissant (  ) soit en ordre décroissant (  ) Un test March est une séquence finie d’éléments exemple : le test MATS+ en 5n { | (w0);  (r0,w1); (r1,w0)} ( | signifie que l’ordre d’adresses est indifférent)

60 Exemple {  (r0,w1);  (r1,w0) }
DEBUT {élément (r0,w1)} POUR i=0 à N-1 FAIRE lire la cellule i (valeur attendue 0) écrire 1 dans la cellule i FAIT {élément (r1,w0)} POUR i=N-1 à 0 lire la cellule i (valeur attendue 1) écrire 0 dans la cellule i FIN

61 Test March Conditions de détection
pour chaque type de faute on démontre les conditions à observer fautes du décodeur d’adresse (rx, ..., wx) et (rx, ..., wx) faute de collage et collage ouvert (...,rx,...) et (..., rx, ..., rx, ...) fautes de rétention de données {test March existant;Del; (r0,w1);Del; (r1)} {test March existant;Del; (r0,w1,r1);Del; (r1,w0,r0)}

62 Test March : Couverture de fautes
{ (w0); (r0,w1); (r1,w0); (r0,w1); (r1,w0);Del; (r0,w1);Del; (r1)} Fautes de décodeurs d’adresses détectées Fautes de collage détectées Fautes de collage ouvert non détectées car (..., rx, ..., rx, ...) absent Fautes de rétention de données détectées Fautes de transition (w0,...,w1,...,r1,...,w0,...,r0) détectées Fautes de couplage non détectées

63 Les Tests de «March»

64 Test March et détection de fautes

65 Test march et fautes liées

66 Test des mémoires organisées en mot de b (>1) bits
Fautes de collage et de transition : pas de problème, utilisation d’un mot de fond et de son complément Fautes de couplage : pas de problèmes si les cellules couplées dans des mots différents, si les cellules couplées dans le même mot, si l’opération d’écriture est prépondérante sur la faute de couplage alors pas de pb si l’opération d’écriture est non prépondérante sur la faute de couplage, faute inversion pas de pb, faute idempotente utilisation de b mots de fond

67 Test intégré déterministe de RAM Architecture générale
Donnée entrante Mots de fonds test/normal MUX Générateur d'adresses Décodeur colonne …. Décodeur ligne Plan mémoire contrôleur . . . …. Décodeur colonne Générateur de données comparateur Donnée sortante OK/OK

68 Algorithme de test des ROM
Algorithme en trois passes différent de ceux utilisés pour les RAM Comparaison avec le circuit bon par compression de données (MISR) Première passe : suivant les adresses croissantes lire la donnée et la compresser (vérification des données stockées et du décodage d'adresses) Deuxième passe : suivant les adresses décroissantes lire la donnée et la compresser (vérification de la non présence d'opération de lecture destructrice dans le sens des adresses croissantes) Troisième passe : suivant les adresses croissantes lire la donnée et la compresser (vérification de la non présence d'opération de lecture destructrice dans le sens des adresses décroissantes)

69 Test intégré de ROM Architecture générale
Générateur d'adresses Décodeur colonne …. Décodeur ligne Plan mémoire contrôleur . . . …. MISR Signature correcte comparateur Donnée sortante OK/OK


Télécharger ppt "TEST INTEGRE BIST : “Built-In Self-Test”"

Présentations similaires


Annonces Google