Le formalisme BFS-DEVS est basé sur les extensions du formalisme DEVS suivantes :
- Un modèle atomique BFS-DEVS possède un nouvel état fautif ainsi qu’une nouvelle fonction de transition externe fautive dont le rôle est de spécifier le comportement uniquement fautif d’un système. L’ajout de cette fonction respecte la propriété de « closure under coupling » propre à DEVS.
- Le noyau de simulation BFS-DEVS admet un nouveau type de message permettant d’activer uniquement le comportement fautif d’un système. Cette intégration vient augmenter l’algorithme de simulation sans influencer sa fonction de base.
Le mécanisme de la simulation BFS-DEVS est générique et il repose sur l’exécution d’une simulation saine (expérience de référence) concurrencée par plusieurs simulations fautives (expériences concurrentes). L’algorithme de la simulation BFSDEVS repose sur une technique de propagation de liste de fautes permettant la co-détection des fautes en une seule exécution. Pour effectuer la simulation BFSDEVS l’utilisateur doit définir une librairie de modèles BFS-DEVS. Ces modèles sont spécifiques à un domaine d’application et ils nécessitent l’identification de la structure de contrôle, de la structure de données et des règles comportementales du système. De plus, l’utilisateur doit définir un modèle de fautes comportementales qui seront simulées de manière concurrente dans le modèle du système.
Afin de valider notre approche nous avons appliqué le formalisme BFS-DEVS au domaine du test comportemental des circuits digitaux décrits grâce à des langages de description de haut niveau comme le VHDL.
Nous avons choisi le test dit comportemental de circuits car il permet d’intervenir très tôt dans le processus de conception et il va permettre au concepteur d’anticiper les phases de test intervenant à la fin du flot de conception. De nos jours, la conception numérique des systèmes digitaux est basée sur l’utilisation du langage VHDL et les tests comportementaux travaillent à partir de ces descriptions « textuelles » des circuits. Le test comportemental nécessite la définition d’un modèle de fautes ainsi que la définition d’un modèle du circuit. Concernant les modèles de fautes, il n’existe actuellement aucun modèle de haut niveau qui soit accepté de manière universelle. Cependant les modèles de fautes utilisés repose sur les techniques de test de logiciel et prennent en compte le modèle de collage car il permet la détection de 90% des défauts physiques lorsqu’il sont appliqués au niveau porte. Les modèles des circuits sous test sont majoritairement des descriptions « textuelles » possédant des particularités mal adaptées à l’application des algorithmes de la simulation de fautes.
Le modèle de fautes comportementales que nous proposons dans notre étude repose sur la définition de trois types de fautes qui prennent en compte (1) le collage de valeurs des signaux ou des variables présents dans une instruction d’affectation VHDL (type NF1) ; (2) le collage de branches des instructions conditionnelles VHDL (type NF2) ; (3) le saut des instructions d’affectation VHDL (type NF3). Les fautes de type NF1 et NF2 implémentent le modèle de collage qui est le plus communément utilisé et les fautes de type NF3 permettent d’analyser le code VHDL. Les modèles des circuits décrits en VHDL comportemental que nous proposons dans notre étude est celui des réseaux de modèles BFS-DEVS. En effet, le formalisme BFS-DEVS va permettre de transformer les descriptions textuelles des circuits en des réseaux de modèles BFS-DEVS. Cette transformation va permettre d’appliquer les algorithmes concurrents grâce à la technique de propagation de listes de fautes au sein des modèles BFS-DEVS. Chacun de ces modèles peut présenter un comportement fautif au cours de la simulation saine.
Toutes les fautes mises en évidence au cours de cette simulation sont stockées dans une liste qui donne lieu au détachement de plusieurs simulations fautives s’exécutant en concurrence. Chaque simulation fautive propage des listes de fautes par découpage et réorientation au sein du réseau BFS-DEVS. En fin de simulation, toutes les listes de fautes sont rassemblées pour être analysées. Toutes les fautes qui impliquent un résultat différent de la simulation saine sur des signaux de sorties sont alors détectées.
Vous pouvez trouver le prototype BFS-DEVS distribué sous licence GPL. L'installation necessite les étapes suivantes :
- Assurez-vous que Python (v. 2.x) est installé sur votre ordinateur.
- Téléchargez et extrayez le dernier fichier de package BFS-DEVS (tar.gz, 1.8 Mo).
- Lisez le fichier README.txt à installer.