Aller au menu Aller au contenu
Thèmes de recherche
Thèmes de recherche
Thèmes de recherche
< >

> Thèmes > Sécurité des systèmes embarqués et distribués critiques > Projets et thèses

Test matériel de haut niveau

Thèse Mathieu Scholivé 2001-2005

LCIS Grenoble INP

Directeur de thèse : Chantal Robach

Co-encadrement : Vincent Beroulle

Contact : vincent.beroulle(at)lcis.grenoble-inp.fr

La complexité actuelle des circuits intégrés rend très difficile et coûteux le processus de génération de test pour ces circuits. En effet, l'utilisation de modèles structurels au niveau portes logiques réclame un environnement de test lourd et coûteux (en espace mémoire par exemple) ainsi que des temps d'exécution prohibitifs et inacceptables pour l'industrie.

Il est donc crucial de chercher à pallier ces insuffisances, notamment en définissant de nouvelles stratégies applicables très tôt dans le tôt de flot de conception (la figure ci-dessous représente les flots de conception matériel et logiciel) et cependant efficaces pour tester le circuit au niveau matériel. On appelle alors ces méthodes des méthodes de test de haut niveau.

Flots de conception matériel et logiciel

Flots de conception matériel et logiciel

Certains travaux ont déjà proposé de générer le test à partir des descriptions fonctionnelles des circuits. Le point commun à toutes ces stratégies est qu'elles tentent d'adapter les algorithmes classiques du niveau portes logiques pour générer du test au niveau fonctionnel, sans vraiment définir de modèle de fautes purement fonctionnel. Notre approche s'en démarque nettement puisque nous considérons que les modèles de fautes adaptés au niveau fonctionnel sont des fautes de type logiciel. Ainsi le test par mutation, jusqu'à présent appliqué uniquement au logiciel, s'avère particulièrement adapté au problème.

L'idée de base de cette approche est d'injecter des fautes simples dans la version originale du programme décrivant le circuit afin de produire des versions erronées, appelées mutants. Une fois les mutants obtenus, la génération de test se fait en sélectionnant l'ensemble de test minimal qui distingue, à l'exécution, le rogramme original de tous ses mutants. Si un vecteur de test donne des valeurs distinctes à l'exécution d'un mutant par rapport au programme initial, on dit que le mutant a été "tué". Le taux de couverture logiciel qui correspond au taux de mutants tués par rapport au nombre total de mutants, donne une mesure de l'efficacité du test par mutation comme illustré ci-dessous :

Génération de mutants et évaluation du score de mutation

Génération de mutants et évaluation du score de mutation

Notre méthode repose sur le test par mutation pour générer automatiquement des vecteurs de test à partir de la description comportementale d'un circuit. Différents outils et techniques permettant de réaliser la génération de ces jeux de test ont été développés sous la plate-forme ALIEN. Un même jeu de test doit permettre de valider aussi bien ce niveau comportemental que le niveau matériel qui lui correspond. Le processus de validation de cette approche est illustré ci-après.

Du logiciel au test matériel : validation de l'approche

Du logiciel au test matériel : validation de l'approche

A partir d'une description de haut niveau du circuit (description VHDL par exemple), le processus consiste à générer d'une part les vecteurs de test par la technique de mutation (jeu de test "logiciel") et d'autre part les jeux de test à partir d'ATPGs (Automatic Test Pattern Generators) traditionnels (jeux de test "matériel"). Les couvertures de fautes au niveau portes logiques de ces deux méthodes sont alors comparées. Les résultats expérimentaux de l'application de cette stratégie à des exemples concrets sont encourageants. Dans le cas de circuits séquentiels, les résultats sont particulièrement prometteurs (voir les références bibliographiques). En effet, pour ces circuits, les générateurs classiques ne sont efficaces qu'avec l'intervention humaine ou l'ajout d'une logique de test (Scan périphérique,structure d'auto-test, etc.). Une autre application très importante de l'approche de mutation a été réalisée dans le domaine de la testabilité de systèmes co-conçus (co-design) comportant des composants logiciels cohabitant avec des composants matériels. L'approche consiste à profiter de la double applicabilité (logiciel-matériel) du test par mutation pour établir des mesures qui aident le concepteur à trouver le meilleur partitionnement logiciel-matériel des différentes fonctions constituant le système.

Intégration de la testabilité

Intégration de la testabilité dans le choix du partionnement matériel / logiciel

Conclusion et Perspectives 

Finalement, dans le cadre de nos activités « Test de haut niveau pour le matériel », l'ensemble des travaux réalisés ont conduit et conduisent à explorer les trois axes complémentaires suivants :

considérer le test et la testabilité comme un des critères du partitionnement logiciel/matériel. étudier l'impact du choix d'architecture et des méthodes d'écriture (en VHDL par exemple) sur la testabilité de l'implémentation matérielle résultante. tirer profit des techniques de conception testable de bas niveau en cherchant à les adapter aux spécifications de haut niveau, pour améliorer la testabilité de ces systèmes très tôt dans le processus de développement.


mise à jour le 10 mai 2012

Grenoble INP Institut d'ingénierie Univ. Grenoble Alpes