Nouvelle méthode de spécification et de vérification de systèmes temps réel sur puce



Documents pareils
QUESTION 1 {2 points}

Conditions : stage indemnisé, aide au logement possible, transport CEA en Ile-de-France gratuit.

Solution A La Gestion Des Objets Java Pour Des Systèmes Embarqués

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Proposition de sujet de thèse CIFRE EUROCOPTER / LGI2P

Les diagrammes de modélisation

Thème 3 Conception et vérification d architectures de systèmes sur puce

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Chapitre VI- La validation de la composition.

Chapitre 1 : Introduction aux bases de données

IFT2255 : Génie logiciel

Quoi de neuf en LabVIEW FPGA 2010?

Analyse,, Conception des Systèmes Informatiques

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Évaluation et implémentation des langages

Programmation de services en téléphonie sur IP

Le génie logiciel. maintenance de logiciels.

Conception de circuits numériques et architecture des ordinateurs

Initiation au binaire

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

CHAPITRE VI ALEAS. 6.1.Généralités.

Annexe : La Programmation Informatique

RTDS G3. Emmanuel Gaudin

Chapitre I : le langage UML et le processus unifié

Université de Bangui. Modélisons en UML

modélisation solide et dessin technique

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Vérification formelle de la plate-forme Java Card

Test et Validation du Logiciel

Cours 1 : La compilation

Curriculum Vitae 1 er février 2008

Formula Negator, Outil de négation de formule.

JOURNEES SYSTEMES & LOGICIELS CRITIQUES le 14/11/2000. Mise en Œuvre des techniques synchrones pour des applications industrielles

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Utilisation des tableaux sémantiques dans les logiques de description

2. Activités et Modèles de développement en Génie Logiciel

Machines virtuelles Cours 1 : Introduction

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Traitement et exploration du fichier Log du Serveur Web, pour l extraction des connaissances: Web Usage Mining

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Laboratoire 4 Développement d un système intelligent

OCL - Object Constraint Language

Model checking temporisé

Nom-Projet MODELE PLAN DE MANAGEMENT DE PROJET

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Master Informatique Aix-Marseille Université

Profil UML pour TLM: contribution à la formalisation et à l automatisation du flot de conception et vérification des systèmes-sur-puce.

Intelligence Economique - Business Intelligence

Programmation d'agents intelligents Vers une refonte des fils de raisonnement. Stage de fin d'études Master IAD 2006

Présentation du Programme Régional de Formations Qualifiantes

Préparer un état de l art

Générer du code à partir d une description de haut niveau

La sécurité dans un réseau Wi-Fi

L AUTOMATISME LE SIGNAL

Conception et Intégration de Systèmes Critiques

Introduction aux systèmes temps réel. Iulian Ober IRIT

CURRICULUM VITAE. Informations Personnelles

IFT1215 Introduction aux systèmes informatiques

Présentation du sujet de thèse Schémas temporels hybrides fondés sur les SVMs pour l analyse du comportement du conducteur

11 Février 2014 Paris nidays.fr. france.ni.com

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Format de l avis d efficience

Modèle conceptuel : diagramme entité-association

Méthodologies de développement de logiciels de gestion

Cours de Génie Logiciel

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

L industrie financière sait elle décrire les produits qu elle traite?

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Extrait des Exploitations Pédagogiques

11 Février 2014 Paris nidays.fr. ni.com

Informatique industrielle A Systèmes temps-réel J.F.Peyre. Partie I : Introduction

La Certification de la Sécurité des Automatismes de METEOR

UDSG CLASSIFICATION DOSSIER DOCUMENTAIRE

SIN-FPGA DESCRIPTION PAR SCHEMA

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Pourquoi l apprentissage?

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

Plan d action SMB d une Approche Agile de la BITM Pour les PME

Système binaire. Algèbre booléenne

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Conception des systèmes répartis

Calculateur d'économies d'énergie des produits client Dell. Description générale de la consommation d'énergie des systèmes informatiques :

GPA770 Microélectronique appliquée Exercices série A

UE 8 Systèmes d information de gestion Le programme

Haka : un langage orienté réseaux et sécurité

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Learning Object Metadata

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Chapitre 2. Eléments pour comprendre un énoncé

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

Transcription:

SETIT 2007 4 rth International Conference: Sciences of Electronic, Technologies of Information and Telecommunications March 25-29, 2007 TUNISIA Nouvelle méthode de spécification et de vérification de systèmes temps réel sur puce khaled OUALI, Momtez HADDOUK, Riadh ROBBANA Faculté des Sciences de Tunis Laboratoire LIP2Campus universitaire - 1060 Le Bevédère Tunis kh.ouali@fst.rnu.tn, moumtez.haddok@fst.rnu.tn riadh.robbana@fst.rnu.tn Résumé : la simulation et la vérification formelles des systèmes critiques temps réel devient une étape fondamentale et importante dans le cycle de développement de tels systèmes. Pour bénéficier des avantages de ces deux méthodes, nous présentons dans cet article une nouvelle technique hybride basée sur le langage PSL. Le but de notre travail est de proposer une approche qui regroupe la souplesse lors de la conception, l expressivité lors de la spécification et la puissante de l automatisation lors de la vérification. Dans ce contexte, nous avons choisi le langage PSL comme étant une logique expressive non ambiguë, et le langage VHDL comme étant un langage d implémentation et de synthèse. Nous avons proposé un environnement qui permet la conception l implémentation et la validation des SOC. Pour fournir cet environnement nous avons été amenés à concevoir une interface permettant la conception avec l approche des machines à état finis. Nous avons introduit également des algorithmes intelligents permettant l implémentation en VHDL et l extraction automatique des propriétés du système en PSL. Cette approche permet d accélérer le processus de la vérification, d augmenter la productivité et d avoir un grade de confiance plus important vis-à-vis les propriétés des systèmes temps réel. Mots clés : VHDL, PSL, SOC, STR, MEF, Validation, Simulation, Formel.. INTRODUCTION Les systèmes temps réel deviennent de plus en plus complexes et exigent un niveau de sûreté et de fiabilité élevé surtout qu on les trouve dans des applications qui mettent en jeu des vies humaines. L utilisation des méthodes de spécification et de vérification dans le cycle de développement de tels systèmes permet d assurer un développement fiable, de réduire le coût de maintenance et d avoir un système sûr de fonctionnement. Dans la littérature on trouve plusieurs techniques de vérification. La méthode traditionnelle de vérification est la simulation. Puis vient la vérification formelle. Une troisième méthode connue sous le nom de technique de vérification hybride gagne en popularité. Le langage Sugar/PSL (Sugar-Property Specification Language) est un langage formel non ambigu pour la spécification des systèmes temps réel dont l utilisation dans le milieu industriel est de plus en plus importante. Les spécifications PSL sont décrites à base de propriétés, en effet les systèmes seront spécifiés par l ensemble des propriétés qui les caractérisent. Les mêmes propriétés PSL peuvent être utilisées pour faire de la vérification dynamique (en cours de la simulation) ou statique (formelle). De plus le PSL peut être utilisé à plusieurs niveaux d'abstraction d'un projet selon la dimension et la complexité du système. Cet article présente le rôle important que joue cette nouvelle technique de vérification dans le flot de conception des systèmes temps réel implémentés en langage HDL (Hardware Description Language). Nous présentons de nouvelles méthodes d extraction automatique des propriétés du système. Grâce à ces méthodes nous garantissons une couverture totale des machines à états finis, l augmentation de la productivité et un grade de confiance plus important. 1. Les languages HDL L'électronicien a toujours utilisé des outils de description pour représenter des structures logiques ou analogiques. Le schéma structurel que l'on utilise depuis si longtemps et si souvent n'est en fait qu'un outil de description graphique. Aujourd'hui, l'électronique numérique est de plus en plus présente et tend bien souvent à remplacer les structures analogiques utilisées - 1 -

jusqu'à présent. Ainsi, l'ampleur des fonctions numériques à réaliser nous impose l'utilisation d'un autre outil de description. Il est en effet plus aisé de décrire un compteur ou un additionneur 64 bits en utilisant un outil de description HDL plutôt qu'un schéma. Le deuxième point fort de HDL est d'être un langage de description de haut niveau. En fait, un langage est dit de haut niveau lorsqu'il fait le plus possible abstraction de l'objet auquel ou pour lequel il est écrit. Dans le cas du HDL, il n'est jamais fait référence au composant ou à la structure pour lesquels on l'utilise. Depuis les années 80 VHDL (Very High-Speed Integrated Circuit - Hardware Description Language) et Verilog sont parmi les langages HDL -automatiquement synthétisable- les plus dominant dans l industrie. Le langage VHDL développé dans les années 80 aux États-Unis, est ensuite devenu une norme IEEE [1] (Institute of Electrical and Electronics Engineers) numéro 1076 en 1987. Révisée en 1993 pour supprimer quelques ambiguïtés et améliorer la portabilité du langage, cette norme est vite devenue un standard en matière d'outils de description de fonctions logiques. Alors que Verilog développé à Gateway Design Automation en 1983 84 est ensuite devenu lui aussi une norme IEEE en 1995 [2]. A ce jour, on utilise les langages HDL pour concevoir des ASIC (Application Specific Integrated Circuit), programmer des composants programmables et concevoir des modèles de simulations numériques ou des bancs de tests. 2. La Simulation La vérification par simulation est la méthode traditionnelle de vérification. Comme son nom l indique, elle essaye de tester le bon fonctionnement d un composant en le soumettant à un système réel d évaluation. Clairement le succès de cette technique compte beaucoup sur la détermination et l attachement de l individu qui fait le contrôle. Aussi chaque fois qu'un changement est fait au code HDL (Hardware Description Language) on a besoin du même effort pour vérifier la simulation résultante. Mais, bien que la technique standard de vérification soit le test direct, cette méthode permet d afficher la présence d erreurs mais n est pas capable de prouver avec certitude leur absence. Cette conclusion découle de plusieurs arguments dont figure principalement l impossibilité d énumérer toutes les entrées possibles. 3. La vérification formelle La vérification formelle est un processus [3] qui permet de prouver qu un système se comporterait en parfait accord avec sa spécification. Cela revient à utiliser des approches mathématiques qui permettent de montrer que l implémentation satisfait la spécification. Dans ce cas une considération de tous les cas possibles est implicite. Ces dernières années, les méthodes formelles ne sont plus uniquement des thèmes de recherche, mais plutôt un concurrent potentiel, si ce n est pas une solution de remplacement, de la vérification par simulation. Ces points de vue partent d une correcte énumération des caractéristiques des méthodes formelles. Les avantages des méthodes de vérification formelle comparées à la vérification par simulation sont nombreux. En effet, ces méthodes considèrent toutes les entrées possibles au système, vérifient la validité des propriétés du système mathématiquement, ne nécessitent pas une spécification des sorties du système prévue de plus elles permettent, pour certains outils, d identifier les traces des erreurs s il y a lieu. La vérification formelle possède, elle aussi, certains inconvénients [3]. En effet, elle demande un effort supplémentaire pour parvenir à une description complète et simple du système à vérifier. C est qu il est nécessaire de définir une spécification, d une part, tenant en considération tous les détails du système, et d autre part, assez simple à manipuler dans la phase de vérification. D autre part c est difficile de faire un raffinement sans perte des propriétés du système. 4. Le langage PSL [4, 5, 6, 7] Le langage PSL connu aussi sous l appellation Sugar a été conçu comme un langage de la spécification formelle du hardware pour permettre aux concepteurs et aux ingénieurs de vérification de décrire des propriétés des signaux et des événements dans le temps. Bien que la majorité des premiers travaux de développement sur le langage Sugar ait été porté par IBM en 1990, les développements ont gagné force en 2002 comme un résultat du langage qui est sélectionnée par Accellera Le Comité de la Vérification Formelle (AFVC) pour standardisation anticipée par l'institut des Ingénieurs Électriques et Électroniques (IEEE). En 1994 Sugar utilisait le CTL alors qu en 2001 IBM annonce l ajout de la logique temporelle LTL au PSL. Sugar a quatre couches d'abstraction comme montrée dans la figure ci-dessous. Modélisatio Vérificatio Temporell Booléens Niveau supérieur La couche des booléens est utilisée pour - 2 -

construire les expressions qui sont utilisées par les autres couches. Bien qu'elle contienne l'expression de beaucoup de types, elle est connue comme la couche des booléens parce qu'elle est le fournisseur des expressions booléennes au coeur du langage pour la couche temporelle. La couche des booléens définit la valeur d'un signal. Par exemple, un signal appelé a a la valeur 1 ' si le signal est "haut" et une valeur de 0 si le signal est "bas". Exemple : (req1 and req2) Cet exemple annonce que les deux signaux req1 et req2 sont activés ensemble. La couche temporelle consiste en l expression de propriétés temporelles qui décrivent les relations temporelles entre les expressions booléennes. Par exemple, la propriété temporelle montrée ci-dessous exprime l'état que toutes les fois que le signal 'req' est affirmé, alors sur le prochain cycle le signal 'ack' est affirmé. Exemple always (req -> next ack) Le mot-clé "always" est utilisé pour indiquer que ce test va toujours être exécuté, alors que le motclé "next" est utilisé pour indiquer que nous a avancé par un cycle. La couche de la vérification se présente comme ensemble de directives qui communiquent avec les outils de vérification et décrivent comment les propriétés temporelles devraient être utilisés par ces outils. Quelques directives de base de la vérification sont listées ci-dessous. Assert : Cette directive exige à l outil de vérification que la propriété doit être vrai. Assume : Cette directive indique à l'outil de la vérification de supposer plutôt que de vérifiez qu'une propriété est vrai. Elle peut être considéré comme une contrainte sur les entrées du système. Cover : La directive cover dirige l'outil de la vérification pour vérifier qu'une certaine trajectoire a été couverte par la simulation. Par exemple pour exprimer que les deux signaux ack1 et ack2 sont toujours en exclusion mutuelle on doit saisir la propriété ci-dessous : Assert always ( not ( ack1 and ack2 Couche Couche Couche de la vérification Cette directive modélise le comportement des entrées du système, elle permet de déclarer et de définir le comportement des signaux auxiliaire et des variables. La couche modèle peut aussi être utilisée pour donner des noms à des propriétés et à autres entités qui sont utilisées dans la couche temporelle. Le mot clé VUNIT est utilisé pour conduire l'outil de la vérification en rassemblant les propriétés et les directives des couches de vérification ensemble. 5. Le PSL et la vérification dynamique : La vérification dynamique utilise une approche basée sur la comparaison de modèle. [8,] Elle utilise Sugar/PSL comme langage de spécification de propriété. Dans cette classification la propriété décrite par Sugar/PSL est développée pour former une définition compacte pour être utilisé plus tard par le vérificateur de propriété. Le système est alors simulé et l'activité des spécifiques signaux du système sont rassemblés et sont enregistrés dans un fichier. Finalement le vérificateur de propriété est utilisé pour comparer les modèles de "ce qui a été attendu se passer" contre "ce qui réellement s'est passé" dans la simulation, et rapporter les résultats à l'utilisateur. Il y a trois phases distinctes associées avec le contrôle de la propriété dynamique. - Analysez les détails qui se produisent dans les définitions de la propriété. - Exécuter une simulation pendant laquelle un fichier contenant la trace des signaux est produit. - Comparez le contenu du fichier de la trace avec les définitions de la propriété. Modèle de spécification et de vérification VCD Checker (Value Change Dump) P1-Covered P2-Failed C3-Covered C4-Not Les vecteurs de test utilisés pour La vérification dynamique peuvent être générés d une façon aléatoire, pour un test exhaustive ou ciblé. Il existe plusieurs sociétés industrielles qui ont intégré le langage PSL dans leurs outils de conception et de vérification dynamique. VN-Property de TransEDA. [8] ModelSim v 6.0 de Mentor Graphics. 6. Le PSL et la vérification formelle ou statique: Les vérificateurs de modèles permettent de vérifier les propriétés temporelles. Ces outils reposent sur la technique de la vérification basée modèle (Model-checking en anglais), où le circuit est modélisé par une machine d états finis [8]. McMillan a utilisé les diagrammes de décision binaire ROBDD pour représenter symboliquement l espace des états dans le - 3 -

modèle de la machine d états finis. Il a présenté aussi une procédure efficace de calcul de point fixe pour déterminer si le modèle de la machine d états finis valide des propriétés temporelles. Cette procédure a rendu possible la vérification de circuits de tailles importantes. SMV est le premier vérificateur de modèle qui a prouvé l efficacité de cette technique sur un espace d états de l ordre de 10 20. Des outils qui utilisent plutôt des moteurs de test de satisfaction booléenne (SAT) à la place de BDD sont apparus. Ils effectuent une vérification de modèle bornée BMC (Bounded Model Checking) en donnant un état initial et un nombre de pas fixes. Le but est de chercher un contre-exemple rapidement. Cette technique ne garantit pas que la propriété soit valide dans tous les cas possibles, mais elle reste utile car elle est applicable sur des circuits de taille plus importante que ceux traités par la vérification de modèle classique. Le langage Sugar/PSL présenté comme un langage formel non ambigu a était utilisé pour spécifier les systèmes temps réel. Par la suite le model checking intervient pour valider ces propriétés vis-à-vis le code HDL implémentant le système et en cas de non satisfaction d une propriété, de chercher un contre-exemple rapidement. On remarque que la validation formelle des propriétés Sugar/PSL valide le système sans avoir besoin de passer par des étapes de raffinement. Modèle de spécification et de Model Checkin P1-Covered P2-Failed C3-Covered d étude et la complexité du système. Souvent la validation formelle est utilisée pour la validation des sous blocks du système alors que la validation dynamique est utilisée pour valider le système complet. Il existe plusieurs vérificateurs de modèles industriels basés sur les mêmes principes FormalCheck et IFV (Incisive Formal verification) commercialisé par Cadence. Magellan : commercialisé par Synopsys. RuleBase : développé par IBM. 7. Extraction automatique des propriétés PSL : L apparition du PSL était une révolution au niveau des techniques de validation des systèmes temps réel. L un des facteurs qui fait preuve de son importance est le fait qu il est actuellement petit à petit intégré dans le domaine industriel. Ce qui a fait preuve de sa capacité de traiter des systèmes réels. Les systèmes actuels deviennent de plus en plus complexes et exigent un très grand nombre de propriétés Sugar/PSL pour les valider. La difficulté à débattre est alors au niveau de l extraction des propriétés du système en Sugar/PSL. En effet il faut définir un outil intuitif pour capturer les propriétés des signaux apparaissant dans la hiérarchie du projet, sans que les concepteurs aient à acquérir une connaissance approfondie du langage Sugar/ PSL pour générer ces propriétés, ce qui garantit que toutes les propriétés capturées ont une syntaxe correcte. Les systèmes temps réel séquentiels sont souvent décrits avec des machines à états finis. Pour avoir une spécification conforme des machines à états finis avec le PSL, nous avons développé un logiciel permettant la description du système avec des machines à états finis. Ensuite nous avons implémenté un algorithme permettant l extraction automatique de tous les chemins possibles à partir d un état initiale et de décrire ces derniers sous forme de propriétés PSL. HDL C4-Not Contre exemple PSL La validation formelle présente plusieurs avantages par rapport à la validation dynamique. Car d une part on n a plus besoin de préparer les vecteurs de test et d autre part l étude de tous les cas possibles est implicite. Bien que cette technique donne de bons résultats pour les petits systèmes il devient rapidement prohibitif de point de vue temps d'exécution pour les grands systèmes à cause de l'explosion d'état. Pour alléger la situation la technique de BMC est utilisée. Et dans ce cas le nombre de pas fixe est difficile à choisir. Les deux classes de méthodes validation dynamique et vérification formelle (statique) sont complémentaires. Il faut, en effet, bénéficier des avantages de ces méthodes. Le point fort du PSL c est que les mêmes propriétés peuvent être validés soit par la technique de validation dynamique soit par l approche formelle suivant le cas Nous avons défini en premier lieu une structure de données pour sauvegarder toutes les machines à états décrivant le système. Chaque MEF est définie par un état initial et un ensemble d états. Le passage d un état à un autre est une transition. Une transition matérialise une relation entre l état actuel, l état futur et une condition écrite en VHDL. Chaque état est caractérisé par un ensemble d instructions écrites elles aussi en VHDL et décrivant le fonctionnement du système. L algorithme consiste alors à parcourir tous les chemins possibles de la MEF partant de l état initial et tracer ces chemins sous forme de propriétés PSL en utilisant les deux directives assert et cover. Pour les concepteurs ayant déjà une connaissance approfondie de Sugar/PSL, les propriétés peuvent être - 4 -

saisies soit sous forme textuelle soit à l aide d une interface disposant de la grammaire du PSL alors que les signaux et les horloges du système seront extraits automatiquement de la description HDL pour accélérer encore le processus de création/capture. Cet outil permettra alors d accélérer le processus de vérification, d augmenter la productivité et d avoir un grade de confiance plus important vis-à-vis les propriétés du système temps réel. 8. Conclusion Dans cet article nous avons présenté l importance de l utilisation de la technique de simulation et des méthodes formelles ensemble pour la validation des systèmes temps réel. Cette technique hybride a eu sa gloire suite à l apparition du PSL. Nous avons aussi introduit le besoin de définir des procédures structurées pour l extraction automatique des propriétés des systèmes. Ce qui permet d accélérer le processus de vérification, d augmenter la productivité et d avoir un grade de confiance plus important visà-vis les propriétés des systèmes temps réel. REFERENCES [1] IEEE Computer Society. IEEE Standard VHDL Language Reference Manual, 2000. [2] IEEE Computer Society. IEEE 1364 Verilog Language Reference Manual, 2001. [3]E. M. Clarke and J. M. Wing. Formal Methods: State of the Art and Future Directions. ACM Computing Surveys, December 1996. [4] IBM Research Laboratory in Haifa. The Temporal Logic Sugar, Cindy Eisner [5] FoCs User s Manual, Formal Checkers - a Productivity Tool, Version 1.0 with Sugar2 support IBM Haifa April 2003. Research Lab in Haifa. [6] Accellera Formal Specification Language (Sugar) www.accellera.org [7] Property Specification Language: Reference Manual. Version 1.1, Accellera, June 2004. [8] O. Coudert, C. Berthet and J. C. Madre, Verification of synchronous sequential machines based on symbolic execution, Proceedings of the - 5 -