Émulation d’ASIC à l’aide de FPGA
Les ASICs sont des circuits intégrés dédiés. Une puce dédiée est conçue et fabriquée dans le but de répondre à des spécifications particulières. L’intérêt de ce genre de circuits intégrés est dans la production de masse où les coûts par puce sont faibles, dans la mesure où les frais non récurrents sont amortis par le très grand volume de vente. Le design et la fabrication de puces dédiées ASIC coûtent très cher et nécessitent beaucoup de temps (Maxfield 2004). De plus, une fois le design complété et la pièce implémentée, nous faisons face à un système gelé (Frozen system), ce qui signifie qu’il est impossible de le modifier. Il nous apparaît alors l’importance d’avoir un circuit parfaitement fonctionnel pour la fabrication. Afin de pouvoir a priori valider la fonctionnalité du design avant la fabrication, il est possible d’utiliser des FPGAs (Courtoy, M. 1995). Les FPGAs comportent, de nos jours, plusieurs millions de portes logiques équivalentes et permettent de réaliser pratiquement n’importe quel système numérique par le biais d’une simple programmation (Maxfield 2004). Il y a plusieurs avantages au prototypage sur FPGA. Notons entre autres que la conception sur FPGA a l’avantage d’être peu coûteuse et rapide en plus d’être modifiable une fois implémentée, contrairement aux ASICs.
En plus de pouvoir être utilisée pour les tests de fonctionnalité, l’émulation d’ASICs sur FPGA peut aussi servir pour l’injection d’un grand nombre de pannes (De Andres 2006) puisque l’on peut générer un circuit avec des défectuosité logique. Le FPGA étant déjà testé par le manufacturier, nous supposons ce dernier sans défectuosité. Ainsi, il est possible d’implémenter sur le FPGA le design original modifié comportant des fautes, en connectant par exemple deux noeuds ensemble pour créer un court-circuit. L’objectif étant soit de vérifier le comportement du design face à la faute ou bien de valider la détection de la faute par le système de test. Pour ce projet, nous allons émuler un ASIC sur FPGA afin d’expérimenter la technique de test CDIDDQ. Nous ne nous servirons pas de l’émulation dans le but de test fonctionnel puisque nous utiliserons les circuits ISCAS-89 qui ont déjà été vérifiés. Nous utiliserons plutôt l’émulation pour insérer des pannes de type court-circuit, afin de procéder à leur détection grâce à CDIDDQ. Nous nous intéressons donc à la détection de la panne plutôt qu’à son impact sur la fonctionnalité du circuit.
Techniques de mesure de courant pour le test
L’utilisation d’une technique de test basé sur la mesure de courant nécessite une attention particulière à l’endroit de la prise et du paramétrage de la mesure. Selon (Chakravarty et Thadikaran 1997), il existe trois endroits où cette mesure peut être effectuée. En effet, il est possible de mesurer le courant à l’intérieur du circuit à tester à l’aide de senseurs (built-in current monitors), avec un circuit spécialisé externe inséré entre le bloc d’alimentation et le circuit (loadboard monitors), ou bien directement dans le bloc d’alimentation (tester based monitors). La mesure à l’intérieur de la puce, grâce à sa position rapprochée du point de mesure, permet d’atteindre des vitesses de mesure très élevées. En général, la lecture de courant est exécutée à des endroits spécifiques ce qui permet d’éviter les grands courants DC à l’intérieur du circuit et ainsi augmenter la précision des mesures. De plus, la mesure de courant interne est comparée à une valeur prédéfinie et seulement le résultat de la comparaison est retourné (succès ou échec) et non la mesure. Pour leur part, les circuits spécialisés externes se trouvent en général très près de l’unité à tester, ce qui leur permet une vitesse de mesure relativement élevée. Ils ont la possibilité d’être dédiés à des applications particulières et on retrouve une grande diversité sur le marché de ce type de produit. Le principal inconvénient est que cette approche nécessite l’ajout d’un module supplémentaire sur la plateforme de test déjà existante. Pour finir, la mesure qui provient du bloc d’alimentation, se trouvant à la plus grande distance du circuit à tester, est en général moins rapide que les deux autres. Cela rend aussi ce type de mesure plus flexible que les autres puisqu’elle est moins dédiée à une application en particulière.
Dans le cadre de ce projet, nous ne pouvons pas utiliser la mesure de courant à l’intérieur du circuit, car de tels modules n’existent pas dans les FPGAs. Nous avions donc le choix entre la mesure de courant provenant du bloc d’alimentation ou d’un circuit externe spécialisé. Selon (Hans Manhaeve 2005), il est préférable d’utiliser un circuit externe spécialisé, comme le QD-1011HC de Q-Star, qui permet d’avoir une erreur moyenne plus basse et une vitesse d’acquisition plus grande par rapport au bloc d’alimentation. L’erreur moyenne est un paramètre important dans la mesure de courant puisqu’il nous indique quelle variation de courant maximum peut être détectée de façon répétable. Ainsi, pour un système de mesure dont l’erreur moyenne est de 20μA, on ne peut détecter de façon répétable, donc à chaque mesure, que des défectuosités qui génèrent une variation de courant de plus de 20μA (Hans Manhaeve 2005). Le bloc d’alimentation, le N6705 d’Agilent par exemple, possède une erreur de 30μA tandis que le module QD-1011HC de Q-Star est de 4μA, tous deux pour une plage de 100mA. Aussi, le QD-1011HC peut effectuer les mesures bien plus rapidement que le bloc d’alimentation. Malgré que le QD-1011HC possède de meilleures caractéristiques, nous n’avons pas choisi ce module. Il nécessitait l’ajout d’un module supplémentaire au montage, ce qui le complexifiait et en augmentait les coûts. Finalement, ce module offre une plage de lecture limitée à 2A contrairement à 3A pour le bloc d’alimentation, qui fut par conséquent notre choix. Il est clair, cependant, que le module de Q-Star pourrait être mis à contribution dans l’application de CDIDDQ pour les circuits intégrés dont la consommation ne dépasse pas 2A. L’utilisation de ce module pourrait faire l’objet de travaux futurs.
Logiciel d’acquisition des mesures de courant
Dans l’expérimentation de CDIDDQ précédente, la mesure de courant utilisée pour le calcul de CDIDDQ était celle affichée à l’écran du bloc d’alimentation. Des efforts ont été déployés afin de mettre au point une meilleure méthode d’acquisition du courant. En effet, selon le manuel d’usager du N6709, le courant consommé affiché à l’écran à un taux d’échantillonnage de 60 Hertz ne nous donne qu’une approximation du courant. Dans ce projet, afin d’obtenir un maximum de précision dans notre mesure de courant, nous avons configuré l’appareil afin d’échantillonner le courant et d’enregistrer les mesures en mémoire. Une fois l’acquisition terminée, nous procéderons à la saisie des données via le port USB. Cette technique nous permettra d’obtenir une meilleure précision que celle obtenue par la lecture des valeurs affichées à l’écran. Nous croyons qu’en procédant ainsi, il sera possible d’obtenir de meilleurs résultats pour le test de CDIDDQ. L’utilisation de cette technique requiert la mise au point d’un programme qui permettra d’établir une connexion USB entre l’appareil et l’ordinateur. En effet, Agilent ne fournit pas de gratuiciel permettant d’effectuer facilement cette tâche. Il a donc fallu mettre au point un logiciel d’acquisition spécifique à notre application. Une série d’exemples de l’utilisation de la librairie permettant la communication avec le bloc d’alimentation sur Excel est fournie par Agilent. Notre appareil ne figurant pas dans la liste pour lesquels un exemple était disponible, nous avons dû adapter le code fourni en plus d’ajouter des fonctionnalités propres à notre application. Une fois les échantillons transférés sur Excel, il est possible d’obtenir diverses informations comme le graphique résultant, la moyenne, l’écart-type, etc. L’interface du logiciel est présentée à la figure 2.21.
Afin d’acquérir les données, le logiciel doit d’abord ouvrir le port USB et se connecter à l’appareil grâce à son identifiant USB. Par la suite, il faut aussi configurer l’appareil en vue de l’acquisition. On doit lui fournir la résolution, le nombre d’échantillons et la plage de la mesure, et ce, pour chaque canal que l’on désire utiliser. Il est important de vérifier que les paramètres envoyés sont à l’intérieur des capacités de l’appareil. Finalement, on peut procéder à l’acquisition des données pour la configuration que nous avons imposée. L’organigramme de l’acquisition des données par le programme Excel mis au point est représenté dans la figure 2.22. On remarque que le logiciel conçu ne communique avec l’appareil pour des fins d’acquisition de données. Il aurait été possible de configurer les valeurs des sorties du bloc d’alimentation en plus de pourvoir les activer/désactiver via la connexion USB, toutefois, pour des raisons de sécurité, nous avons opté pour configurer les sorties de l’appareil manuellement et nous avons choisi de procéder à l’acquisition automatiquement via l’ordinateur.
|
Table des matières
INTRODUCTION
CHAPITRE 1 NOTIONS DE BASE ET REVUE DE LA LITTÉRATURE
1.1 Introduction
1.2 Notions de base du test
1.3 IDDQ
1.3.1 DIDDQ
1.3.2 CDIDDQ
1.3.3 Émulation d’ASIC à l’aide de FPGA
1.4 Techniques de mesure de courant pour le test
1.4.1 Utilisation de deux sources
1.5 Résultats CDIDDQ antérieur
1.6 Conclusion
CHAPITRE 2 LES PATRONS DE TEST CDIDDQ
2.1 Introduction
2.2 Les patrons et vecteurs
2.3 Génération des patrons de CDIDDQ
2.3.1 Modification en vue du test
2.3.2 L’extraction des capacités parasites
2.3.3 Génération des vecteurs
2.3.4 Génération des deux premiers vecteurs
2.3.5 Génération des deux derniers vecteurs
2.4 Présentation des patrons de test CDIDDQ
2.5 Simulation des patrons de test CDIDDQ
2.6 Application expérimentale de CDIDDQ
2.6.1 Montage expérimental
2.7 La mesure de courant de consommation
2.7.1 Sélection de l’appareil de mesure
2.7.2 Logiciel d’acquisition des mesures de courant
2.8 Premier résultat expérimental de CDIDDQ
2.8.1 Le montage
2.8.2 Validation
2.8.3 Application des vecteurs et résultats
2.8.4 Analyse des résultats
2.9 Conclusion
CHAPITRE 3 Application des vecteurs CDIDDQ sur la carte de développement Sparkfun .
3.1 Introduction
3.2 La carte de développement Sparkfun
3.2.1 Test de consommation de la carte Sparkfun
3.2.2 Modification du montage pour la carte Sparkfun
3.2.3 Conception de l’adaptateur
3.2.4 Script d’automatisation de la programmation
3.2.5 Résultats et discussions
3.3 Exploration et utilisation des différentes alimentations du FPGA
3.3.1 Mesure sur le 3.3 volts
3.3.2 Analyse des résultats
3.4 Conclusion
CHAPITRE 4 Application des vecteurs CDIDDQ sur des montages avec
surconsommation de courant
4.1 Introduction
4.2 Source de courant basée sur le LT3080
4.3 Le LT3080
4.4 Ajustement de la source de courant
4.5 Ajustement de la source de courant
4.6 Résultats et analyse
4.7 Source de courant N6705A
4.8 Conclusion
CHAPITRE 5 Montage final
5.1 Introduction
5.2 Le testeur FPGA
5.2.1 La communication série
5.2.2 Le décalage des données
5.3 Le logiciel PC
5.3.1 Les vecteurs de test
5.3.2 La communication série
5.3.3 La prise de mesures
5.4 Validation du système
5.5 L’automatisation
5.6 Résultats et analyse
5.6.1 Le patron de test 17
5.6.2 Les patrons de test 5, 6 et 29
5.7 Conclusion
CONCLUSION
LISTE DE RÉFÉRENCES BIBLIOGRAPHIQUES
Télécharger le rapport complet