Vérification avec UPPAAL de circuits décrits en VHDL avec délais

Slides:



Advertisements
Présentations similaires
MACHINE DE MOORE SYNCHRONE SIMPLIFIÉE Professeur à l'UHP / ESIAL
Advertisements

Cours #6 Conception d’unités de contrôle
Cours #4 Éléments à mémoire et circuits séquentiels synchrones de base
Cours #7 Vérification d’un modèle VHDL
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Analyse de machines.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Description d’un circuit.
VHDL pour circuits séquentiels
Developpement Process « Coding party !! » Tony Carnal Altran.
Logiciel Assistant Gestion d’Événement Rémi Papillié (Chef d’équipe) Maxime Brodeur Xavier Pajani Gabriel Rolland David St-Jean.
Proposition d’une heuristique efficace pour l’ordonnancement des machines parallèles 1 Benjamin Vincent Nikolay Tchernev Christophe Duhamel Libo Ren 21e.
Des commandes plus avancées I. Les processus Lister des processus : ps & top Arrêter des processus : kill II. Recherche Rechercher des fichiers : find.
CINI – Li115 1 Semaine 3 Boucles (suite), tirages aléatoires, bibliothèque graphique ● Imbrication d'instructions if et for ● Boucles for imbriquées ●
1 UML: applications, études de cas ● Processus (Extreme Programming, Unified Process) ● Architectures ● Expression du besoin technique Conception Préliminaire.
Présentation du stage Laïka Moussa. 19/9/2003Présentation du stage2 Plan Présentation du cadre du stage Sujet du stage Démarche adoptée.
Système d’annotation et de détection de modèle de véhicule Université de Sfax *** Institut Supérieur d’Informatique et de Multimédia de Sfax Réalisé par.
Initiation à la conception des systèmes d'informations
Logique séquentielle.
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Rappel - analyse et.
ATS8500 Standalone Downloader.
Les Instructions Itératives (Les Boucles)
Ce videoclip produit par l’Ecole Polytechnique Fédérale de Lausanne
Introduction aux Systèmes de Gestion de Bases de données
Dominique PETRELLA – Frédéric GUINEPAIN - IA-IPR STI Versailles
Visite guidée - session 3 Les postes de charge et les gammes
Partie 3 : Google analytics : structure et principes de navigation
Description d’un circuit combinatoire en VHDL
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Semaine #1 INF130 par Frédérick Henri.
Chapitre 01: Structure d'un module VHDL
GBIN6U03 : projet logiciel
Préparer par : Intissare et kaoutare
Principes de programmation (suite)
L’Instruction de Test Alternatif
Algorithmiques Abdelbasset KABOU
Profils d’emplois JT du 24 septembre 2001
Réalisation d'agents de surveillance Zephir
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
Synthèse et implémentation de circuits arithmétiques sur FPGA
Fonctions Logiques & Algèbre de BOOLE
Traduction automatique d'une description
Programmation système
Analyse de l'architecture abstraite
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Vérification de l'architecture abstraite
Vérification avec Uppaal de l'architecture
Août 2009.
Introduction à l’algorithmique. Introduction Algorithme: Procédure décrivant, étape par étape, une méthode permettant de résoudre un problème. Mot provenant.
IFT313 IFT313 Introduction aux langages formels Froduald Kabanza Département d’informatique Université de Sherbrooke planiart.usherbrooke.ca/kabanza/cours/ift313.
VALMEM Traduction automatique d'une description comportementale VHDL + annotations temporelles en automates temporisés A. Bara, E. Encrenaz LIP6 VALMEM.
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
PROGRAMMATION ET ENSEIGNEMENT
Calcul Scientifique Initiation à SCILB
ACP Analyse en Composantes Principales
Arbres de décision.
SYSTèMES à évènements discrets
TGV Trigger Générique Vme Face avant Tri d’événements de physique
AIAC GEET-12 Année : Régulation Industrielle: Programme M.BAHATTI.
Royaume de Maroc Université Hassan Premier Settat Faculté des Sciences et Techniques de Settat Description synthétiseur en langage VHDL d'un circuit intégré.
BIOS- OS Environnement logiciel PC / Traitement numérique / Contrôle.
Rappels sur le grafcet Normes NF EN CEI /01/2019
Plan I.Définitions II.Objectifs III.Intérêt IV.Quoi tester ? V.Processus VI.Exemples VII.Conclusion VIII.Références.
Portail de saisie et de restitution
Portail de saisie et de restitution
Notions d'architecture client-serveur. Présentation de l'architecture d'un système client/serveur Des machines clientes contactent un serveur qui leur.
Python Nicolas THIBAULT
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
PROGRAMMATION SOUS R. PRESENTE PAR : ACHETTOU ISMAIL LAARICH TARIQ ENCADRE PAR : Pr. EXPOSÉ SUR LA PROGRAMMATION SUR R 2.
STSWEB Structures : Divisions et groupes Supprimer des groupes par lots Diffusion Nationale TOULOUSE – Décembre 2008.
Transcription de la présentation:

Vérification avec UPPAAL de circuits décrits en VHDL avec délais VALMEM Vérification avec UPPAAL de circuits décrits en VHDL avec délais A. BARA, E. ENCRENAZ LIP6

Traduction VHDL + temps en automates temporisés Tout d'abord je rappel un des problématiques du projet VALMEM qui consiste à : - générer l'abstraction fonctionnelle sous forme d'un programme VHDL du circuit décrit en transistors + obtenir les informations temporelles sur les delais de propagation des portes. - Traduction (VHDL+temps) en automates temporsiés afin d'analyser des propriétés sur le circuit concerné.

Outil VHDL2TA b_up c_0 d_0 a_up 4 b_dn c_1 d_1 a_dn 3 a <= b or c xor d; process (a,b) begin if a = 1 then... Fichier temporel b : 5 up, 20 down; c : 10 down, 25 up; d : 15 up; Fichier environnement VHDL comportemental vhdl2TA L'outi VHDL2TA est censé normallement à réaliser cette traduction. Il qui prend en entrée : - le programme VHDL généré en employant l'abstraction fonctionnelle. - le fichier de délais de propagation des portes (obtenue par fois à partir des annotations temporelles (fichiers temporelles) fournis en utilisantla caratéisation temporelle . - l'environnement qui décrit le comportement des signaux d'entrées du circuit. Réseau d'automates temporisés (Hytech, Uppaal) Architecture de l'outil

Etudes de circuits (1/4) Evaluation de VHDL2TA [1] sur circuits de la littérature Description VHDL + timings des circuits Traduction automatique en automates temporisés (syntaxe HyTech [2] ou UPPAAL [3]) Construction (semi-manuelle) du graphe des zones Vérification automatique de propriétés TCTL Nous avons passé l'outil sur plusieurs exemples de ciruits. Pour chacun, nous avons générer la description en Uppaal ou HyTech à partir du programme VHDL + timings des circuits. Vérification des propriétés TCTL qui décrivent le comportement des signaux de sortie. Construction (semi-manuelle) du graphe des zones de graphe d'états.

Etudes de circuits (2/4) Exemple : Converta [4] Test avec l'environnement suivant délais des ports = 1 u.t Spécification STG du contrôleur converta Implémentation du contrôleur converta Ai : 10 up, 20 dn, 30 up, 40 dn; Ri : 10 up, 40 dn;

Etudes de circuits (3/4) Comportement des signaux de sortie Propriétés TCTL vérifiées Ro : 14 dn, 24 up, 33 dn, 43 up; Ao : 16 dn, 34 up; Ri : 10 up, 40 dn; Ai : 10 up, 20 dn, 30 up, 40 dn; chacune de ces deux propriétés passe en < 0.1 sec

Etudes de circuits (4/4) Graphes d'états : (Graphe de transition d'états STG + Graphe d'atteignabilité RG) Les temps d'apparition des signaux du circuit dans la spécification STG Les temps d'apparition des signaux I/O dans le graphe RG

Analyse de l'architecture (1/10) SP-SMALL (3x2 bits) Architecture complète abstraite automatiquement par LIP6 dans le projet VALMEM 3 mots de 2 bits 62 affectations concurentes + 30 processus séquentiels 8 signaux non connectés Délais de portes (Implémentation): fichiers de timings associés aux portes et aux latchs du cicruits (donnés par Dominique, Patricia & Pirouz). Extraire les intervalles des délais de propagation des fronts des signaux de sorties des portes et latchs du circuit.

Analyse de l'architecture (2/10) SP-SMALL (3x2 bits) Traduction : 18051 lignes de code description UPPAAL. 92 automates (portes & latchs) + 24 automates (Gardes des process) + 1 automate Env. 93 horloges + (92+24) var + 92x4 délais. Pour UPPAAL, les délais sont instanciés aux bornes des intervalles calculés précédemment Temps de traduction VHDL + temps ⇾ TA : 60 sec.

Analyse de l'architecture (3/10) SP-SMALL (3x2 bits) Environnement de test :

Analyse de l'architecture (4/10) SP-SMALL (3x2 bits) Analyse avec l'outil Uppaal : 92 propriétés TCTL décrivant le comportement des signaux du circuit + 30 propriétés TCTL décrivant l'evaluation des expressions des gardes des processus Vérification formelle avec Uppaal de ces propriétés Les 120 propriétés sont vérifiées en 3h en tout, tCK->Q est évaluée en 10 mn les intervalles de propagation des signaux dans les portes sont trop grands, ce qui conduit à un temps de réponse global tCK->Q > taaw divergence des temps fausses configurations supprimer ces configurations

Analyse de l'architecture (5/10) SP-SMALL (3x2 bits) Suppression des fausses configurations dans les fichiers timings compatibilité des signaux + compatibilité des configurations d'entrées/sortie Fichiers de timings : Un fichier timing T(S) est associé à une porte ou latch de sortie S et de fonctionalité F(E), où E = <E1, ... ,En> représente la liste des signaux d'entrés (sensibilité) de la porte ou du latch. Un fichier timing T(S) contient une séquence de lignes. Une ligne lg du fichier timing T(S), est un triplet <e,s,t>, tel que : - e = <e1, ... , en>, est une configuration d'entrée avec un seul front (∀i ei ∈ {0,1,'D', 'U'} et ∃!j ej ∈ {'D','U'}). - s est la valeur du front de sortie s ∈ {'D','U'}. - t représente le temps de propagation de la porte ou du latch.

Analyse de l'architecture (6/10) SP-SMALL (3x2 bits) Exemple d'un fichier temporel : s <= not (e_1 or e_2) e_1 e_2 s time 0 u d 1ps 0 d u 1ps u 0 d 2ps d 0 u 3ps e_1 e_2 e_3 s time 0 u 0 d 1ps 0 d 1 u 1ps u 0 0 d 2ps d 0 1 u 3ps 0 u 0 u 1ps 0 d 1 d 1ps 1 d 0 u 1ps 1 u 1 d 1ps 0 0 d 1 1ps 0 1 u 0 1ps 1 0 d 0 1ps 1 1 u 1 1ps

Analyse de l'architecture (7/10) SP-SMALL (3x2 bits) Compatibilité des signaux : Algorithme1 (fichier temporl T(S)) pour chaque nom signal st apparue dans le fichier temporel T(S) faire si st ∉ dans VHDL alors supprimer la colonne pour chaque ligne lg du fichier T faire si le front de sortie induit par un front sur une colonne supprimée alors supprimer la ligne lg. Absence d'un signal d'entrée sg dans le fichier T(S) ? prise en compte les signaux du fichier T(S) qui ont une relation directe avec ce signal sg (on les supprime pas).

Analyse de l'architecture (8/10) SP-SMALL (3x2 bits) Compatibilité des configurations d'entrées/sortie : Algorithme2 (fichier temporl T(S)) pour chaque ligne lg du fichier T faire rechercher j / ej ∈ {'D','U'}. remplacer e par e' = <ei, ej' = 1-BS(ej)> ('D' par 1 & 'U' par 0) remplacer e par e'' = <ei, ej'' = BS(ej)> ('D' par 0 & 'U' par 1) si f(e') ≠ 1 – BS(s) alors (f(e') ≠ 0 si s = 'U' & f(e') ≠ 1 si s = 'D' ) supprimer la ligne lg. sinon si f(e'') ≠ BS(s) alors (f(e') ≠ 0 si s = 'D' & f(e') ≠ 1 si s = 'U' ) supprimer la ligne lg.

Analyse de l'architecture (9/10) SP-SMALL (3x2 bits) Exemples de délais réduits : En appliquant Algo1 + Algo2 : En appliquant que Algo2 (suffisant) :

Analyse de l'architecture (10/10) SP-SMALL (3x2 bits) Analyse de la description avec intervalles des délais réduits par Algo 1 et 2. Cette réduction est encore insuffisante (taaw = 276). Quelques pistes d'améliorations ? Intégrer les temps (exacts) dans le modèle VHDL : délais ponctuels associés à chaque configuration et non plus intervalle. A l'exécution, seules les configurations fonctionnelles réellement utilisées sont prises en compte. Modèle VHDL très gros (contient tous les délais pour toutes les configurations)

Bibliographie [1]. A. Bara, E. Encrenaz & P. Bazargan-Sabet. VHDL2TA : outil de traduction en réseaux d'automates temporisés des circuits numériques décrits en VHDL. www.lsv.ens-cachan.fr/~encrenaz/valmem/vhdl2hytech/index.html. [2]. T. A. Henzinger, P. Ho, and H. Wong-Toi. A user guide to HyTech. In TACAS, page 41-71, 1995. [3]. K. Larsen, P. Pettersson, and W. Yi. UPPAAL in a Nutshell. International Journal on Software Tools for Technology Transfer, 1:134–152, 1997. [4] N.Starodoubtsev, M. Goncharov, I. Klotchkov and A. Smirnov. Synthesis of asynchronous interface circuits by STG refinement. In: A. Yakovlev and R. Nouta (Eds.) Proceedings of Int. Workshop on Asynchronous Interfaces: Tools, techniques, and Implementations (AINT'2000), TU Delft, The Netherlands, July 2000.

Merci pour votre attention