REDUCTION DE PUISSANCE DURANT LE TEST PAR SCAN DES CIRCUITS INTEGRES

Contexte de l’étude : le Test par SCAN

   Grâce à l’amélioration constante des techniques d’intégration, les circuits intégrés actuels peuvent réaliser des fonctions très complexes faisant intervenir plusieurs millions de transistors. Cependant, à cause de cette complexité, des problèmes divers peuvent apparaître lors de la conception ou de la fabrication de tels circuits. Le rôle du test est de s’assurer que les circuits ainsi élaborés ne présentent pas de dysfonctionnement. La validité et l’efficacité du test sont des éléments primordiaux qui permettent de garantir l’obtention de produits de qualité à un coût minimum. Ce processus de test peut être envisagé de diverses manières qui sont d’ailleurs généralement complémentaires. Lorsqu’un circuit est conçu et réalisé pour la première fois, il est nécessaire de vérifier la validité de la conception. Ce type de test est appelé test de caractérisation (ou test de vérification) et est réalisé avant l’envoi du circuit en production. Des tests fonctionnels sont d’abord appliqués sur un échantillon de circuits, et des mesures paramétriques (mesures de courant, de tension, de temps de propagation, …) sont ensuite réalisées à l’aide d’outils spécifiques (microscopie électronique ou acoustique, points d’observation, …). Le test de production, réalisé à l’aide d’Equipements Automatiques de Test (Automatic Test Equipment ATE) sur l’ensemble des circuits issus des chaînes de fonderie, assure quand à lui la détection de défaillances physiques modifiant le comportement du circuit. Ces équipements vérifient que pour une série de stimuli appliquée en entrée du circuit, la réponse correspondante est correcte. Si le comportement du circuit est incorrect, il est éliminé. Cette thèse s’inscrit dans le cadre du test de production.Le problème principal du test de production est de déterminer une séquence de vecteurs d’entrée applicable dans des temps raisonnables et susceptible de mettre en évidence toutes les défaillances pouvant affecter le circuit. Deux approches principales peuvent être utilisées pour générer la séquence de vecteurs à appliquer aux entrées du circuit : la génération fonctionnelle ou la génération structurelle. La génération fonctionnelle consiste à déterminer une séquence de test en s’appuyant sur la fonctionnalité du circuit. La génération structurelle consiste à déterminer une séquence de test en s’appuyant sur une analyse de la structure interne du circuit et sur un modèle de fautes choisi, le plus couramment utilisé étant le modèle de collage. Ce modèle prend en compte l’hypothèse de collages permanents à ‘0’ ou à ‘1’ des différentes lignes du circuit. La liste de fautes étant élaborée, les vecteurs de test détectant ces fautes sont déterminés par des algorithmes spécifiques [ROTH66, GOEL81, FUJI85 …]. La métrique utilisée pour évaluer la pertinence d’une séquence de test ainsi générée est le taux de couverture de fautes. Le taux de couverture de fautes est le rapport entre le nombre de fautes détectées par une séquence de test et le nombre total de fautes possibles dans le circuit (dans le modèle considéré). Déterminer une séquence de test couvrant l’intégralité des fautes pouvant affecter le circuit est, dans le cas général, un problème extrêmement difficile. D’une part, la structure interne des circuits est difficilement accessible compte tenu du faible nombre d’entrées par rapport au nombre de nœuds internes des circuits actuels. D’autre part, la nature des circuits logiques, qui sont généralement des circuits séquentiels, augmente encore la difficulté de contrôle et/ou d’observation de certains nœuds internes du circuit.La conception en vue du test, et notamment l’insertion de chaînes de scan [WILL73, EICH91], est une solution permettant de simplifier le problème de la génération de vecteurs de test pour les circuits séquentiels. Cette technique est largement utilisée dans l’industrie, puisque près de 90% des circuits intégrés vendus dans le monde possèdent une ou plusieurs chaînes de scan [SIAS05]. Le test par scan permet en effet d’isoler les blocs combinatoires du circuit, de façon à les tester en tant que tels. En utilisant cette technique, le test d’un circuit séquentiel se ramène au test de sa partie combinatoire, ce qui réduit considérablement l’effort de génération des vecteurs de test. Pour cela, la solution consiste à modifier les bascules du circuit en bascule scan et à les relier entre elles de manière à établir un accès série (registre à décalage) appelé chaîne de scan. Un multiplexeur, placé avant l’entrée de chaque bascule permet d’obtenir deux modes de fonctionnement pour la chaîne de scan. Le premier mode de fonctionnement est le mode chargement parallèle, ou mode normal, où les données chargées dans les bascules proviennent du circuit proprement dit. Dans ce cas, la modification des bascules est transparente et le circuit conserve sa fonctionnalité initiale. Le second mode est le mode décalage, ou mode test, où les données chargées dans les bascules proviennent des bascules précédentes. La chaîne de scan est alors comparable à un registre à décalage permettant d’acheminer les vecteurs de test en série à travers les bascules. Les réponses du circuit sont capturées dans le mode de fonctionnement normal et déchargées en série en utilisant le mode test.

Origines de la consommation de puissance lors du test

   La consommation de puissance est plus importante pendant le mode test que pendant le mode de fonctionnement normal d’un circuit intégré. Deux raisons principales peuvent expliquer cette surconsommation de puissance. D’une part, il y a un conflit d’objectif entre la fonctionnalité, où le taux d’activité doit être le plus bas possible (notamment pour les applications « Low Power ») et le test, où le taux d’activité doit être le plus élevé possible afin d’obtenir la meilleure qualité de test. D’autre part, il y a une faible corrélation entre les données de test, alors que les données fonctionnelles sont souvent fortement corrélées. Ce problème de consommation de puissance excessive est encore plus présent lors du test par scan, car chaque vecteur (réponse) de test nécessite un grand nombre de cycles de décalage pour être chargé (déchargée), ce qui se traduit par une forte activité de commutation dans la chaîne de scan, et donc dans le circuit sous test [BUSH00]. L’étude industrielle présentée dans [SAXE03] a montré que pour un circuit ASIC constitué de plus d’un million de portes, le taux d’activité de ces portes est passé de 20-25% en mode fonctionnel à 35-40% en mode test par scan. A titre d’exemple, la Figure I.3 détaille le processus d’application d’un vecteur de test « 10101 » à un circuit sous test. Dans cet exemple, on représente les commutations observées dans la chaîne de scan à chaque cycle d’horloge. Nous remarquons clairement qu’à chaque cycle d’horloge, toutes les cellules de la chaîne de scan commutent, ce qui entraîne une forte activité de commutation dans le circuit sous test, et par conséquent une forte consommation de puissance. A l’inverse, le même circuit en mode fonctionnel ne verra qu’une faible partie de ses flip-flops commuter, surtout s’il s’agit d’un circuit conçu pour une application « Low Power ».

Modification du circuit sous test

   Contrairement à la première approche, les solutions présentées dans cette partie ne modifient pas la procédure de test mais le circuit sous test par l’utilisation des techniques de Conception en Vue du Test (CVT ou Design-for-Test). Une première solution possible consiste à augmenter le nombre ou sur-dimensionner les lignes d’alimentation afin de répondre à une forte consommation en courant lors du test. Cette solution permet également d’éviter les chutes de tension. Par contre l’utilisation d’une telle technique nécessite une estimation de la surconsommation de puissance dans le circuit lors du test dès la première étape de conception. Cette estimation ne peut se faire qu’avec la connaissance des données de test afin de les appliqués au circuit. Or, ces données de test sont généralement non disponibles lors de cette étape du processus de conception, et il apparaît donc clairement que cette solution ne peut être envisageable. Quoi qu’il en soit, une telle approche conduit à un surdimensionnement du circuit préjudiciable sur le plan de la surface. Une autre solution est proposée dans [GERS99], où les auteurs proposent d’inhiber l’activité de commutation dans la chaîne de scan. Il s’agît ici d’une technique permettant de masquer le chargement et le déchargement des données de test dans la chaîne de scan. Ce masquage est effectué par l’intermédiaire d’une porte insérée entre la bascule scan et le circuit comme le montre la Figure I.4. Durant les cycles de décalage, le circuit se retrouve totalement isolé de la chaîne de scan. Il n’est donc pas affecté par l’activité de commutation dans la chaîne de scan. Même si elle réduit de façon significative la puissance moyenne et la puissance de pic pendant les cycles de décalage (de l’ordre de 35%), cette méthode présente plusieurs inconvénients comme la dégradation des performances temporelles ou la surface additionnelle. Le surcoût en surface et en délai peut toutefois être réduit par un masquage partiel de la chaîne de scan. En effet, il n’est pas nécessaire de transformer toutes les bascules. Le choix des bascules à modifier peut être fait en fonction d’un coût obtenu par une analyse de l’influence des bascules sur la consommation du circuit [WUND85]. Ainsi, les bascules ayant le plus grand coût seront modifiées. Les auteurs ont proposé aussi dans [GERS00] une implémentation de cette technique réduisant le surcoût en surface.

Analyse de la consommation de puissance de pic pendant le cycle de test

   Dans le paragraphe précédent, nous avons vu que l’activité de commutation était généralement plus importante en mode test qu’en mode fonctionnel, et nous avons vu quel type de solutions pouvaient être mise en place pour répondre à ce problème. Afin de préciser davantage notre contribution dans ce domaine, reprenons dans le détail  le déroulement du processus de scan, et voyons ce qui se passe en terme de consommation de puissance. Pendant le test par scan, chaque vecteur de test est chargé dans la chaîne de scan par décalage. Cette phase utilise donc des « cycles de décalage ». Après un certain nombre de cycles d’horloge, un dernier cycle de décalage, appelé « cycle de test », permet de charger le vecteur de test dans la chaîne de scan afin de l’appliquer au circuit sous test. Ensuite, le signal de contrôle SE est désactivé permettant ainsi la récupération de la réponse du circuit dans la chaîne de scan au prochain front d’horloge. Cette phase est appelée « phase de capture ». La dernière étape consiste à activer le signal de contrôle SE afin de décharger la réponse par décalage tout en chargeant le vecteur de test suivant [WILL73, EICH91]. Notons au passage que le courant consommé pendant le cycle de test est dû aux commutations générées dans la chaîne de scan pendant le dernier décalage. En d’autres termes, le courant consommé pendant le cycle de test est dû aux commutations générées dans la chaîne de scan (avec n cellules) lors du passage du vecteur scan Vn-1 au vecteur scan Vn (qui est le vecteur de test). La Figure I.7 illustre la consommation de courant pendant le test par scan. Le premier appel de courant est dû aux commutations générées dans le circuit après le décalage du premier bit du vecteur de test dans la chaîne de scan. Le deuxième appel de courant est dû au deuxième décalage, et ainsi de suite. Le décalage du dernier bit du vecteur de test dans la chaîne de scan provoque une consommation de puissance dans le circuit pendant le cycle de test.

Impact de l’ordre des cellules scan sur la consommation de puissance

   Le réordonnancement des cellules scan consiste en la détermination d’un ordre optimal qui réduit l’activité de commutation dans la chaîne de scan afin de minimiser la dissipation de puissance dans le circuit. Dans cette partie, nous montrons l’influence de l’ordre des cellules scan sur l’activité de commutation dans la chaîne de scan pendant le cycle de test. Pour cela, nous avons vu dans la partie 1.5 que pour réduire la consommation de puissance de pic pendant le cycle de test il faut minimiser le nombre de commutations dans la chaîne de scan pendant le dernier décalage (le passage du vecteur scan Vn-1 au vecteur scan Vn qui est le vecteur de test), ce qui revient à réduire le nombre de transitions (différences de bits) sur chaque vecteur de test. Il faut noter que pour un calcul exact du nombre de commutations pendant le cycle de test, nous devons prendre en compte la différence entre le dernier bit de la réponse du circuit et le premier bit du vecteur de test suivant. Cependant, le nombre de cellules scan étant généralement très grand (de 20 jusqu’à plus de 1600 cellules pour les circuits expérimentés), ce qui se traduit par une très faible influence de ce bit. Pour des raisons de simplification, nous ne considérons pas ce bit et donc nous ne considérons pas la réponse du circuit. La Figure II.1 montre un exemple des commutations présentes dans la chaîne scan pendant le cycle de test. Le nombre de commutations à considérer dans cet exemple (nombre de transitions dans le vecteur de test) est alors égal à 4.

Optimisation globale sous contrainte

   Nous avons vu dans le paragraphe précédent que la technique d’optimisation globale sans contrainte permet d’obtenir des réductions significatives de la puissance de pic pendant le cycle de test sur toute la séquence de test. Cependant, dans certains cas, il y a eu une augmentation du maximum de la puissance de pic observée pendant l’application de la séquence de test. Ceci peut s’expliquer par le fait que nous n’avons imposé aucune contrainte de limite sur le nombre de transitions autorisées par vecteur de test. Pour cela, l’objectif de l’étude présentée dans cette partie est de réduire la somme des transitions sur la séquence de test tout en imposant une limite sur le nombre de transitions autorisées par vecteur de test. Considérons de nouveau l’exemple présenté à la Figure II.3. L’ordre « ff3-ff4-ff5-ff1-ff2 » (Figure II.3.b) permet de réduire la somme des transitions sur la séquence de test mais il génère une violation (dépassement) de la limite. En ajoutant une contrainte de limite à ce problème d’optimisation globale nous obtenons l’ordre « ff1-ff2-ff4-ff5-ff3 »  (Figure II.5). Cet ordre permet de réduire la somme de 5 à 3 transitions tout en respectant la limite d’une seule transition autorisée par vecteur de test.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction Générale
Chapitre I : Problématique et état de l’art
1.1 Introduction
1.2 Contexte de l’étude : le Test par SCAN
1.3 Modélisation de la puissance dans les circuits CMOS
1.4 Consommation de puissance lors du test
1.4.1 Origines de la consommation de puissance lors du test
1.4.2 Conséquences d’une consommation de puissance excessive
1.4.3 Etat de l’art sur la réduction de puissance durant le test
1.4.3.1 Modification de la procédure de test
1.4.3.2 Modification du circuit sous test
1.4.3.3 Modification de la séquence de test
1.5 Analyse de la consommation de puissance de pic pendant le cycle de test
1.5.1 Estimation de la puissance de pic pendant le test par scan
1.5.2 Optimisation de la puissance de pic
1.6 Conclusion
Chapitre II : Réduction de puissance par réordonnancement des cellules scan 
2.1 Introduction
2.2 Impact de l’ordre des cellules scan sur la consommation de puissance
2.3 Optimisation globale sans contrainte
2.3.1 Modélisation du problème d’optimisation du chaînage des cellules scan
2.3.2 Algorithme glouton
2.3.3 Résultats expérimentaux
2.4 Optimisation globale sous contrainte
2.4.1 Algorithme de Recuit Simulé
2.4.2 Résultats expérimentaux
2.4.2.1 Réduction de puissance de pic pendant le cycle de test
2.4.2.2 Réduction de puissance de pic pendant les cycles de décalage
2.4.2.3 Couverture de fautes de transition
2.5 Conclusion
Chapitre III : Réduction de puissance par assignation de bits non spécifiés
3.1 Introduction
3.2 Impact de l’assignation de bits non spécifiés sur la consommation de puissance lors du test
3.3 Techniques d’assignation de bits non spécifiés
3.3.1 Techniques classiques d’assignation
3.3.2 Résultats expérimentaux
3.3.3 Assignation basée sur des informations structurelles
3.3.4 Résultats expérimentaux
3.3.4.1 Réduction de puissance de pic pendant le cycle de test
3.3.4.2 Réduction de puissance de pic pendant les cycles de décalage
3.3.4.3 Impact sur le volume de données de test
3.3.4.4 Impact sur le taux de couverture
3.4 Conclusion
Chapitre IV : Réduction de puissance et compression de données de test 
4.1 Introduction
4.2 Compression de données de test
4.3 Réduction de puissance et compression de données de test
4.3.1 Codage de Golomb et réordonnancement des vecteurs de test [CHAN01]
4.3.2 Illinois Scan Architecture [HAMZ99]
4.3.3 Random Access Scan [ANDO80]
4.3.4 Bilan et objectifs
4.4 Solution proposée pour la compression de données et la réduction de puissance
4.4.1 Compression de données par codage sélectif des « Scan Slices »
4.4.2 Analyse de la consommation de puissance après la décompression des scan slices
4.4.3 Modification proposée
4.4.4 Résultats expérimentaux
4.4.4.1 Réduction du volume de données de test
4.4.4.2 Réduction de consommation de puissance
4.4.4.3 Résultats sur circuits industriels
4.5 Conclusion
Conclusion Générale
Références Bibliographiques
Listes des figures, tableaux et organigrammes
Annexe A : Estimation de la consommation de puissance par la métrique de transitions pondérées [SANK00]

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *