Mise en œuvre d'un injecteur automatique de défauts de fabrication

Encadrants : 

Occurrences : 

2014

Nombre d'étudiants minimum: 

2

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

1

Contexte: Grâce aux avancées technologiques, les systèmes électroniques sont de plus compacts et performants. En contrepartie, la forte densité d'intégration rend le processus de fabrication complexe, engendrant une baisse du rendement. Il est en effet de plus en plus difficile et coûteux de fabriquer des circuits exempts de défauts. Dans ce projet, on s'intéressera aux défauts de fabrication dans les FPGA car ces circuits deviennent incontournables dans les SoC (systems on chip).

 

Objectif: L'objectif de ce travail est d'étudier l'impact des défauts sur l'élément de base d'un FPGA: le multiplexeur. Plus précisément, nous cherchons à savoir si ce défaut va altérer la valeur logique en sortie, auquel cas il y aurait une erreur. Pour ce circuit très simple, il existe différentes architectures (différents assemblages de transistors pour la même fonction logique de multiplexage).

 

Déroulement du projet: Il s'agira de mettre en œuvre une procédure automatisée d'injection de défauts afin de déterminer l'architecture la plus robuste à ces défauts. Cette procédure se traduira par un programme logiciel générique qui transforme n'importe quelle structure initiale (fichier Spice) en une structure défectueuse (nouveau fichier Spice) et qui analyse l'impact de ces défauts (détecte l'existence d'une erreur en sortie du circuit). Le nombre et le type de défauts seront spécifiés dans le programme.

En effet, il existe déjà un injecteur automatique de défauts, développé par Mentor Graphics, qui traite des netlists extraites (avec parasites RC), modélise tous types de défauts potentiels et simule exhaustivement le circuit défectueux en le comparant au circuit initial sans défauts. Néanmoins, cet injecteur « parfait » possède plusieurs inconvénients :

  • Etant donné qu'il procède à des simulations exhaustives (tous types de défauts pour toutes les combinaisons d'entrées du circuit), son temps de simulation rend impossible l'analyse de circuits de grande taille.

  • Il est restreint au modèle de défaut simple : il ne peut injecter plus qu'un seul défaut dans une netlist.

  • Il a besoin d'une netlist extraite pour modéliser les défauts (ce qui nous oblige parfois à faire un layout manuel, et de procéder à une extraction RC par la suite)

Donc, l’injecteur automatique de défauts qu’on se propose d’implémenter sera capable de générer, à partir d'une netlist donnée, plusieurs netlists défectueuses en fonction du nombre et des types de défauts voulus. Cet injecteur permettrait ensuite de classer les architectures de multiplexeur selon leur robustesse.

 

Environnement/outils: Langage de programmation Python, ou C/C++ (et probablement Cadence Virtuoso et MATLAB ensuite)