SlideShare une entreprise Scribd logo
1  sur  168
Télécharger pour lire hors ligne
VHDL
                                                            Support de cours

                                                                             D.Chillet
                                                                     Daniel.Chillet@enssat.fr
                                                                       http://r2d2.enssat.fr




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                      1
Qu'est ce que ça veut dire ?


                     Vhsic Hardware Description
                             Language
                         Vhsic : Very High Speed Integrated Circuit

                Langage de description de systèmes matériels


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   2
VHDL
                                                                             Plan
                     1 ) Introduction : motivations, historique
                     2 ) Méthode de conception: modèles de description
                     3 ) Unités de conception :
                              entité, architecture, configuration, paquetage, corps de paquetage
                     4 ) Les objets : signaux, types, sous types
                     5 ) Les éléments du langage : opérateurs, procédures, fonctions,
                       affectations
                     6 ) Instructions concurrentes : processus, blocs
                     7 ) La généricité
                     8 ) La fonction de résolution
                     9 ) Simulation et validation, réalisation d’un composant de test
                     10 ) Exemples : paquetage standard et exemples de codes VHDL



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                         3
Introduction
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   4
1) Introduction
   q     Un HDL, qu’est ce que c'est ?
            Ø     moyen de décrire un système matériel :
                     ü    qu’est qu’un système matériel ?
                              • en général, il s’agit d’un schéma mettant en œuvre :
                                  – un certain nombre de composants
                                  – des connexions entre composants




                                                                             C2
                                                   C1




                                                                                  C4
                                                       C3



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004             5
1) Introduction
            Ø     les niveaux de description peuvent être variables :
                     ü    niveau logique
                     ü    niveau transfert de registres
                     ü    niveau système




                                                                         *       +
   A


   B                                                                         S


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004           6
1) Introduction
   q     Un HDL, doit :
            Ø     permettre la modélisation du système :
                     ü    formalisation du problème
                     ü    à partir de briques de base
                     ü    éviter les descriptions ambiguë


            Ø     faciliter la documentation du système :
                     ü    VHDL est très verbeux !!!




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   7
1) Introduction
            Ø     la validation du système :
                     ü    prouver le fonctionnement du système décrit
                     ü    simulation :



                                                                             C2
                                                   C1




                                                                                  C4
                                                       C3




                              • une structure schématique ne peut être simulée que si on connaît le
                                comportement de chacun des sous systèmes
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                            8
1) Introduction
            Ø     suivre la conception du système :
                     ü    si possible pas de changement de langage à chaque étape de conception


                                                                               Système

                                                                             Architecture

                                                                              Registres

                                                                               Portes

                                                                               Circuit

                                                                              Silicium

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                        9
1) Introduction
                     ü    Outils et objets manipulés




                                                                               Système
                            Schémas

                                                                             Architecture     Outils de synthèse
                                                                                              de haut niveau
                                                                                            Description HDL
                                                                              Registres

                                                                                            Equations
                                                                               Portes
                                                                                            booléennes

                                                                               Circuit

                  Objets
                                                                              Silicium               ???
                  géométriques
                           Structurel
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
                                                                                             Comportemental 10
1) Introduction


                                                                               Système
                            Schémas
                                                                                              Outils de synthèse
                       VHDL
                                                                             Architecture
                                                                                              de haut niveau
                                                                                            Description HDL
                                                                              Registres

                                                                                            Equations
                                                                               Portes
                                                                                            booléennes

                                                                               Circuit

                  Objets
                                                                              Silicium               ???
                  géométriques
                            Structurel
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                  Comportemental         11
1) Introduction
   q     Motivations pour une approche méthodologique :
            Ø     évolutions technologiques rapprochées :
                     ü    la durée de vie des équipements est supérieure au laps de temps entre 2
                          technologies :
                              • donc les systèmes doivent pouvoir supporter une évolution technologique
                     ü    se lier à une technologie dès la phase de conception peut conduire à
                          mettre sur le marché un produit déjà dépassé


            Ø     indépendance vis à vis des fournisseurs                    :
                     ü    se lier à un fournisseur dès la phase de conception peut conduire à revoir toute la
                          conception si les composants ne sont plus disponibles


            Ø     besoin de standardisation

            Ø     nécessité de moyen de description non ambiguë des systèmes
                  matériel :
                     ü    début des années 80
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                      12
1) Introduction
   q     Rapide historique :

            Ø     DOD en 81: effort de normalisation entre 83 et 87
                     ü    département de la défense Américaine
            Ø     Normalisation IEEE en 87 (IEEE 1076) :
                     ü    efforts de normalisation : Intermetrics, IBM, Texas instrument
            Ø     Le langage est proche de ADA :
                     ü    références constantes
                     ü    ADA a été normalisé définitivement en 83
            Ø     Nouvelle norme en 93
            Ø     Nouvelle normalisation autour de VHDL analogique :
                     ü    VHDL AMS
                     ü    pourquoi ?
                              • demande en simulation analogique et en simulation mixte


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                 13
1) Introduction
   q     VHDL :
            Ø     ne vise pas une exécution, il est utilisé pour :
                     ü    la simulation
                     ü    la synthèse                                         Langage de
                                                                               synthèse
                     ü    la spécification
                     ü    la documentation




                                                                                             modélisation
                                                         Langage de




                                                                                             Langage de
                                                         simulation


                                                                             VHDL

                                                                              Langage de
                                                                             documentation
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                  14
1) Introduction
            Ø     la brique de base est le composant ou l'entité :
                     ü    tout système est bâti à partir de cette brique.
                     ü    dans les langages de programmation les briques de base sont les
                          procédures et les fonctions :
                              • la procédure est appelée puis oubliée :
                                   – activation explicite
                              • le composant existe en soi :
                                   – activation implicite par événements sur ses entrées


                main()
                {
                                   ...                                       x                 resultat
                                   resultat = Factorielle(x)                     Factorielle
                                   …
                }




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                15
1) Introduction
            Ø     fonctionnement concurrent des composants :
                     ü    si a et b évoluent en même temps, alors les composants c1 et c2 ont un
                          fonctionnement parallèle (concurrent)
                                              a                              s1
                                                               C1


                                                                              b              s2
                                                                                  C2

            Ø     notion de signal :
                     ü    connexion des composants entre eux
                                                                                                   s3    C4
                                                                                            C3

            Ø     la notion de temps est gérée :
                     ü    prise en compte des contraintes réel du matériel :
                                                                                                  2 ns
                              • temps de traversée,
                              • de calcul,                                             e1
                                                                                                         s
                              • etc.
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
                                                                                       e2                     16
1) Introduction
   q     Les avantages de VHDL :
            Ø     indépendant du constructeur
            Ø     indépendant de la technologie                                         Portabilité
            Ø     indépendant de la démarche
            Ø     indépendant du niveau de conception

            Ø Standard                                 IEEE :
                     ü    reconnu par les vendeurs d’outils CAO
                     ü    grand nombres de bibliothèques :
                              • d’opérateurs
                              • de composants
                              • de fonction
                     ü    nombreux outils :
                              • compilateur, simulateur
                              • mais aussi des outils de synthèse et de spécification



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                            17
1) Introduction
        Définition du langage :                                                          1076.1
                  - version 1076-87
                  - version 1076-93                                                      1076.2
                                                                               1076
                                                                                         1076.3
                                                                               VHDL
                                                                                         1076.4
            Dans le langage :
               • définition du type bit :                                                1076.5
                     • bit ('0' , '1')
               • un peu juste                                                   1164
                                                                             STD LOGIC


                     Package définissant les niveaux logique
                     nécessaire pour la description des systèmes électronique
                        Utilisé par tous les constructeurs
                               et par tous les outils
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                        18
1) Introduction
   q     VHDL :
            Ø     Langage moderne, puissant, général :
                     ü    jeu d’instructions complet et très riche
                     ü    fort typage des données
                     ü    compilation séparée des entités

   q     Développement parallèle facilité :
            Ø     travail d’équipe :
                     ü    découpage en unités de conception
                     ü    développement et validation parallèle
                     ü    nécessite de bien identifier les interfaces entre les blocs fonctionnels

   q     Simulation du système :
            Ø     à tous les niveaux :
                     ü    cahier des charges !!!                             Erreurs découvertes au plus tôt
                     ü    modèles                                            dans le cycle de conception
                     ü    réalisation
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                     19
1) Introduction

                   1 ère année :
                            - modélisation
                                                                              Description
                            - simulation
                                                                              informelle


                                                                                             2 ème année :
                                                                             Spécification
                                                                               en VHDL
                                                                                                     - modélisation
                                                                                                     - simulation
                                                                                                     - synthèse
                                                                               Synthèse




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                            20
Méthodes de
                          conception
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   21
2) Méthodes de conception
   q     Descendante :
            Ø     on part du besoin et descend jusqu'au niveau physique
            Ø     généralement, on s'arrête au niveau d'une bibliothèque :
                     ü    d'opérateurs logiques
                     ü    d'opérateurs arithmétiques
                     ü    d'opérateurs plus complexes

   q     Ascendante :
            Ø     on part d'une bibliothèque pour remonter, par assemblage, au
                  système à concevoir
            Ø     la bibliothèque est décrite à un niveau:
                     ü    opérateurs logiques
                     ü    opérateurs arithmétiques
                     ü    opérateurs plus complexes



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004       22
2) Méthodes de conception
   q     Conception descendante : dédiée
                                                                                      Spécification
            Ø     concevoir vite, bien
                                                                                      de niveau N
   q     Méthode en 3 temps :
                                                                                            Ce que fait le système
            Ø     description comportementale                                               (cahier des charges)
            Ø     simulation et validation
            Ø     description structurelle (architecture)


                                                                        Simulations    Etape N               Modèle
                                                                        Corrections


                                                                                             Comment il le fait
                                                                                               (réalisation)


                                                                                      Spécification
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004            de niveau N-1                  23
2) Méthodes de conception
   q     Raffinement successifs des descriptions
         (hiérarchisation)
            Ø     un bloc est définit comme un assemblage de sous blocs reliés entre
                  eux par des signaux
            Ø     garantie l’équivalence entre les niveaux
                      Mathématique                                  Comportemental                  Structurel


                              Etape       N                                  Etape   N-1                Etape   N-2
 Application                                            Formule                            Algorithme                 Architecture

                                                                      Conception descendante

                                                                      Conception ascendante

            Ø     Un seul langage pour tous les niveaux de conception (VHDL)
            Ø     Echange entre concepteurs
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                       24
2) Méthodes de conception
        Langage naturel                                                      Cahier des charges



                      Math lab                                                                      Modèle
                                                                                  Etape 1
                                                                                                  mathématique

                Simulateur                                                                            Modèle
              comportemental                                                      Etape 2         comportemental
                                                                                                  (algorithmique)

                    Simulateur                                                                       Modèle
                    “matériel”                                                    Etape 3
                                                                                                    structurel


                    Simulateur                                                                        Modèle
                     physique                                                     Etape 4
                                                                                                     physique


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                          25
2) Méthodes de conception
        Langage naturel                                                      Cahier des charges


                                                                                                    Modèle
                                                                                  Etape 1
                                                                                                  mathématique

            Simulateur                                                                                Modèle
                                                                                  Etape 2         comportemental
                                                                                                  (algorithmique)

                                                                                                     Modèle
                                                                                  Etape 3
                                                                                                    structurel
                      VHDL
                                                                                                      Modèle
                                                                                  Etape 4
                                                                                                     physique


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                          26
2) Méthodes de conception
   q     Modèles pour la conception : Synthèse de systèmes
         numériques

                                  Niveaux                                    Primitives         Représentations

                           Système                                     fonctions              Spécif de performances

                           Module hard                                 micro, port, ram       Réponse E/S, algorithme

                                                                                              Table de vérité, diag
                           Machine séquentielle                        Reg, UAL, Bus, mux     d’états, programme

                           Logique                                     Portes                 Equations booléennes


                           Circuit                                     Transistors, R, L, C   Equations différentielles


                           Silicium                                    Objets géométriques
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                27
2) Méthodes de conception
   q       Modèles de description VHDL :
            Ø     Structurel
                     ü    ne fait pas intervenir le temps
                     ü    décrit la structure de la fonction réalisée
                     ü    décrit un schéma, des connexions entre composants


            Ø     Comportemental
                     ü    algorithme
                     ü    le temps peut intervenir


            Ø     Flot de données
                     ü    exprime le flot de données sortants par rapport au flot entrant


                              Possibilité de mélanger ces modèles de description

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                  28
2) Méthodes de conception
   q     Intérêt de VHDL dans la conception descendante



                                             Description                                   Description
                                             informelle                                    informelle




                                                                             AVEC VHDL
                             SANS VHDL



                                              Equations                                   Spécification
                                              booléennes                                    en VHDL



                                                Schémas                                      Synthèse



                                                Synthèse
                                                                                   Le temps,
                                                                                   c'est de l'argent !!!
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                 29
2) Méthodes de conception
      q      Organisation de la conception :
               Ø     Découpage en unités de conception :
                        ü    ces unités s’auto suffisent
                        ü    elles peuvent être compilées séparément
                        ü    si la compilation est correcte alors les unités sont placées dans la
                             bibliothèque de travail
               Ø     Possibilité de partager les bibliothèques de ressources



             Bibliothèque                                                                   Bibliothèque
             de Robert                                                                      de Paul
                                                                             Bibliothèque
                                                                             commune




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                 30
2) Méthodes de conception
   q Bibliothèques                                                 et librairies
            Ø     A un instant donné, on travail avec la bibliothèque de travail :
                     ü    choix de cette bibliothèque :
                              • fait en dehors du langage VHDL
                              • par une commande liée au système de développement
            Ø     Il est possible d’utiliser d’autres bibliothèques qui sont alors des
                  bibliothèques de ressources :
            Ø     Par défaut, les bibliothèques WORK et STD sont inclues :
                     ü    elles permettent la manipulation des "objets" standards :
                              •    bit
                              •    vector de bit
                              •    string
                              •    integer
                              •    time
                              •    etc



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004               31
Unités de
                                      conception
                                       VHDL
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   32
3) Unités de conception
   q     Elles sont toujours constituées de 2 parties :
              vue externe                 vue interne




                       Boite noire                                           Description
                                Nom
                             paramètres                                        interne
                             connections




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                 33
3) Unités de conception
   q     Exemples :
            Ø     composants vue externe                                             vue interne


    A                                                                 S       A                                       S
                              Additionneur
    B                                                              Cout       B                                      Cout

 Cin                                                                         Cin


            Ø     packages vue externe                                              vue interne

                            déclaration de constantes                             description du corps de toutes
                            déclaration de types                                  les fonctions (y compris les
                            déclaration des entêtes des fonctions                 fonctions non visible de l’extérieur)


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                34
3) Unités de conception
   q     5 unités de conception disponible en VHDL :
            Ø     spécification d’entités
                     ü    (vue externe de la boite)                          Composant
            Ø     architecture
                     ü    (intérieur de la boite)


            Ø     configuration                                                 Liens entre
                     ü    (correspondance composants entités)                  les entités et
                                                                              les composants
                                                                                   utilisés

            Ø     spécification de paquetage
                     ü    (décrits les types, et sous programmes)                 Paquetage
            Ø     corps de paquetage
                     ü    (décrits le corps des sous programmes)
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                 35
3) Unités de conception
   q     Spécification d’entité :
            Ø     Définit la vue externe :                                     entity Additionneur is
                     ü    nom                                                         port ( A, B, Cin : in bit;
                     ü    entrées sorties :                                                   S, Cout : out bit)
                                                                               end Additionneur ;
                              • nombre
                              • sens
                              • type de données transportées
                     ü    (paramètres génériques)
                                                                                 Cin


                                                         A                                         S
                                                                             Additionneur
                                                         B                                         Cout

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                     36
3) Unités de conception
   q     Spécification d’architecture :
            Ø      Définit ce que fait l’entité
            Ø     3 modèles sont utilisables :
                     ü    comportemental                                                ce que fait l’entité
                     ü    structurel                                                    comment elle le fait
                     ü    flot de données
            Ø     Plusieurs architectures peuvent être définies pour une entité
                  (représentation à des niveaux d’abstraction différents)
                                Comportemental                                                       Structurel
Fonction
s = a.b + a.b
                                        Etape 1                                                       Etape 2
                                                                                                                  a
                                                       process                                                    b
                                                                                                                  a
                                                       if (not a and b)      or (a and not b) then                b
                                                                    s <=     ‘1’;
                                                       else
                                                                    s <=     ‘0’;
                                                       end if;
                                                                    wait     on a, b;
                                                       end process;                                                   37
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
3) Unités de conception
   q     Modèle comportemental :
            Ø     description du fonctionnement du système :
                     ü    algorithmes, machine d’états
            Ø     algorithme proche de ceux des langages de programmation
            Ø     le temps peut intervenir :
                     ü    permet de coller à la réalité par le respect des temps de traversée
            Ø     une description haut niveau est d’abord comportementale :
                     ü    elle sert de référence pour la suite de la conception




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                      38
3) Unités de conception
   q     Modèle comportemental
            Ø     algorithmes, équations logique, ...
                                            Additionneur
                     architecture comportementale of             Additionneur is
 A                   begin
                             process
                                     if (A = '0' AND             B = '0' AND Cin = '0') then

 B                                   end if;
                                             S <= '0             ’ after 5 ns; Cout <= '0 ’ after 5 ns;                 S
                                     if (A = '0' AND             B = '0' AND Cin = '1') then
                                             S <= '1             ’ after 5 ns; Cout <= '0 ’ after 5 ns;

Cin
                                     end if;
                                     if (A = '0' AND             B = '1' AND Cin = '0') then                            Cout
                                             S <= '1             ’ after 5 ns; Cout <= '0 ’ after 5 ns;
                                     end if;
                                     wait on A, B;
                             end process;
                     end comportementale;
                                                                                                          A   B   Cin          S   Cout
                                                                                                          0   0   0            0   0
                                                                                                          0   0   1            1   0
                                                                                                          0   1   0            1   0
                                                                                                          0   1   1            0   1
                                                                                                          1   0   0            1   0
                                                                                                          1   0   1            0   1
                                                                                                          1   1   0            0   1
                                                                                                          1   1   1            1   1

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                            39
3) Unités de conception
   q     Modèle comportemental
            Ø     algorithme


                     architecture comportementale2 of Additionneur is
                     begin
                               process (A, B, Cin)
                               begin
                                        if (A = '0' AND B = '0' AND Cin = '0') then
                                                    S <= '0 ’ after 5 ns; Cout <= '0 ’ after 5 ns;
   A                                    end if;
                                        if (A = '0' AND B = '0' AND Cin = '1') then
   B                                                S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns;
                                        end if;
                                        if (A = '0' AND B = '1' AND Cin = '0') then
 Cin                                                S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns;
                                        end if;
                               end process;
                     end comportementale2 ;


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                           40
3) Unités de conception
   q     Modèle structurel
            Ø     description par la structure :
                     ü    liste d’éléments
                     ü    interconnexions
            Ø     ne fait pas intervenir le temps :
                     ü    connexions permanentes
            Ø     une feuille au moment de la simulation ne peut être décrite
                  structurellement




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004      41
3) Unités de conception
   q     Modèle structurel
                                                                       Additionneur



                    A                                                             S2
                                                                u0                               u4   Cout
                    B
                                                                  u1         S1             S3
                                                                                       u2
                  Cin
                                                                                       u3             S



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                   42
3) Unités de conception


    architecture              structurelle1 of Additionneur is
                                                                             begin
                                                                                      u0 : porteET
            component porteOU
                                                                                             port map ( A, B, S2);
                  port (    e1 : in                     bit;
                            e2 : in                     bit;
                                                                                      u1 : porteXOR
                            s : out                     bit );
                                                                                             port map ( A, B, S1);
            end component;
            component porteET
                                                                                      u2 : porteET
                  port (    e1 : in                     bit;
                                                                                             port map ( S1, Cin, S3);
                            e2 : in                     bit;
                            s : out                     bit );
                                                                                      u3 : porteXOR
            end component;
                                                                                             port map ( S1, Cin, S);
            component porteXOR
                  port (    e1 : in                     bit;
                                                                                      u4 : porteOU
                            e2 : in                     bit;
                                                                                             port map ( S2, S1, Cout);
                            s : out                     bit );
            end component;
                                                                             end structurelle1;
            signal S1, S2, S3 : bit;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                              43
3) Unités de conception
                                                                                                        demi_add
   q     Modèle structurel : hiérarchisation



                                                                       Additionneur
                                                    demi_add
                 A                                                                S2               u2              Cout
                 B                                        u0
                                                           u0
                                                                             S1               S3

               Cin
                                                                                       u1
                                                                                        u1
                                                                                                                   S
                                                                                   demi_add


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                44
3) Unités de conception
                                       architecture              structurelle2 of Additionneur is

                                                          component porteOU
                                                                    port (      e1 : in bit;
                                                                                e2 : in bit;
                                                                                s : out bit );
                                                          end component;
                                                          component DemiADD
                                                                    port (      e1   :   in bit;
                                                                                e2   :   in bit;
                                                                                s1   :   out bit ;
                                                                                s2   :   out bit);
                                                          end component;

                                                          signal S1, S2, S3 : bit;

                                       begin
                                                          u0 : DemiADD
                                                                 port map ( A, B, S2, S1);

                                                          u1 : DemiADD
                                                                 port map ( S1, Cin, S3, S);

                                                          u2 : porteOU
                                                                 port map ( S2, S3, Cout);

                                       end structurelle2;


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                           45
3) Unités de conception
   q     Avec DemiAdd :                                                      Entity DemiAdd is
                                                                                       port (
                                                                                                 e1   :   in bit;
                                                                                                 e2   :   in bit;
                                                                                                 s1   :   out bit ;
                                                                                                 s2   :   out bit);
                                                                             end DemiAdd;

                                                                             architecture   structurelle of DemiAdd is

                                                                                      component porteET
                                                                                                port (        e1 : in bit;
                                                                                                              e2 : in bit;
                                                                                                              s : out bit );
                                                                                      end component;

                                                                                      component porteXOR
                                                                                                port (        e1 : in bit;
                                                                                                              e2 : in bit;
                                                                                                              s : out bit );
                                                                                      end component;

                                                                             begin
                                                                                      u0 : PorteET
                                                                                             port map ( e1, e2, s1);

                                                                                      u1 : porteXOR
                                                                                             port map ( e1, e2, s2);

                                                                             end structurelle;
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                     46
3) Unités de conception
   q     Modèle flot de données
                              Additionneur                                          architecture flot of Additionneur is
                                                                                              signal S1, S2, S3 : bit ;
                                                                                    begin
                                                                                              S1 <= A xor B after 10 ns ;
                                                                                              S2 <= A and B after 5 ns ;
       A                                  S2                                                  S3 <= S1 and Cin after 5 ns ;
                                                                             Cout             S   <= S1 xor Cin after 10 ns ;
       B                                                                                      Cout <= S2 or S3 after 5 ns ;
                                                                                    end flot ;
                                        S1               S3

   Cin

                                                                             S      architecture flot1 of Additionneur is
                                                                                              signal S1, S2, S3 : bit ;
                                                                                    begin
                                                                                              S   <= S1 xor Cin after 10 ns ;
                                                                                              Cout <= S2 or S3 after 5 ns ;
                                                                                              S1 <= A xor B after 10 ns ;
                                                                                              S2 <= A and B after 5 ns ;
                                                                                              S3 <= S1 and Cin after 5 ns ;
                                                                                    end flot ;
    L'ordre des descriptions n'a pas d'importance !!!
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                      47
3) Unités de conception
   q     Spécification de configuration :
            Ø     Effectue la liaison entre les composants utilisés dans une architecture
                  et leur réalisation effective
            Ø     Chaque utilisation d’un composant doit donner lieu à une
                  configuration, c.a.d qu’il faut spécifier le modèle dont le composant est
                  l’instance
            Ø     Indique pour chaque composant, le couple entité / architecture choisie
                  pour la réalisation
            Ø     Indique les correspondances entre les ports du composant et de son
                  modèle

                          Pour les instances label1, label2, etc du composant comp,
                           on doit utiliser l’entité ent associé à l’architecture arch
                               en prenant soin de faire correspondre tels ports
                                     aux ports formels de la même entité


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                48
3) Unités de conception
Soit un système utilisant un composant Add1 :
                                                        Entity Additionneur




           Architecture                                            Architecture                       Architecture
          comportement                                             structurelle1                          flot



          Configuration 1                                        Configuration 2                     Configuration 3


  configuration conf1 of Systeme is                      configuration conf2 of Systeme is        configuration conf3 of Systeme is

  for Add1 : Additionneur                                for Add1 : Additionneur                  for Add1 : Additionneur
      use entity                                             use entity                               use entity
     work.Additionneur (comportement) ;                     work.Additionneur (structurelle1) ;      work.Additionneur (flot) ;
  end for;                                               end for;                                 end for;

ENSSAT -conf1; de Rennes 1 - France - Année universitaire 2003 - 2004
  end Université                                             end conf1;                           end conf1;                      49
3) Unités de conception
q     Spécification de package :
    package nom                   is

                      constant PI : real ;                                   -- constante a valeur differee

                      type boolean is (FALSE, TRUE);

                      type couleur is (bleu, rouge, vert);

                      type caracteres is (‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ...., ‘9’, ‘0’,
                                       ‘a’, ‘b’, ...’z’ );

                      subtype positif is integer range 0 to integer’high;

                      procedure min (a: in integer ; b : in integer ; c : out integer);

                      function max (a : in integer ; b : in integer )                               return integer;

                      .....

    end nom;



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                            50
3) Unités de conception
q     Corps du package :

         package body nom                      is

                           constant PI : real := 3.1415 ;

                           procedure min (a: in integer ; b : in integer ; c : out integer) is
                                    variable ....
                                    begin
                                        ....
                           end min;

                           function max (a : in integer ; b : in integer )   return integer is
                                    variable ....
                                    begin
                                    ....
                                    return maximum ;
                           end max;

         end nom ;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                       51
Les objets
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   52
4) Les objets
   q     Constantes :
            Ø     valeur fixe après initialisation
   q     Variables :
            Ø     valeur modifiable par affectation (affectation instantanée)
   q     Signaux :
            Ø     spécifiques aux langages de description de matériel
            Ø     modélisent les informations qui circulent sur les fils ou bus
            Ø     gérés par un pilote (driver)


                                       10 ns         20 ns         30 ns     60 ns   120 ns 300 ns 750 ns
                              1
                                           0            1             0        1       0      1      0



            Ø     S <= '1', '0' after 10 ns, '1' after 20 ns, '0' after 30 ns, …
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                  53
4) Les objets
   q     Les signaux :
            Ø     ils sont la base des langages de description de matériel
            Ø     ils véhiculent les informations entre composants
            Ø     ils ne sont pas de type pointeur, pas de type fichier




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   54
4) Les objets
   q     Affectation de signaux :
            Ø     2 modes de fonctionnement :
                     ü    mode inertiel :
                              • filtre les impulsions de longueur insuffisante
                     ü    mode transmission :
                              • transmission de toutes les impulsions


                                                                             < à 10 ns   < à 10 ns



 S


 S1 <= S after 10 ns;

 S2 <= transport S after 10 ns


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                           55
4) Les objets
            Ø     Quel mode utiliser et quand ?
                     ü    Mode inertiel
                             • pour les composants dont le temps de traversé est non nul (tous les
                               composants décrits de façon réaliste)


                                       Impulsion inférieure à 5 ns


                   1
                   0                                        a
                                                                                 ET                 1
                                                                                               s
                   1                                                           Logique              0
                   0                                         b                  (5 ns)


                                                                        S <= A and B after 5 ns ;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                              56
4) Les objets
                     ü    Mode transport


                                                 Bus 1




                                                                                Bus 2


                                                                        Bus1 <= transport Bus2 ;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                         57
4) Les objets
     q      Affectations concurrentes de signaux :
              Ø     problème matériel sous jacent :
                        ü   le contrôleur doit s'assurer que les deux sorties de registres ne sont pas à
                            l'état basse impédance simultanément


                                                                             R1

                                                               cs1
                                                                             R2

                                                              cs2


              Ø     VHDL permet la constatation d'un problème de ce type :
                        ü   par la fonction de résolution
                        ü   la résolution du conflit sera réalisée durant la simulation du système


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                            58
4) Les objets
                                                                      Les types

          • Scalaires :
                   –     entiers                                             integer
                   –     flottants                                           real
                   –     types physiques                                     time
                   –     énumérés                                            (bleu, rouge, jaune, ...)
          • Composites :
                   – tableaux                                                array
                   – articles                                                record
          • Accès:
                                                                             access (new, deallocate)
                   – pointeurs
          • Fichiers (accès
                                                                             file (read, write, endfile)
            séquentiel, typé
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                 59
4) Les objets
   q     Le type scalaire :
            Ø     il dispose d’une relation d’ordre classique
                     ü    on peut les comparer (=, /=, <, >, <= et >=)
            Ø     restriction des valeurs possibles :
                     ü    range valeur1 to valeur2
                     ü    range valeur3 downto valeur4 (respect des habitudes des électroniciens, [poids fort ……….. poids faible])
                     ü    subtype positif is integer range 0 to integer'high ;
            Ø     type énuméré :
                     ü    on indique les valeurs symboliques qui peuvent être prise
                     ü    type couleur is (rouge, vert, bleu);
                     ü    type etat is (marche, arret, attente);
                     ü    le type caractère est un type énuméré,
            Ø     type physique :
                     ü    le type time est prédéfini dans le paquetage standard



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                           60
4) Les objets
            Ø     un type physique est caractérisé par :




                                                                                          e
                                                                                        nc
                     ü    son unité




                                                                                      da
                                                                                    on
                     ü    par des sous unités




                                                                                  sp
                                                                               rre
                     ü    on peut effectuer des calculs sur ces types




                                                                             Co
          type TIME is range -LimiteInferieure to LimiteSuperieure
                  units fs;
                                   ps = 1000 fs;
                                   ns = 1000 ps;
                                   us = 1000 ns;
                                   ms = 1000 us;
                                   sec = 1000 ms;        36 fs + (20 ps / 2 ) + 2 ns
                                   min = 60 sec;
                                   hr = 60 min;
                  end units;



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                    61
4) Les objets
   q     Les types composites :
            Ø     Tableaux et articles (array & record) :
                     ü    tableau : éléments homogènes, de même type
                     ü    articles : éléments hétérogènes, types différents
            Ø     Les tableaux :
                     ü    dimensions multiples
                     ü    les indices sont de type discret (énuméré ou entier)
                     ü    2 sortes de tableaux :
                              • contraint : on spécifie le sens de variation des indices
                                       1 to 15                               15 downto 1
                          type mot is array (15 downto 0) of bit;
                          type memoire is array (0 to 255) of mot;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                 62
4) Les objets
            Ø     Les tableaux non contraint :
                     ü    permet de repousser la définition de la taille à plus tard.
                     ü    la manipulation de ces tableaux demande l’utilisation d’attributs
                                       range <>

                     type string is array (positive range <>) of character;
                     type bus is array (positive range <>) of bit;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                    63
4) Les objets
   q     Les articles :
            Ø     des éléments de type différents
            Ø     les champs sont désignés par un nom
            Ø     les éléments sont désignés par la notation pointée

                  type article is record
                      champs1 : integer ;
                      champs2 : bit ;
                  end record;



            Ø     affectation par champs ou globale

                      A.champs1 := B.champs1 ;
                      A := B ;

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   64
4) Les objets
   q     Notation par agrégat
            Ø     indication de la valeur d’une variable de type composite

                   type tableau is array (0 to 4) of integer;

                   type article is record
                            champs1 : integer;
                            champs2 : bit;
                            champs3 : integer;
                   end record;


                     ü    par défaut : association "positionnelle"
                                         A: tableau := (5, 3, 1, 7, 9);
                                         B : article := (12, ‘1’, 9);
                     ü    association par nom :
                                         A: tableau := (1=>3, 4=>9, 0=> 5, 2=>1, 3=>7 );
                                         B : article := (champs2=>‘1’,champs3=> 9, champs1=> 12);
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                          65
4) Les objets
                     ü    association mixte :
                              • doit commencer par la partie "nominative"
                                          A: tableau := (4=>9, 0=> 5, others => 0);
                                          B : article := (champs2=>‘1’, others => 0);
                     équivalents à

                                          A := (5, 0, 0, 0, 9);
                                          B := (0, ‘1’, 0);

                     ü    les champs affectés par others doivent être du même type
                     ü    affectation à zéro d'un bus de type non contraint

                     type bus is array (positive range <>) of bit;
                                                                                    Pas très générique !!!
                     ...
                     signal BusData : bus (7 downto 0);
                     signal BusAddress : bus (15 downto 0);

                     ....
                     BusData <= (Others => 'Z') ;                                 BusData <= "ZZZZZZZZ";
                     BusAddress <= (Others => '0') ;                              BusAddress <= "000000....00000";
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                           66
4) Les objets
   q     Le type accès :
            Ø     Allocation dynamique de mémoire
            Ø     Pointeur sur un objet de type prédéfini
            Ø     Instructions :
                     ü    new
                     ü    deallocate

                  type article is record
                      champs1 : integer;                                                         Peu utilisé !
                      champs2 : bit;
                  end record;

                  type pointeur is access article;

                  variable p, q : pointeur;                                                      deallocate(p);

                  p:= new pointeur ;
                  q := new pointeur’(14, ‘0’);                               -- Initialisation
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                        67
4) Les objets
   q     Le type fichier :
            Ø     utilisé pour :
                     ü    fichiers de stimuli
                     ü    charger le contenu d’une ROM (par exemple)
            Ø     Un fichier est typé (pas de pointeur, pas de tableaux à plus de 1
                  dimension, pas de type composite)
            Ø     3 procédures sont créées implicitement :
                     ü    lecture ;                       écriture ; fin de fichier :

                                   type fich_txt is file of string;
                                   type fich_int if file of integer;

                                   txt : fich_txt ; int : fich_int;
                                   mot : string(1 to 10); a : integer;

                                   read (txt, mot);
                                   write(int,a);
                                   if endfile(txt) then
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004              68
4) Les objets
   q     Les sous types :
            Ø     compatible avec le type initial :
                     ü    conserve les propriétés
                     ü    restriction du type de base : restriction de l’espace des valeurs
                     ü    subtype naturel is integer range 0 to integer’high;
                     ü    subtype negatif is integer range integer’low to -1;
                     ü    subtype index is integer range 2 to 5;               -- indice d’un tableau
                     ü     sous type dynamique :
                              • subtype mot is VecteurDeBits (MAX-1 downto 0);
            Ø     lisibilité des descriptions
            Ø     sous types de sous types ......




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                              69
Les éléments
                       du langage
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   70
5) Les éléments du langage
   q     Opérations classiques :
            Ø     +, *, =, /=, ...., mod, and, or, ...
            Ø     possibilité de surcharger les opérateurs, les fonctions, les procédures
                  (de leur donner une autre signification)
   q     caractère : ‘X’
   q     chaînes de caractères : “.........”
   q     chaînes de bits :
            Ø     X“AB08”                                 : hexadécimale
            Ø     O“037”                                  : octale
            Ø     B“001101”                               : binaire
   q     Commentaires : -- ceci est un commentaire


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                  71
5) Les éléments du langage
   q     Initialisation des données, il s’agit d’une initialisation
         par défaut :
            Ø     pour les types scalaires : il s’agit du premier élément de l’énumération
                  (connue par l’attribut left)
            Ø     pour les types composites : il s’agit des premiers éléments de chaque
                  champs
            Ø     pour les pointeurs : null

             type couleur is (rouge, vert, bleu); -- valeur par défaut est
             rouge

             subtype positif is integer range 0 to integer’high;
                                         -- valeur par défaut est 0
             type article is record
                                champs1 : positif;
                                champs2 : couleur;
                                suivant : pointeur;
             end record;                 -- valeur par défaut ( 1, rouge, null)
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                   72
5) Les éléments du langage
   q     Les sous programmes : procédures et fonctions
            Ø     déclaration (optionnelle) : spécifie
                     ü     le type (fonction ou procédure)
                     ü    le nom
                     ü    la liste des paramètres:
                              • mode IN : pris par défaut, les données ne peuvent être que lues
                              • mode OUT : ne peut être lu, inutilisable pour appeler un autre sous
                                programme, inutilisable dans les fonctions (une fonction ne retourne que sa
                                valeur)
                              • mode INOUT : inutilisable dans les fonctions
                     ü    le type de valeur de retour



          Procedure MIN ( a, b : in integer; c : out integer) ;


                                                        Function MAX ( a, b : in integer) return integer ;

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                    73
5) Les éléments du langage
   q     Les sous programmes :
            Ø     corps, contient l’algorithme
                     ü    exemples



 Procedure MIN ( a, b : in integer; c : out integer) is
 begin
         if a<b then
                  c := a ;          Function MAX ( a, b : in integer) return integer is
         else                       begin
                  c:= b ;                      if a<b then
         end if;                                        return b ;
 end MIN ;                                     else
                                                        return a ;
                                               end if;
                                    end MAX ;



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                74
5) Les éléments du langage
   q     Les sous programmes :
            Ø     appel de sous programme :
                     ü    appel d’une procédure = instruction
                     ü    appel d’une fonction = expression
                     ü    passage de paramètres :
                              • par position
                              • par nom



 MIN ( var, 5, resultat) ;

 MIN ( b=> 5, a=> var, c=> resultat) ;
                                                                             x := MAX ( var, 5) ;

                                                                             x := MAX ( b=> 5, a=> var) ;




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                  75
5) Les éléments du langage
  q   Surcharge d’opérateurs :
        Ø   Addition de bit vector :
               ü   beaucoup d’outils dispose de bibliothèques permettant de réaliser cette
                   opération
               ü   si elle n’est pas présente, on surcharge l’opérateur +
            function “+” (A, B : in bit_vector ) return bit_vector; -- opérateur binaire

            function “+” (A : in bit_vector) return bit_vector ;                         -- opérateur unaire

            signal S1, S2, S3, S : bit_vector ;
             ....

            S <= S1 + S2 ;

            ou

                S <= “+” ( S1, S2 );                             -- Appel classique des fonctions
ENSSAT - Université de Rennes“+” (S1) ;
                S3 <= 1 - France - Année universitaire 2003 - 2004                                             76
5) Les éléments du langage
   q     Instructions séquentielles :
            Ø     wait :
                     ü    suspend l’exécution d’un processus
                     ü    plusieurs cas :
                              •    suspension jusqu’à la fin des temps : wait
                              •    suspension pendant un temps donnée : wait for 10 ns;
                              •    suspension jusqu’à événement sur signaux : wait on S1, S2
                              •    idem précédent plus condition : wait on S1, S2 until condition
                              •    idem précédent plus délai maximum d’attente :
                                                        wait on S1, S2 until condition for 5 ms


                     ü    interdit à l’intérieur d’une fonction (une fonction rend un résultat
                          immédiat, donc pas d’attente)




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                          77
5) Les éléments du langage
            Ø     assert :
                     ü    surveillance d’une condition
                     ü    envoie de message sous condition
                          assert (S1 = S2) report “Conflit de signaux” severity ERROR;
                          si la condition est vrai, on ne fait rien sinon on affiche le message
                     ü    4 niveaux de sévérité :
                              • NOTE, WARNING, ERROR, FAILURE
                     ü    intéressant lors de la mise au point de code VHDL

                             Ne pas hésiter à l’utiliser et à placer des messages clairs,
                                 indiquant le nom de l’entité, de l’architecture, etc.

               entity Additionneur i s
                              port (                A, B : in bit;
                                                    S : out bit)
               end Additionneur;
               architecture comportement of Additionneur i s
               begin
                              process (A, B)
                              begin
                                             assert ((A AND B) = '0') report "Additionneur : Probleme de debordement" severity warning;
                                             S <= A and B after 4 ns;
                              end process;
               end comportement;                                                                                                          78
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
5) Les éléments du langage
   q     Affectation de signaux :
            Ø     modification des valeurs futurs que prendra le signal
                                       S <= s1 after 10 ns, ‘0’ after 50 ns, ‘1’ after 100 ns;
                                       a <= b after 3 ns;
                                       c <= d ;           -- affectation avec délai delta
            Ø     les délais doivent être croissants
            Ø     notion de délai delta, il existe 2 dimensions du temps
                     ü    temps “réel’ : c’est le temps vu par le concepteur
                     ü    temps “delta” : c’est le temps géré par le simulateur pour réaliser la
                          succession des affectations




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                         79
5) Les éléments du langage
            Ø     soient deux affectations :

                     Q <= S nand Q ;                                         Temps vu par :
                     Q <= R nand Q ;                                                le simulateur   le concepteur




                S                                                              S

                R                                                              R


                Q                                                              Q

                Q                                                              Q
                                                  2 delta



ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                      80
5) Les éléments du langage
   q     Modélisation plus réaliste :
            Ø     on tient compte des contraintes technologiques (contraintes
                  matérielles)


                     Q <= S nand Q after 5 ns ;
                     Q <= R nand Q after 5 ns ;


                                                                             S

                                                                             R


                                                                             Q

                                                                             Q
                                                                                 5 ns

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004              81
5) Les éléments du langage
   q     Instructions conditionnelles :
            Ø     Structure if then else endif :
            if condition_boolenne then
                              sequence d’instructions 1 ;
            else
                              sequence d’instructions 2 ;
            end if;


            Ø     Structure if then elsif else endif :

            if condition_1 then
                              sequence d’instructions 1 ;
            elseif condition_2 then
                              sequence d’instructions 2 ;
            elseif condition_3 then
                              sequence d’instructions 2 ;
            end if;
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   82
5) Les éléments du langage
            Ø     Structure case


            case expression is
                when valeur1                                                 => sequence d’instructions ;
                when valeur2 | valeur3                                       => sequence d’instructions ;
                when valeur4 to valeur5                                      => sequence d’instructions ;
                when others                                                  => sequence d’instructions ;
            end case;


                            Très intéressant pour les descriptions de machine d’états

                                       C’est une structure très facile à générer et à reconnaître

                                       Les outils de synthèse (conception) reconnaissent très bien cette
                                       structure et savent en faire un schéma logique (transistors)
                                       optimisé
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                  83
5) Les éléments du langage
   q     Instructions de boucles :
            Ø     boucle infinie :
                  loop
                      séquence d’instructions ;
                  end loop;


            Ø     boucle while :
                  while condition loop
                     séquence d’instructions ;
                  end loop ;


            Ø     boucle for :                                               La variable de boucle peut ne pas être déclarées
                  for i in 1 to 10 loop
                       séquence d’instructions ;                                       for i in A’range loop
                  end loop;                                                                 séquence d’instructions ;
                                                                                       end loop;
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                 84
5) Les éléments du langage
   q     Les attributs :
            Ø     ils permettent de connaître les caractéristiques :
                     ü des signaux
                     ü des tableaux
                     ü des types


            Ø     très utilisés pour rendre les descriptions génériques




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   85
5) Les éléments du langage
            Ø     Attributs de signaux :
                     ü    S’event :
                              • boolean
                              • true si un événement vient d’arriver sur S pendant le cycle de simulation en
                                cours
                     ü    S’active :
                              • boolean
                              • true si il y a eu une transaction (affectation) sur le signal dans le cycle de
                                simulation en cours
                     ü    S’quiet(T) :
                              • boolean
                              • true si le signal a eu ni transaction ni événement pendant un temps T
                     ü    S’stable(T) :
                              • boolean
                              • true si il n’y a pas eu d'événement sur le signal pendant le temps T
                     ü    S’transaction :
                              • signal
                              • c’est un signal de type bit qui change d’états pour chaque transaction du
                                signal
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                       86
5) Les éléments du langage
                     ü    S’delayed :
                              • signal
                              • c’est un signal identique à S mais retardé de T
                     ü    S’last_event :
                              • time
                              • rend le temps écoulé depuis le dernier événement sur le signal
                     ü    S’last_active :
                              • time
                              • rend le temps écoulé depuis la dernière transaction
                     ü    S’last_value :
                              • type du signal
                              • rend la valeur du signal immédiatement avant le dernier changement de S




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                87
5) Les éléments du langage
                                     10 ns 20 ns 30 ns                 40 ns       55 ns 60 ns 70 ns 80 ns

               S

S’event                              T          T            F           T          T   F      F     T
S’active                             T          T            T F T             F    T   T      T     T

S’quiet(T)

S’stable(5 ns)


S’delayed(2 ns)




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                   88
5) Les éléments du langage
            Ø     Utilisation des attributs de signaux :
                     ü    détection d'un front montant :




                              • if (Clock'event and Clock = '1') then

                     ü    détection d'un front descendant :                  Logique synchrone




                              • if (Clock'event and Clock = '0') then


ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                       89
5) Les éléments du langage
            Ø     Attributs sur les types
                     ü    type etat is (Arret, Marche, Monter, Descendre) ;
                     ü    type NewBits ('0', '1', 'X', 'Z') ;
                     ü    type BitBus is range 15 downto 0;
                     ü    subtype positif is integer range 0 to integer'high;

                     ü    positif'base :
                              • renvoie le type de base
                                  – dans notre cas renvoie integer
                     ü    BitBus'high ===> 15
                     ü    BitBus'low ===> 0
                     ü    BitBus'left ===> 15
                     ü    NewBits'left ===> '0'
                     ü    NewBits'right ===> 'Z'
                     ü    etat'pos(Marche) ===> 1
                     ü    etat'val(2) ===> Monter
                     ü    etat'succ(Marche) ===> Monter
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004      90
5) Les éléments du langage
                     ü    etat'pred(Marche) ===> Arret
                     ü    NewBits'leftof('Z') ===> 'X'
                     ü    NewBits'rightof('1') ===> 'X'
                     ü    BitBus'ascending ===> false
                     ü    positif'ascending ===> true
                     ü    etat'image(Marche) ===> "Marche"                   chaîne de caractères
                     ü    etat'value("Arret") ===> Arret                     du type état




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                          91
5) Les éléments du langage
          Ø    Attributs de tableaux :
                  ü    type vecteur is array (1 to 37) of integer;
                  ü    type matrice is array (6 downto 2, 1 to 7) of real;
                  ü    variable A : vecteur; variable B : matrice;
                  ü    left, right, high, low, range, reverse_range, lenght, ascending

                           •   A'left ===> 1                         A’right ===> 37
                           •   A’high ===> 37              A'low ===> 1
                           •   A’length ===> 37            A'range ===> 1 to 37
                           •   A'reverse_range ===> 37 downto 1 A'ascending ===> true

                            • B’left(1) ===> 6                                     B'left(2) ===> 1
                            • B'right(1) ===> 2                                    B’right(2) ===> 7
                            • B’low(1) ===> 2                                      B'high(1) ===> 6
                            • B’low(2) ===> 1                                      B'high(2) ===> 7
                            • B’length(1) ===> 5                                   B'length(2) ===> 7
                            • B'range(1) ===> 16 downto 2                          B'reverse_range(1) ==> 2 to 6
                            • B'range(2) ===> 1 to 7                               B'reverse_range(2) ==> 7 downto 1
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 false
                            • B'ascending(1) ===>                                  B'ascending(2) ===> true            92
5) Les éléments du langage
            Ø     Utilisation des attributs de tableaux

                     ü    type vecteur is array (1 to 37) of integer;
                     ü    variable A : vecteur;


                     ü    for i in A'range loop




                     ü    if (A'left = 1) then




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   93
Instructions
                                 concurrentes
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004   94
6) Instructions concurrentes
   q     Les processus :
            Ø      ils sont caractérisés par :
                     ü    les signaux auxquels ils sont sensibles (liste de sensibilité)
                     ü    les opérations séquentielles contenues
            Ø     leur durée de vie d’un processus est égale au temps de simulation :
                     ü    il ne se termine jamais
                     ü    il peut s’endormir (wait)
            Ø     toute instruction concurrente peut être traduite en processus (et
                  notamment les affectations de signaux)
            Ø     2 possibilités :
                     ü    liste de sensibilité
                     ü    utilisation de l’instruction wait




ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                 95
6) Instructions concurrentes
            label : process (liste signaux)
                déclarations                                                            Forme peu employée,
                begin                                                                   il s’agit des vestiges des
                              instructions séquentielles                                premières spécifications
                     end process label ;                                                du langage



            label : process
                déclarations
                begin                                                             Transformation de ce processus
                              instructions séquentielles
                                                                             label : process
                              ....
                                                                                 déclarations
                              wait on liste signaux ;
                                                                                 begin
                     end process label ;
                                                                                       wait on liste signaux ;
                                                                                       ....
                                                                                       instructions séquentielles
                                                                                 end process label ;
ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                           96
6) Instructions concurrentes
            Ø     dans un système assemblant des entités décrites de façon
                  comportementale, les processus travaillent de façon concurrente

                            Système                                                       Composant 2

                                                   Composant 1
                                                                                          Processus 2
                                                        1
                                                    Processus 1




                                      Composant 4                                                                     Composant 3




                                     Processus 4
                                                                                                                      Processus 3




                                                                        Processus 2
                                                                                                        Processus 3
                                  Simulation
                                                                   Processus 4
                                                                                      Processus 1

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                                                          97
6) Instructions concurrentes
                     ü    plusieurs processus peuvent être présents dans une architecture


                                                  architecture decoupe of systeme is

                                                  begin

                                                        P1 : process
                                                                begin
                                                                …
                                                                …
                                                        end process P1;


                                                        P2 : process
                                                                begin
                                                                …
                                                                …
                                                        end process P2;


                                                         P3 : process
                                                                 begin
                                                                 …
                                                                 …
                                                         end process P3;

                                                  end decoupe;

ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004                  98
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl
Vhdl

Contenu connexe

Tendances

Cours d'électronique
Cours d'électroniqueCours d'électronique
Cours d'électroniqueRaja Birje
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours sarah Benmerzouk
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signauxBAKKOURY Jamila
 
Fstm deust mip-e141_cee_chap_v_les filtres passifs
Fstm deust mip-e141_cee_chap_v_les filtres passifsFstm deust mip-e141_cee_chap_v_les filtres passifs
Fstm deust mip-e141_cee_chap_v_les filtres passifsabdennaceur_baghdad
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Sana Aroussi
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptwafawafa52
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)Aymen Lachkhem
 
Mesure de température et humidité avec le capteur DHT11 et la Raspberry Pi 3
Mesure de température et humidité  avec le capteur DHT11 et la Raspberry Pi 3Mesure de température et humidité  avec le capteur DHT11 et la Raspberry Pi 3
Mesure de température et humidité avec le capteur DHT11 et la Raspberry Pi 3Chiheb Ameur ABID
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsSana Aroussi
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Hajer Dahech
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..sunprass
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industrielsHafsaELMessaoudi
 
cours1_courtellemont.ppt
cours1_courtellemont.pptcours1_courtellemont.ppt
cours1_courtellemont.pptTITANIUMALFREDO
 
Perceptron monocouche en français
Perceptron monocouche en françaisPerceptron monocouche en français
Perceptron monocouche en françaisHakim Nasaoui
 
64378311-Traitement-Du-Signal.ppt
64378311-Traitement-Du-Signal.ppt64378311-Traitement-Du-Signal.ppt
64378311-Traitement-Du-Signal.pptdocteurgyneco1
 

Tendances (20)

Cours d'électronique
Cours d'électroniqueCours d'électronique
Cours d'électronique
 
Codage
CodageCodage
Codage
 
chap4 codes-en-ligne
chap4 codes-en-lignechap4 codes-en-ligne
chap4 codes-en-ligne
 
traitement de signal cours
traitement de signal cours traitement de signal cours
traitement de signal cours
 
Microcontroleurs
MicrocontroleursMicrocontroleurs
Microcontroleurs
 
chap3 numerisation_des_signaux
chap3 numerisation_des_signauxchap3 numerisation_des_signaux
chap3 numerisation_des_signaux
 
Fstm deust mip-e141_cee_chap_v_les filtres passifs
Fstm deust mip-e141_cee_chap_v_les filtres passifsFstm deust mip-e141_cee_chap_v_les filtres passifs
Fstm deust mip-e141_cee_chap_v_les filtres passifs
 
Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86Chapitre iii processeur intel 80x86
Chapitre iii processeur intel 80x86
 
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.pptArchitecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
Architecture des ordinateurs Elaboré par- ABIDA Mounir.ppt
 
STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)STM32 F4 (PWM,SPI And ADC Test Examples)
STM32 F4 (PWM,SPI And ADC Test Examples)
 
Mesure de température et humidité avec le capteur DHT11 et la Raspberry Pi 3
Mesure de température et humidité  avec le capteur DHT11 et la Raspberry Pi 3Mesure de température et humidité  avec le capteur DHT11 et la Raspberry Pi 3
Mesure de température et humidité avec le capteur DHT11 et la Raspberry Pi 3
 
Chapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récentsChapitre i architectures des processeurs récents
Chapitre i architectures des processeurs récents
 
Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32Généralités sur les périphériques du STM32
Généralités sur les périphériques du STM32
 
Pic 16f877 ..
Pic 16f877 ..Pic 16f877 ..
Pic 16f877 ..
 
Automates programmables industriels
Automates programmables industrielsAutomates programmables industriels
Automates programmables industriels
 
cours1_courtellemont.ppt
cours1_courtellemont.pptcours1_courtellemont.ppt
cours1_courtellemont.ppt
 
Perceptron monocouche en français
Perceptron monocouche en françaisPerceptron monocouche en français
Perceptron monocouche en français
 
CODAGE.pptx
CODAGE.pptxCODAGE.pptx
CODAGE.pptx
 
64378311-Traitement-Du-Signal.ppt
64378311-Traitement-Du-Signal.ppt64378311-Traitement-Du-Signal.ppt
64378311-Traitement-Du-Signal.ppt
 
Traitement de signal 1
Traitement de signal 1Traitement de signal 1
Traitement de signal 1
 

Similaire à Vhdl

Vhdl cours
Vhdl coursVhdl cours
Vhdl courssgdaim
 
Etat de l'art sur la surveillance page 23
Etat de l'art sur la surveillance page 23Etat de l'art sur la surveillance page 23
Etat de l'art sur la surveillance page 23Chichan Ibn Adam
 
Couche1 couche2 s4_v05
Couche1 couche2 s4_v05Couche1 couche2 s4_v05
Couche1 couche2 s4_v05LeslyOctave
 
Soutenance séminaire bibliographique
Soutenance séminaire bibliographiqueSoutenance séminaire bibliographique
Soutenance séminaire bibliographiqueMaxime ALAY-EDDINE
 
Tralogy 2013-ttc platform
Tralogy 2013-ttc platformTralogy 2013-ttc platform
Tralogy 2013-ttc platformhblanca
 
Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10François Huguet
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfYasushiTsubakik
 
Poly reseau transparents_ppt
Poly reseau transparents_pptPoly reseau transparents_ppt
Poly reseau transparents_pptLily Babou
 
Création de bases de données
Création de bases de donnéesCréation de bases de données
Création de bases de donnéesRiadh ASSOUAK
 
AUF11 - 01 Introduction
AUF11 - 01 IntroductionAUF11 - 01 Introduction
AUF11 - 01 Introductionotb
 

Similaire à Vhdl (20)

Vhdl cours
Vhdl coursVhdl cours
Vhdl cours
 
Cours informatique 12
Cours informatique 12Cours informatique 12
Cours informatique 12
 
Lecours
LecoursLecours
Lecours
 
fortran 2.pdf
fortran 2.pdffortran 2.pdf
fortran 2.pdf
 
Etat de l'art sur la surveillance page 23
Etat de l'art sur la surveillance page 23Etat de l'art sur la surveillance page 23
Etat de l'art sur la surveillance page 23
 
Couche1 couche2 s4_v05
Couche1 couche2 s4_v05Couche1 couche2 s4_v05
Couche1 couche2 s4_v05
 
Soutenance séminaire bibliographique
Soutenance séminaire bibliographiqueSoutenance séminaire bibliographique
Soutenance séminaire bibliographique
 
Tralogy 2013-ttc platform
Tralogy 2013-ttc platformTralogy 2013-ttc platform
Tralogy 2013-ttc platform
 
Vsst 2010 le_semiopole_26102010
Vsst 2010 le_semiopole_26102010Vsst 2010 le_semiopole_26102010
Vsst 2010 le_semiopole_26102010
 
Transhumance pres
Transhumance presTranshumance pres
Transhumance pres
 
Cours VHLD.pptx
Cours VHLD.pptxCours VHLD.pptx
Cours VHLD.pptx
 
Cours s5 réseau FSO
Cours s5 réseau FSOCours s5 réseau FSO
Cours s5 réseau FSO
 
Formation LaTeX
Formation LaTeXFormation LaTeX
Formation LaTeX
 
Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10Transhumance pres anr_25-septembre synthese v10
Transhumance pres anr_25-septembre synthese v10
 
Support de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdfSupport de cours Conception orientée objets - partie 1.pdf
Support de cours Conception orientée objets - partie 1.pdf
 
R´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.docR´evision d’ontologies fond´ee sur tableaux.doc
R´evision d’ontologies fond´ee sur tableaux.doc
 
Smi5 cours partie1
Smi5 cours partie1Smi5 cours partie1
Smi5 cours partie1
 
Poly reseau transparents_ppt
Poly reseau transparents_pptPoly reseau transparents_ppt
Poly reseau transparents_ppt
 
Création de bases de données
Création de bases de donnéesCréation de bases de données
Création de bases de données
 
AUF11 - 01 Introduction
AUF11 - 01 IntroductionAUF11 - 01 Introduction
AUF11 - 01 Introduction
 

Dernier

Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre françaisTxaruka
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 37
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxJCAC
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfRiDaHAziz
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film françaisTxaruka
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film françaisTxaruka
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneTxaruka
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 37
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxMartin M Flynn
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 37
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfbdp12
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Gabriel Gay-Para
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 37
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24BenotGeorges3
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfSylvianeBachy
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursStagiaireLearningmat
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfRiDaHAziz
 

Dernier (18)

Bernard Réquichot.pptx Peintre français
Bernard Réquichot.pptx   Peintre françaisBernard Réquichot.pptx   Peintre français
Bernard Réquichot.pptx Peintre français
 
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdfBibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
Bibdoc 2024 - Les maillons de la chaine du livre face aux enjeux écologiques.pdf
 
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptxPrésentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
Présentation - Initiatives - CECOSDA - OIF - Fact Checking.pptx
 
PIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdfPIE-A2-P4-support stagiaires sept 22-validé.pdf
PIE-A2-P4-support stagiaires sept 22-validé.pdf
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx      Film   françaisPas de vagues.  pptx      Film   français
Pas de vagues. pptx Film français
 
Pas de vagues. pptx Film français
Pas de vagues.  pptx   Film     françaisPas de vagues.  pptx   Film     français
Pas de vagues. pptx Film français
 
Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024Bulletin des bibliotheques Burkina Faso mars 2024
Bulletin des bibliotheques Burkina Faso mars 2024
 
Chana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienneChana Orloff.pptx Sculptrice franco-ukranienne
Chana Orloff.pptx Sculptrice franco-ukranienne
 
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdfBibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
Bibdoc 2024 - Les intelligences artificielles en bibliotheque.pdf
 
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptxDIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
DIGNITAS INFINITA - DIGNITÉ HUMAINE; déclaration du dicastère .pptx
 
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
Bibdoc 2024 - L’Éducation aux Médias et à l’Information face à l’intelligence...
 
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdfLa Base unique départementale - Quel bilan, au bout de 5 ans .pdf
La Base unique départementale - Quel bilan, au bout de 5 ans .pdf
 
Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)Faut-il avoir peur de la technique ? (G. Gay-Para)
Faut-il avoir peur de la technique ? (G. Gay-Para)
 
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdfBibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
Bibdoc 2024 - Sobriete numerique en bibliotheque et centre de documentation.pdf
 
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
Newsletter SPW Agriculture en province du Luxembourg du 10-04-24
 
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdfVulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
Vulnérabilité numérique d’usage : un enjeu pour l’aide à la réussitepdf
 
Apprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceursApprendre avec des top et nano influenceurs
Apprendre avec des top et nano influenceurs
 
PIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdfPIE-A2-P 5- Supports stagiaires.pptx.pdf
PIE-A2-P 5- Supports stagiaires.pptx.pdf
 

Vhdl

  • 1. VHDL Support de cours D.Chillet Daniel.Chillet@enssat.fr http://r2d2.enssat.fr ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 1
  • 2. Qu'est ce que ça veut dire ? Vhsic Hardware Description Language Vhsic : Very High Speed Integrated Circuit Langage de description de systèmes matériels ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 2
  • 3. VHDL Plan 1 ) Introduction : motivations, historique 2 ) Méthode de conception: modèles de description 3 ) Unités de conception : entité, architecture, configuration, paquetage, corps de paquetage 4 ) Les objets : signaux, types, sous types 5 ) Les éléments du langage : opérateurs, procédures, fonctions, affectations 6 ) Instructions concurrentes : processus, blocs 7 ) La généricité 8 ) La fonction de résolution 9 ) Simulation et validation, réalisation d’un composant de test 10 ) Exemples : paquetage standard et exemples de codes VHDL ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 3
  • 4. Introduction ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 4
  • 5. 1) Introduction q Un HDL, qu’est ce que c'est ? Ø moyen de décrire un système matériel : ü qu’est qu’un système matériel ? • en général, il s’agit d’un schéma mettant en œuvre : – un certain nombre de composants – des connexions entre composants C2 C1 C4 C3 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 5
  • 6. 1) Introduction Ø les niveaux de description peuvent être variables : ü niveau logique ü niveau transfert de registres ü niveau système * + A B S ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 6
  • 7. 1) Introduction q Un HDL, doit : Ø permettre la modélisation du système : ü formalisation du problème ü à partir de briques de base ü éviter les descriptions ambiguë Ø faciliter la documentation du système : ü VHDL est très verbeux !!! ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 7
  • 8. 1) Introduction Ø la validation du système : ü prouver le fonctionnement du système décrit ü simulation : C2 C1 C4 C3 • une structure schématique ne peut être simulée que si on connaît le comportement de chacun des sous systèmes ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 8
  • 9. 1) Introduction Ø suivre la conception du système : ü si possible pas de changement de langage à chaque étape de conception Système Architecture Registres Portes Circuit Silicium ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 9
  • 10. 1) Introduction ü Outils et objets manipulés Système Schémas Architecture Outils de synthèse de haut niveau Description HDL Registres Equations Portes booléennes Circuit Objets Silicium ??? géométriques Structurel ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 Comportemental 10
  • 11. 1) Introduction Système Schémas Outils de synthèse VHDL Architecture de haut niveau Description HDL Registres Equations Portes booléennes Circuit Objets Silicium ??? géométriques Structurel ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 Comportemental 11
  • 12. 1) Introduction q Motivations pour une approche méthodologique : Ø évolutions technologiques rapprochées : ü la durée de vie des équipements est supérieure au laps de temps entre 2 technologies : • donc les systèmes doivent pouvoir supporter une évolution technologique ü se lier à une technologie dès la phase de conception peut conduire à mettre sur le marché un produit déjà dépassé Ø indépendance vis à vis des fournisseurs : ü se lier à un fournisseur dès la phase de conception peut conduire à revoir toute la conception si les composants ne sont plus disponibles Ø besoin de standardisation Ø nécessité de moyen de description non ambiguë des systèmes matériel : ü début des années 80 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 12
  • 13. 1) Introduction q Rapide historique : Ø DOD en 81: effort de normalisation entre 83 et 87 ü département de la défense Américaine Ø Normalisation IEEE en 87 (IEEE 1076) : ü efforts de normalisation : Intermetrics, IBM, Texas instrument Ø Le langage est proche de ADA : ü références constantes ü ADA a été normalisé définitivement en 83 Ø Nouvelle norme en 93 Ø Nouvelle normalisation autour de VHDL analogique : ü VHDL AMS ü pourquoi ? • demande en simulation analogique et en simulation mixte ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 13
  • 14. 1) Introduction q VHDL : Ø ne vise pas une exécution, il est utilisé pour : ü la simulation ü la synthèse Langage de synthèse ü la spécification ü la documentation modélisation Langage de Langage de simulation VHDL Langage de documentation ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 14
  • 15. 1) Introduction Ø la brique de base est le composant ou l'entité : ü tout système est bâti à partir de cette brique. ü dans les langages de programmation les briques de base sont les procédures et les fonctions : • la procédure est appelée puis oubliée : – activation explicite • le composant existe en soi : – activation implicite par événements sur ses entrées main() { ... x resultat resultat = Factorielle(x) Factorielle … } ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 15
  • 16. 1) Introduction Ø fonctionnement concurrent des composants : ü si a et b évoluent en même temps, alors les composants c1 et c2 ont un fonctionnement parallèle (concurrent) a s1 C1 b s2 C2 Ø notion de signal : ü connexion des composants entre eux s3 C4 C3 Ø la notion de temps est gérée : ü prise en compte des contraintes réel du matériel : 2 ns • temps de traversée, • de calcul, e1 s • etc. ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 e2 16
  • 17. 1) Introduction q Les avantages de VHDL : Ø indépendant du constructeur Ø indépendant de la technologie Portabilité Ø indépendant de la démarche Ø indépendant du niveau de conception Ø Standard IEEE : ü reconnu par les vendeurs d’outils CAO ü grand nombres de bibliothèques : • d’opérateurs • de composants • de fonction ü nombreux outils : • compilateur, simulateur • mais aussi des outils de synthèse et de spécification ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 17
  • 18. 1) Introduction Définition du langage : 1076.1 - version 1076-87 - version 1076-93 1076.2 1076 1076.3 VHDL 1076.4 Dans le langage : • définition du type bit : 1076.5 • bit ('0' , '1') • un peu juste 1164 STD LOGIC Package définissant les niveaux logique nécessaire pour la description des systèmes électronique Utilisé par tous les constructeurs et par tous les outils ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 18
  • 19. 1) Introduction q VHDL : Ø Langage moderne, puissant, général : ü jeu d’instructions complet et très riche ü fort typage des données ü compilation séparée des entités q Développement parallèle facilité : Ø travail d’équipe : ü découpage en unités de conception ü développement et validation parallèle ü nécessite de bien identifier les interfaces entre les blocs fonctionnels q Simulation du système : Ø à tous les niveaux : ü cahier des charges !!! Erreurs découvertes au plus tôt ü modèles dans le cycle de conception ü réalisation ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 19
  • 20. 1) Introduction 1 ère année : - modélisation Description - simulation informelle 2 ème année : Spécification en VHDL - modélisation - simulation - synthèse Synthèse ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 20
  • 21. Méthodes de conception ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 21
  • 22. 2) Méthodes de conception q Descendante : Ø on part du besoin et descend jusqu'au niveau physique Ø généralement, on s'arrête au niveau d'une bibliothèque : ü d'opérateurs logiques ü d'opérateurs arithmétiques ü d'opérateurs plus complexes q Ascendante : Ø on part d'une bibliothèque pour remonter, par assemblage, au système à concevoir Ø la bibliothèque est décrite à un niveau: ü opérateurs logiques ü opérateurs arithmétiques ü opérateurs plus complexes ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 22
  • 23. 2) Méthodes de conception q Conception descendante : dédiée Spécification Ø concevoir vite, bien de niveau N q Méthode en 3 temps : Ce que fait le système Ø description comportementale (cahier des charges) Ø simulation et validation Ø description structurelle (architecture) Simulations Etape N Modèle Corrections Comment il le fait (réalisation) Spécification ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 de niveau N-1 23
  • 24. 2) Méthodes de conception q Raffinement successifs des descriptions (hiérarchisation) Ø un bloc est définit comme un assemblage de sous blocs reliés entre eux par des signaux Ø garantie l’équivalence entre les niveaux Mathématique Comportemental Structurel Etape N Etape N-1 Etape N-2 Application Formule Algorithme Architecture Conception descendante Conception ascendante Ø Un seul langage pour tous les niveaux de conception (VHDL) Ø Echange entre concepteurs ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 24
  • 25. 2) Méthodes de conception Langage naturel Cahier des charges Math lab Modèle Etape 1 mathématique Simulateur Modèle comportemental Etape 2 comportemental (algorithmique) Simulateur Modèle “matériel” Etape 3 structurel Simulateur Modèle physique Etape 4 physique ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 25
  • 26. 2) Méthodes de conception Langage naturel Cahier des charges Modèle Etape 1 mathématique Simulateur Modèle Etape 2 comportemental (algorithmique) Modèle Etape 3 structurel VHDL Modèle Etape 4 physique ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 26
  • 27. 2) Méthodes de conception q Modèles pour la conception : Synthèse de systèmes numériques Niveaux Primitives Représentations Système fonctions Spécif de performances Module hard micro, port, ram Réponse E/S, algorithme Table de vérité, diag Machine séquentielle Reg, UAL, Bus, mux d’états, programme Logique Portes Equations booléennes Circuit Transistors, R, L, C Equations différentielles Silicium Objets géométriques ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 27
  • 28. 2) Méthodes de conception q Modèles de description VHDL : Ø Structurel ü ne fait pas intervenir le temps ü décrit la structure de la fonction réalisée ü décrit un schéma, des connexions entre composants Ø Comportemental ü algorithme ü le temps peut intervenir Ø Flot de données ü exprime le flot de données sortants par rapport au flot entrant Possibilité de mélanger ces modèles de description ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 28
  • 29. 2) Méthodes de conception q Intérêt de VHDL dans la conception descendante Description Description informelle informelle AVEC VHDL SANS VHDL Equations Spécification booléennes en VHDL Schémas Synthèse Synthèse Le temps, c'est de l'argent !!! ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 29
  • 30. 2) Méthodes de conception q Organisation de la conception : Ø Découpage en unités de conception : ü ces unités s’auto suffisent ü elles peuvent être compilées séparément ü si la compilation est correcte alors les unités sont placées dans la bibliothèque de travail Ø Possibilité de partager les bibliothèques de ressources Bibliothèque Bibliothèque de Robert de Paul Bibliothèque commune ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 30
  • 31. 2) Méthodes de conception q Bibliothèques et librairies Ø A un instant donné, on travail avec la bibliothèque de travail : ü choix de cette bibliothèque : • fait en dehors du langage VHDL • par une commande liée au système de développement Ø Il est possible d’utiliser d’autres bibliothèques qui sont alors des bibliothèques de ressources : Ø Par défaut, les bibliothèques WORK et STD sont inclues : ü elles permettent la manipulation des "objets" standards : • bit • vector de bit • string • integer • time • etc ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 31
  • 32. Unités de conception VHDL ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 32
  • 33. 3) Unités de conception q Elles sont toujours constituées de 2 parties : vue externe vue interne Boite noire Description Nom paramètres interne connections ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 33
  • 34. 3) Unités de conception q Exemples : Ø composants vue externe vue interne A S A S Additionneur B Cout B Cout Cin Cin Ø packages vue externe vue interne déclaration de constantes description du corps de toutes déclaration de types les fonctions (y compris les déclaration des entêtes des fonctions fonctions non visible de l’extérieur) ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 34
  • 35. 3) Unités de conception q 5 unités de conception disponible en VHDL : Ø spécification d’entités ü (vue externe de la boite) Composant Ø architecture ü (intérieur de la boite) Ø configuration Liens entre ü (correspondance composants entités) les entités et les composants utilisés Ø spécification de paquetage ü (décrits les types, et sous programmes) Paquetage Ø corps de paquetage ü (décrits le corps des sous programmes) ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 35
  • 36. 3) Unités de conception q Spécification d’entité : Ø Définit la vue externe : entity Additionneur is ü nom port ( A, B, Cin : in bit; ü entrées sorties : S, Cout : out bit) end Additionneur ; • nombre • sens • type de données transportées ü (paramètres génériques) Cin A S Additionneur B Cout ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 36
  • 37. 3) Unités de conception q Spécification d’architecture : Ø Définit ce que fait l’entité Ø 3 modèles sont utilisables : ü comportemental ce que fait l’entité ü structurel comment elle le fait ü flot de données Ø Plusieurs architectures peuvent être définies pour une entité (représentation à des niveaux d’abstraction différents) Comportemental Structurel Fonction s = a.b + a.b Etape 1 Etape 2 a process b a if (not a and b) or (a and not b) then b s <= ‘1’; else s <= ‘0’; end if; wait on a, b; end process; 37 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
  • 38. 3) Unités de conception q Modèle comportemental : Ø description du fonctionnement du système : ü algorithmes, machine d’états Ø algorithme proche de ceux des langages de programmation Ø le temps peut intervenir : ü permet de coller à la réalité par le respect des temps de traversée Ø une description haut niveau est d’abord comportementale : ü elle sert de référence pour la suite de la conception ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 38
  • 39. 3) Unités de conception q Modèle comportemental Ø algorithmes, équations logique, ... Additionneur architecture comportementale of Additionneur is A begin process if (A = '0' AND B = '0' AND Cin = '0') then B end if; S <= '0 ’ after 5 ns; Cout <= '0 ’ after 5 ns; S if (A = '0' AND B = '0' AND Cin = '1') then S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns; Cin end if; if (A = '0' AND B = '1' AND Cin = '0') then Cout S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns; end if; wait on A, B; end process; end comportementale; A B Cin S Cout 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 39
  • 40. 3) Unités de conception q Modèle comportemental Ø algorithme architecture comportementale2 of Additionneur is begin process (A, B, Cin) begin if (A = '0' AND B = '0' AND Cin = '0') then S <= '0 ’ after 5 ns; Cout <= '0 ’ after 5 ns; A end if; if (A = '0' AND B = '0' AND Cin = '1') then B S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns; end if; if (A = '0' AND B = '1' AND Cin = '0') then Cin S <= '1 ’ after 5 ns; Cout <= '0 ’ after 5 ns; end if; end process; end comportementale2 ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 40
  • 41. 3) Unités de conception q Modèle structurel Ø description par la structure : ü liste d’éléments ü interconnexions Ø ne fait pas intervenir le temps : ü connexions permanentes Ø une feuille au moment de la simulation ne peut être décrite structurellement ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 41
  • 42. 3) Unités de conception q Modèle structurel Additionneur A S2 u0 u4 Cout B u1 S1 S3 u2 Cin u3 S ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 42
  • 43. 3) Unités de conception architecture structurelle1 of Additionneur is begin u0 : porteET component porteOU port map ( A, B, S2); port ( e1 : in bit; e2 : in bit; u1 : porteXOR s : out bit ); port map ( A, B, S1); end component; component porteET u2 : porteET port ( e1 : in bit; port map ( S1, Cin, S3); e2 : in bit; s : out bit ); u3 : porteXOR end component; port map ( S1, Cin, S); component porteXOR port ( e1 : in bit; u4 : porteOU e2 : in bit; port map ( S2, S1, Cout); s : out bit ); end component; end structurelle1; signal S1, S2, S3 : bit; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 43
  • 44. 3) Unités de conception demi_add q Modèle structurel : hiérarchisation Additionneur demi_add A S2 u2 Cout B u0 u0 S1 S3 Cin u1 u1 S demi_add ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 44
  • 45. 3) Unités de conception architecture structurelle2 of Additionneur is component porteOU port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component DemiADD port ( e1 : in bit; e2 : in bit; s1 : out bit ; s2 : out bit); end component; signal S1, S2, S3 : bit; begin u0 : DemiADD port map ( A, B, S2, S1); u1 : DemiADD port map ( S1, Cin, S3, S); u2 : porteOU port map ( S2, S3, Cout); end structurelle2; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 45
  • 46. 3) Unités de conception q Avec DemiAdd : Entity DemiAdd is port ( e1 : in bit; e2 : in bit; s1 : out bit ; s2 : out bit); end DemiAdd; architecture structurelle of DemiAdd is component porteET port ( e1 : in bit; e2 : in bit; s : out bit ); end component; component porteXOR port ( e1 : in bit; e2 : in bit; s : out bit ); end component; begin u0 : PorteET port map ( e1, e2, s1); u1 : porteXOR port map ( e1, e2, s2); end structurelle; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 46
  • 47. 3) Unités de conception q Modèle flot de données Additionneur architecture flot of Additionneur is signal S1, S2, S3 : bit ; begin S1 <= A xor B after 10 ns ; S2 <= A and B after 5 ns ; A S2 S3 <= S1 and Cin after 5 ns ; Cout S <= S1 xor Cin after 10 ns ; B Cout <= S2 or S3 after 5 ns ; end flot ; S1 S3 Cin S architecture flot1 of Additionneur is signal S1, S2, S3 : bit ; begin S <= S1 xor Cin after 10 ns ; Cout <= S2 or S3 after 5 ns ; S1 <= A xor B after 10 ns ; S2 <= A and B after 5 ns ; S3 <= S1 and Cin after 5 ns ; end flot ; L'ordre des descriptions n'a pas d'importance !!! ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 47
  • 48. 3) Unités de conception q Spécification de configuration : Ø Effectue la liaison entre les composants utilisés dans une architecture et leur réalisation effective Ø Chaque utilisation d’un composant doit donner lieu à une configuration, c.a.d qu’il faut spécifier le modèle dont le composant est l’instance Ø Indique pour chaque composant, le couple entité / architecture choisie pour la réalisation Ø Indique les correspondances entre les ports du composant et de son modèle Pour les instances label1, label2, etc du composant comp, on doit utiliser l’entité ent associé à l’architecture arch en prenant soin de faire correspondre tels ports aux ports formels de la même entité ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 48
  • 49. 3) Unités de conception Soit un système utilisant un composant Add1 : Entity Additionneur Architecture Architecture Architecture comportement structurelle1 flot Configuration 1 Configuration 2 Configuration 3 configuration conf1 of Systeme is configuration conf2 of Systeme is configuration conf3 of Systeme is for Add1 : Additionneur for Add1 : Additionneur for Add1 : Additionneur use entity use entity use entity work.Additionneur (comportement) ; work.Additionneur (structurelle1) ; work.Additionneur (flot) ; end for; end for; end for; ENSSAT -conf1; de Rennes 1 - France - Année universitaire 2003 - 2004 end Université end conf1; end conf1; 49
  • 50. 3) Unités de conception q Spécification de package : package nom is constant PI : real ; -- constante a valeur differee type boolean is (FALSE, TRUE); type couleur is (bleu, rouge, vert); type caracteres is (‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ...., ‘9’, ‘0’, ‘a’, ‘b’, ...’z’ ); subtype positif is integer range 0 to integer’high; procedure min (a: in integer ; b : in integer ; c : out integer); function max (a : in integer ; b : in integer ) return integer; ..... end nom; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 50
  • 51. 3) Unités de conception q Corps du package : package body nom is constant PI : real := 3.1415 ; procedure min (a: in integer ; b : in integer ; c : out integer) is variable .... begin .... end min; function max (a : in integer ; b : in integer ) return integer is variable .... begin .... return maximum ; end max; end nom ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 51
  • 52. Les objets ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 52
  • 53. 4) Les objets q Constantes : Ø valeur fixe après initialisation q Variables : Ø valeur modifiable par affectation (affectation instantanée) q Signaux : Ø spécifiques aux langages de description de matériel Ø modélisent les informations qui circulent sur les fils ou bus Ø gérés par un pilote (driver) 10 ns 20 ns 30 ns 60 ns 120 ns 300 ns 750 ns 1 0 1 0 1 0 1 0 Ø S <= '1', '0' after 10 ns, '1' after 20 ns, '0' after 30 ns, … ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 53
  • 54. 4) Les objets q Les signaux : Ø ils sont la base des langages de description de matériel Ø ils véhiculent les informations entre composants Ø ils ne sont pas de type pointeur, pas de type fichier ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 54
  • 55. 4) Les objets q Affectation de signaux : Ø 2 modes de fonctionnement : ü mode inertiel : • filtre les impulsions de longueur insuffisante ü mode transmission : • transmission de toutes les impulsions < à 10 ns < à 10 ns S S1 <= S after 10 ns; S2 <= transport S after 10 ns ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 55
  • 56. 4) Les objets Ø Quel mode utiliser et quand ? ü Mode inertiel • pour les composants dont le temps de traversé est non nul (tous les composants décrits de façon réaliste) Impulsion inférieure à 5 ns 1 0 a ET 1 s 1 Logique 0 0 b (5 ns) S <= A and B after 5 ns ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 56
  • 57. 4) Les objets ü Mode transport Bus 1 Bus 2 Bus1 <= transport Bus2 ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 57
  • 58. 4) Les objets q Affectations concurrentes de signaux : Ø problème matériel sous jacent : ü le contrôleur doit s'assurer que les deux sorties de registres ne sont pas à l'état basse impédance simultanément R1 cs1 R2 cs2 Ø VHDL permet la constatation d'un problème de ce type : ü par la fonction de résolution ü la résolution du conflit sera réalisée durant la simulation du système ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 58
  • 59. 4) Les objets Les types • Scalaires : – entiers integer – flottants real – types physiques time – énumérés (bleu, rouge, jaune, ...) • Composites : – tableaux array – articles record • Accès: access (new, deallocate) – pointeurs • Fichiers (accès file (read, write, endfile) séquentiel, typé ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 59
  • 60. 4) Les objets q Le type scalaire : Ø il dispose d’une relation d’ordre classique ü on peut les comparer (=, /=, <, >, <= et >=) Ø restriction des valeurs possibles : ü range valeur1 to valeur2 ü range valeur3 downto valeur4 (respect des habitudes des électroniciens, [poids fort ……….. poids faible]) ü subtype positif is integer range 0 to integer'high ; Ø type énuméré : ü on indique les valeurs symboliques qui peuvent être prise ü type couleur is (rouge, vert, bleu); ü type etat is (marche, arret, attente); ü le type caractère est un type énuméré, Ø type physique : ü le type time est prédéfini dans le paquetage standard ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 60
  • 61. 4) Les objets Ø un type physique est caractérisé par : e nc ü son unité da on ü par des sous unités sp rre ü on peut effectuer des calculs sur ces types Co type TIME is range -LimiteInferieure to LimiteSuperieure units fs; ps = 1000 fs; ns = 1000 ps; us = 1000 ns; ms = 1000 us; sec = 1000 ms; 36 fs + (20 ps / 2 ) + 2 ns min = 60 sec; hr = 60 min; end units; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 61
  • 62. 4) Les objets q Les types composites : Ø Tableaux et articles (array & record) : ü tableau : éléments homogènes, de même type ü articles : éléments hétérogènes, types différents Ø Les tableaux : ü dimensions multiples ü les indices sont de type discret (énuméré ou entier) ü 2 sortes de tableaux : • contraint : on spécifie le sens de variation des indices 1 to 15 15 downto 1 type mot is array (15 downto 0) of bit; type memoire is array (0 to 255) of mot; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 62
  • 63. 4) Les objets Ø Les tableaux non contraint : ü permet de repousser la définition de la taille à plus tard. ü la manipulation de ces tableaux demande l’utilisation d’attributs range <> type string is array (positive range <>) of character; type bus is array (positive range <>) of bit; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 63
  • 64. 4) Les objets q Les articles : Ø des éléments de type différents Ø les champs sont désignés par un nom Ø les éléments sont désignés par la notation pointée type article is record champs1 : integer ; champs2 : bit ; end record; Ø affectation par champs ou globale A.champs1 := B.champs1 ; A := B ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 64
  • 65. 4) Les objets q Notation par agrégat Ø indication de la valeur d’une variable de type composite type tableau is array (0 to 4) of integer; type article is record champs1 : integer; champs2 : bit; champs3 : integer; end record; ü par défaut : association "positionnelle" A: tableau := (5, 3, 1, 7, 9); B : article := (12, ‘1’, 9); ü association par nom : A: tableau := (1=>3, 4=>9, 0=> 5, 2=>1, 3=>7 ); B : article := (champs2=>‘1’,champs3=> 9, champs1=> 12); ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 65
  • 66. 4) Les objets ü association mixte : • doit commencer par la partie "nominative" A: tableau := (4=>9, 0=> 5, others => 0); B : article := (champs2=>‘1’, others => 0); équivalents à A := (5, 0, 0, 0, 9); B := (0, ‘1’, 0); ü les champs affectés par others doivent être du même type ü affectation à zéro d'un bus de type non contraint type bus is array (positive range <>) of bit; Pas très générique !!! ... signal BusData : bus (7 downto 0); signal BusAddress : bus (15 downto 0); .... BusData <= (Others => 'Z') ; BusData <= "ZZZZZZZZ"; BusAddress <= (Others => '0') ; BusAddress <= "000000....00000"; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 66
  • 67. 4) Les objets q Le type accès : Ø Allocation dynamique de mémoire Ø Pointeur sur un objet de type prédéfini Ø Instructions : ü new ü deallocate type article is record champs1 : integer; Peu utilisé ! champs2 : bit; end record; type pointeur is access article; variable p, q : pointeur; deallocate(p); p:= new pointeur ; q := new pointeur’(14, ‘0’); -- Initialisation ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 67
  • 68. 4) Les objets q Le type fichier : Ø utilisé pour : ü fichiers de stimuli ü charger le contenu d’une ROM (par exemple) Ø Un fichier est typé (pas de pointeur, pas de tableaux à plus de 1 dimension, pas de type composite) Ø 3 procédures sont créées implicitement : ü lecture ; écriture ; fin de fichier : type fich_txt is file of string; type fich_int if file of integer; txt : fich_txt ; int : fich_int; mot : string(1 to 10); a : integer; read (txt, mot); write(int,a); if endfile(txt) then ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 68
  • 69. 4) Les objets q Les sous types : Ø compatible avec le type initial : ü conserve les propriétés ü restriction du type de base : restriction de l’espace des valeurs ü subtype naturel is integer range 0 to integer’high; ü subtype negatif is integer range integer’low to -1; ü subtype index is integer range 2 to 5; -- indice d’un tableau ü sous type dynamique : • subtype mot is VecteurDeBits (MAX-1 downto 0); Ø lisibilité des descriptions Ø sous types de sous types ...... ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 69
  • 70. Les éléments du langage ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 70
  • 71. 5) Les éléments du langage q Opérations classiques : Ø +, *, =, /=, ...., mod, and, or, ... Ø possibilité de surcharger les opérateurs, les fonctions, les procédures (de leur donner une autre signification) q caractère : ‘X’ q chaînes de caractères : “.........” q chaînes de bits : Ø X“AB08” : hexadécimale Ø O“037” : octale Ø B“001101” : binaire q Commentaires : -- ceci est un commentaire ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 71
  • 72. 5) Les éléments du langage q Initialisation des données, il s’agit d’une initialisation par défaut : Ø pour les types scalaires : il s’agit du premier élément de l’énumération (connue par l’attribut left) Ø pour les types composites : il s’agit des premiers éléments de chaque champs Ø pour les pointeurs : null type couleur is (rouge, vert, bleu); -- valeur par défaut est rouge subtype positif is integer range 0 to integer’high; -- valeur par défaut est 0 type article is record champs1 : positif; champs2 : couleur; suivant : pointeur; end record; -- valeur par défaut ( 1, rouge, null) ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 72
  • 73. 5) Les éléments du langage q Les sous programmes : procédures et fonctions Ø déclaration (optionnelle) : spécifie ü le type (fonction ou procédure) ü le nom ü la liste des paramètres: • mode IN : pris par défaut, les données ne peuvent être que lues • mode OUT : ne peut être lu, inutilisable pour appeler un autre sous programme, inutilisable dans les fonctions (une fonction ne retourne que sa valeur) • mode INOUT : inutilisable dans les fonctions ü le type de valeur de retour Procedure MIN ( a, b : in integer; c : out integer) ; Function MAX ( a, b : in integer) return integer ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 73
  • 74. 5) Les éléments du langage q Les sous programmes : Ø corps, contient l’algorithme ü exemples Procedure MIN ( a, b : in integer; c : out integer) is begin if a<b then c := a ; Function MAX ( a, b : in integer) return integer is else begin c:= b ; if a<b then end if; return b ; end MIN ; else return a ; end if; end MAX ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 74
  • 75. 5) Les éléments du langage q Les sous programmes : Ø appel de sous programme : ü appel d’une procédure = instruction ü appel d’une fonction = expression ü passage de paramètres : • par position • par nom MIN ( var, 5, resultat) ; MIN ( b=> 5, a=> var, c=> resultat) ; x := MAX ( var, 5) ; x := MAX ( b=> 5, a=> var) ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 75
  • 76. 5) Les éléments du langage q Surcharge d’opérateurs : Ø Addition de bit vector : ü beaucoup d’outils dispose de bibliothèques permettant de réaliser cette opération ü si elle n’est pas présente, on surcharge l’opérateur + function “+” (A, B : in bit_vector ) return bit_vector; -- opérateur binaire function “+” (A : in bit_vector) return bit_vector ; -- opérateur unaire signal S1, S2, S3, S : bit_vector ; .... S <= S1 + S2 ; ou S <= “+” ( S1, S2 ); -- Appel classique des fonctions ENSSAT - Université de Rennes“+” (S1) ; S3 <= 1 - France - Année universitaire 2003 - 2004 76
  • 77. 5) Les éléments du langage q Instructions séquentielles : Ø wait : ü suspend l’exécution d’un processus ü plusieurs cas : • suspension jusqu’à la fin des temps : wait • suspension pendant un temps donnée : wait for 10 ns; • suspension jusqu’à événement sur signaux : wait on S1, S2 • idem précédent plus condition : wait on S1, S2 until condition • idem précédent plus délai maximum d’attente : wait on S1, S2 until condition for 5 ms ü interdit à l’intérieur d’une fonction (une fonction rend un résultat immédiat, donc pas d’attente) ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 77
  • 78. 5) Les éléments du langage Ø assert : ü surveillance d’une condition ü envoie de message sous condition assert (S1 = S2) report “Conflit de signaux” severity ERROR; si la condition est vrai, on ne fait rien sinon on affiche le message ü 4 niveaux de sévérité : • NOTE, WARNING, ERROR, FAILURE ü intéressant lors de la mise au point de code VHDL Ne pas hésiter à l’utiliser et à placer des messages clairs, indiquant le nom de l’entité, de l’architecture, etc. entity Additionneur i s port ( A, B : in bit; S : out bit) end Additionneur; architecture comportement of Additionneur i s begin process (A, B) begin assert ((A AND B) = '0') report "Additionneur : Probleme de debordement" severity warning; S <= A and B after 4 ns; end process; end comportement; 78 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004
  • 79. 5) Les éléments du langage q Affectation de signaux : Ø modification des valeurs futurs que prendra le signal S <= s1 after 10 ns, ‘0’ after 50 ns, ‘1’ after 100 ns; a <= b after 3 ns; c <= d ; -- affectation avec délai delta Ø les délais doivent être croissants Ø notion de délai delta, il existe 2 dimensions du temps ü temps “réel’ : c’est le temps vu par le concepteur ü temps “delta” : c’est le temps géré par le simulateur pour réaliser la succession des affectations ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 79
  • 80. 5) Les éléments du langage Ø soient deux affectations : Q <= S nand Q ; Temps vu par : Q <= R nand Q ; le simulateur le concepteur S S R R Q Q Q Q 2 delta ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 80
  • 81. 5) Les éléments du langage q Modélisation plus réaliste : Ø on tient compte des contraintes technologiques (contraintes matérielles) Q <= S nand Q after 5 ns ; Q <= R nand Q after 5 ns ; S R Q Q 5 ns ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 81
  • 82. 5) Les éléments du langage q Instructions conditionnelles : Ø Structure if then else endif : if condition_boolenne then sequence d’instructions 1 ; else sequence d’instructions 2 ; end if; Ø Structure if then elsif else endif : if condition_1 then sequence d’instructions 1 ; elseif condition_2 then sequence d’instructions 2 ; elseif condition_3 then sequence d’instructions 2 ; end if; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 82
  • 83. 5) Les éléments du langage Ø Structure case case expression is when valeur1 => sequence d’instructions ; when valeur2 | valeur3 => sequence d’instructions ; when valeur4 to valeur5 => sequence d’instructions ; when others => sequence d’instructions ; end case; Très intéressant pour les descriptions de machine d’états C’est une structure très facile à générer et à reconnaître Les outils de synthèse (conception) reconnaissent très bien cette structure et savent en faire un schéma logique (transistors) optimisé ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 83
  • 84. 5) Les éléments du langage q Instructions de boucles : Ø boucle infinie : loop séquence d’instructions ; end loop; Ø boucle while : while condition loop séquence d’instructions ; end loop ; Ø boucle for : La variable de boucle peut ne pas être déclarées for i in 1 to 10 loop séquence d’instructions ; for i in A’range loop end loop; séquence d’instructions ; end loop; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 84
  • 85. 5) Les éléments du langage q Les attributs : Ø ils permettent de connaître les caractéristiques : ü des signaux ü des tableaux ü des types Ø très utilisés pour rendre les descriptions génériques ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 85
  • 86. 5) Les éléments du langage Ø Attributs de signaux : ü S’event : • boolean • true si un événement vient d’arriver sur S pendant le cycle de simulation en cours ü S’active : • boolean • true si il y a eu une transaction (affectation) sur le signal dans le cycle de simulation en cours ü S’quiet(T) : • boolean • true si le signal a eu ni transaction ni événement pendant un temps T ü S’stable(T) : • boolean • true si il n’y a pas eu d'événement sur le signal pendant le temps T ü S’transaction : • signal • c’est un signal de type bit qui change d’états pour chaque transaction du signal ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 86
  • 87. 5) Les éléments du langage ü S’delayed : • signal • c’est un signal identique à S mais retardé de T ü S’last_event : • time • rend le temps écoulé depuis le dernier événement sur le signal ü S’last_active : • time • rend le temps écoulé depuis la dernière transaction ü S’last_value : • type du signal • rend la valeur du signal immédiatement avant le dernier changement de S ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 87
  • 88. 5) Les éléments du langage 10 ns 20 ns 30 ns 40 ns 55 ns 60 ns 70 ns 80 ns S S’event T T F T T F F T S’active T T T F T F T T T T S’quiet(T) S’stable(5 ns) S’delayed(2 ns) ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 88
  • 89. 5) Les éléments du langage Ø Utilisation des attributs de signaux : ü détection d'un front montant : • if (Clock'event and Clock = '1') then ü détection d'un front descendant : Logique synchrone • if (Clock'event and Clock = '0') then ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 89
  • 90. 5) Les éléments du langage Ø Attributs sur les types ü type etat is (Arret, Marche, Monter, Descendre) ; ü type NewBits ('0', '1', 'X', 'Z') ; ü type BitBus is range 15 downto 0; ü subtype positif is integer range 0 to integer'high; ü positif'base : • renvoie le type de base – dans notre cas renvoie integer ü BitBus'high ===> 15 ü BitBus'low ===> 0 ü BitBus'left ===> 15 ü NewBits'left ===> '0' ü NewBits'right ===> 'Z' ü etat'pos(Marche) ===> 1 ü etat'val(2) ===> Monter ü etat'succ(Marche) ===> Monter ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 90
  • 91. 5) Les éléments du langage ü etat'pred(Marche) ===> Arret ü NewBits'leftof('Z') ===> 'X' ü NewBits'rightof('1') ===> 'X' ü BitBus'ascending ===> false ü positif'ascending ===> true ü etat'image(Marche) ===> "Marche" chaîne de caractères ü etat'value("Arret") ===> Arret du type état ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 91
  • 92. 5) Les éléments du langage Ø Attributs de tableaux : ü type vecteur is array (1 to 37) of integer; ü type matrice is array (6 downto 2, 1 to 7) of real; ü variable A : vecteur; variable B : matrice; ü left, right, high, low, range, reverse_range, lenght, ascending • A'left ===> 1 A’right ===> 37 • A’high ===> 37 A'low ===> 1 • A’length ===> 37 A'range ===> 1 to 37 • A'reverse_range ===> 37 downto 1 A'ascending ===> true • B’left(1) ===> 6 B'left(2) ===> 1 • B'right(1) ===> 2 B’right(2) ===> 7 • B’low(1) ===> 2 B'high(1) ===> 6 • B’low(2) ===> 1 B'high(2) ===> 7 • B’length(1) ===> 5 B'length(2) ===> 7 • B'range(1) ===> 16 downto 2 B'reverse_range(1) ==> 2 to 6 • B'range(2) ===> 1 to 7 B'reverse_range(2) ==> 7 downto 1 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 false • B'ascending(1) ===> B'ascending(2) ===> true 92
  • 93. 5) Les éléments du langage Ø Utilisation des attributs de tableaux ü type vecteur is array (1 to 37) of integer; ü variable A : vecteur; ü for i in A'range loop ü if (A'left = 1) then ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 93
  • 94. Instructions concurrentes ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 94
  • 95. 6) Instructions concurrentes q Les processus : Ø ils sont caractérisés par : ü les signaux auxquels ils sont sensibles (liste de sensibilité) ü les opérations séquentielles contenues Ø leur durée de vie d’un processus est égale au temps de simulation : ü il ne se termine jamais ü il peut s’endormir (wait) Ø toute instruction concurrente peut être traduite en processus (et notamment les affectations de signaux) Ø 2 possibilités : ü liste de sensibilité ü utilisation de l’instruction wait ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 95
  • 96. 6) Instructions concurrentes label : process (liste signaux) déclarations Forme peu employée, begin il s’agit des vestiges des instructions séquentielles premières spécifications end process label ; du langage label : process déclarations begin Transformation de ce processus instructions séquentielles label : process .... déclarations wait on liste signaux ; begin end process label ; wait on liste signaux ; .... instructions séquentielles end process label ; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 96
  • 97. 6) Instructions concurrentes Ø dans un système assemblant des entités décrites de façon comportementale, les processus travaillent de façon concurrente Système Composant 2 Composant 1 Processus 2 1 Processus 1 Composant 4 Composant 3 Processus 4 Processus 3 Processus 2 Processus 3 Simulation Processus 4 Processus 1 ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 97
  • 98. 6) Instructions concurrentes ü plusieurs processus peuvent être présents dans une architecture architecture decoupe of systeme is begin P1 : process begin … … end process P1; P2 : process begin … … end process P2; P3 : process begin … … end process P3; end decoupe; ENSSAT - Université de Rennes 1 - France - Année universitaire 2003 - 2004 98