0% ont trouvé ce document utile (0 vote)
83 vues57 pages

M2 R&C Esys

Transféré par

Meki Petit Seg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
83 vues57 pages

M2 R&C Esys

Transféré par

Meki Petit Seg
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPTX, PDF, TXT ou lisez en ligne sur Scribd

Composants et Logiciels pour les Systèmes Embarqués

Introduction au langage
VHDL

MASTER II: Réseaux & Communications

[email protected]
Université LARBI TEBESSI Master II : R&C Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Plan
Rappel d’électronique
Le langage VHDL
Exemple VHDL
Conception en VHDL
Simulation en VHDL
Rappel d’électronique
Synthèse en VHDL Introduction au langage VHDL : Historique,
Structure du langage, Expressions…
Exemple VHDL
Conception en VHDL : Les automates, Règles
d’écriture…
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 02
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Le transistor
Rappel d’électronique
 Le transistor
 Portes élémentaires Composant électronique de base
 Circuits combinatoires
 Logique séquentielle Portes logiques ON/OFF
 Composants séquentiels
 Circuits séquentiels
Le langage VHDL
Exemple VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 03
Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

La technologie CMOS
Rappel d’électronique
 Le transistor
 Portes élémentaires Complementary Metal Oxide Semiconductor
 Circuits combinatoires
 Logique séquentielle Niveaux logiques : 0 = 0V et 1 = 3V
 Composants séquentiels
 Circuits séquentiels
Deux types de portes :
Le langage VHDL
nMOS : Conducteur si la grille =1
Exemple VHDL
Conception en VHDL pMOS : Conducteur si la grille = 0
Simulation en VHDL
Synthèse en VHDL Réalisation de quelques portes
de base :
Inverseur, NAND, OR…etc

Master II : R&C 04
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Portes élémentaires
Rappel d’électronique
 Le transistor
 Portes élémentaires
 Circuits combinatoires
 Logique séquentielle
 Composants séquentiels
 Circuits séquentiels
Le langage VHDL
Exemple VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 05
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Conception des circuits combinatoires


Rappel d’électronique
 Le transistor
1. Description du problème:
 Portes élémentaires
- y vaut « 1 » si a vaut 1 ou b et c valent « 1 ».
 Circuits combinatoires
 Logique séquentielle - z vaut « 1 » si b ou c valent « 1 » (mais pas les
 Composants séquentiels
deux) ou si a, b et c valent « 1 ».
 Circuits séquentiels
Le langage VHDL 2. Table de vérité :
Exemple VHDL
Conception en VHDL 3.Équations logiques :
Simulation en VHDL
Synthèse en VHDL

4.Équations optimisées :

5.Portes logiques :

Master II : R&C 06
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Circuits combinatoires fréquents


Rappel d’électronique
 Le transistor
1. Multiplexeur à « n » entrées.
 Portes élémentaires
2. Décodeur : log(n) → n
 Circuits combinatoires
 Logique séquentielle 3.Additionneur « n » bits .
 Composants séquentiels
 Circuits séquentiels 4. Comparateur « n » bits.
Le langage VHDL
Exemple VHDL 5.ALU « n » bits.
Conception en VHDL
Simulation en VHDL
etc...
Synthèse en VHDL

Master II : R&C 07
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Logique séquentielle
Rappel d’électronique
Bascule RS : lorsque R et S passe à 0, Q et Q conservent leur
 Le transistor
 Portes élémentaires
valeur antérieure.
 Circuits combinatoires
 Logique séquentielle
 Composants séquentiels
 Circuits séquentiels
Le langage VHDL
Exemple VHDL
Conception en VHDL
Simulation en VHDL Bascule D: permet d’échantillonner la valeur de la donnée
Synthèse en VHDL lorsque l’horloge passe à « 1 » (front montant de l’horloge) et
de conserver cette valeur lorsque l’horloge passe à « 0 ».

Master II : R&C 08
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Composants séquentiels fréquents


Rappel d’électronique
 Le transistor
1. Registre « n » bits (avec éventuellement un Reset, Load
 Portes élémentaires et ClockEnable).
 Circuits combinatoires
 Logique séquentielle
2.Registre à décalage « n » bits .
 Composants séquentiels
3. Compteur « n » bits (régulier ou aléatoire).
 Circuits séquentiels
Le langage VHDL 4.Automates (machine à états).
Exemple VHDL
Conception en VHDL etc...
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 09
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Conception de circuits séquentiels


Rappel d’électronique
 Le transistor Extrêmement complexe en général.
 Portes élémentaires
De nombreux modèles de calculs:
 Circuits combinatoires
 Logique séquentielle Séquentiel
 Composants séquentiels
•Machine à états
 Circuits séquentiels
Le langage VHDL •Contrôleur + chemin de données
Exemple VHDL Parallélisme de tâches
Conception en VHDL
•Processus communicants
Simulation en VHDL
Synthèse en VHDL Parallélisme de données
Calcul sur des flots de données
Circuits multi-horloge
Paradigme synchrone
Circuits asynchrone
Notion sous-jacente très utilisée: automate à états finit.

Master II : R&C 10
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Qu’es ce que VHDL?


Rappel d’électronique
Le langage VHDL
 Introduction VHSIC (Very High Speed Integrated Circuit) Hardware
 Historique
Description Langage.
 Syntaxe
 Langage Langage qui décrit: la structure et le comportement de
 Librairies
systèmes électroniques, en particulier des C.D. (ASIC, FPGA …)
 Entité
 Architecture Standard IEEE.
 Signal et variable
Indépendant de la technologie cible.
 Type
 Opérateur Indépendant de la méthodologie de conception.
 Process
Indépendant des outils de conception.
Exemples VHDL
Conception en VHDL Langage très général ! très complexe (! dépendent de tout!)
Simulation en VHDL
VHDL n’est pas un langage de programmation
Synthèse en VHDL
c’est un langage de description (spécification) de système.

Master II : R&C 11
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 12
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 12
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 12
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 12
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique Du composant au système complexe,
Le langage VHDL
 Introduction
divers niveaux d'abstraction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 13
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveaux d’abstraction
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 14
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Historique
Rappel d’électronique
Le langage VHDL
1980: le département de défense américain lance un appel
 Introduction d’offre pour un langage qui permettrait de décrire tous les
 Historique systèmes électroniques utilisés.
 Syntaxe
 Langage •Motivation affichée: réutilisabilité et réduction des
 Librairies coûts de conception.
 Entité
 Architecture 1983 trois compagnies (Intermetics, IBM, Texas
 Signal et variable
Instruments) commencent le développement.
 Type
 Opérateur 1985: première version officielle de VHDL (version 7.2).
 Process
Exemples VHDL 1986: VHDL est donné à IEEE pour en faire un standard.
Conception en VHDL
Simulation en VHDL 1987: Standard IEEE 1076-1987.
Synthèse en VHDL
1993: Standard IEEE 1076-1993.
1999: Standard IEEE 1076.6-1999
Master II : R&C 15
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Conventions lexicales
Rappel d’électronique Comme en C, un code VHDL est composé d’une suite
Le langage VHDL
d’éléments :
 Introduction
 Historique commentaires
 Syntaxe Délimiteurs
 Langage Identificateurs,
 Librairies
Expressions (terminées par un point-virgule),
 Entité
 Architecture
Mots-clefs
 Signal et variable Littéraux(constantes), par exemple:
 Type 67 est un entier
 Opérateur ‘0’ est un bit « 000 », O « 562 », X « FF1 » sont des
 Process
vecteurs de bits
Exemples VHDL
Conception en VHDL
« Chaine » est une chaine de caractères.
Simulation en VHDL VHDL est insensible à la casse. On écrit souvent les mots
Synthèse en VHDL
réservés du langage en majuscule et le reste en minuscule.
Les commentaires commencent par deux tirets : (- -)

Master II : R&C 16
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Structure du langage
Rappel d’électronique
Le langage VHDL
Comme en C, un code VHDL est composé d’une suite
 Introduction d’éléments :
 Historique
L’entité: description de l’interface du composant: le
 Syntaxe
 Langage
nom et ses ports d’entrée/sortie.
 Librairies L’architecture décrit l’intérieur du composant. Il peut y
 Entité avoir plusieurs architectures pour le même composant
 Architecture
(ex: une pour la simulation efficace, une pour la
 Signal et variable
 Type
synthèse). L’architecture contient les processus.
 Opérateur La déclaration de paquetage. Un paquetage est une
 Process
collection d’objets réutilisables (constantes, types,
Exemples VHDL
Conception en VHDL
composants, procédures)
Simulation en VHDL Le corps de paquetage.
Synthèse en VHDL
La configuration indiquant quelle architecture utiliser
pour chaque entité.

Master II : R&C 17
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Le langage
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 18
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Bibliothèques
Les bibliothèques sont déclarée avec le mot clé library, elle
Rappel d’électronique
dépendent des outils utilisés.
Le langage VHDL
Elle contient des paquetages que l’on déclare vouloir utiliser avec
 Introduction
 Historique
le mot clé use:
 Syntaxe
use BIBLIOTHEQUE.PAQUETAGE.all;
 Langage La bibliothèque par défaut est WORK. WORK est aussi le nom
 Librairies symbolique de la bibliothèque dans laquelle sont stockés les
 Entité résultats.
 Architecture La bibliothèque STD est une bibliothèque standard fournie avec
 Signal et variable le langage , elle contient des définitions des types et des fonctions de
 Type base (integer, bit,...).
 Opérateur Par défaut, les outils considère que l’on utilise les bibliothèques
 Process
STD et WORK, il y a donc implicitement:
Exemples VHDL
library STD;
Conception en VHDL
library WORK;
Simulation en VHDL
En général, on utilise la librairie suivante IEEE qui définit le
Synthèse en VHDL
type std_logic:
library ieee;
use ieee.std_logic;
Master II : R&C 19
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

L’entité
Rappel d’électronique
L’entité est la description de l’interface du circuit . Elle
Le langage VHDL
 Introduction
correspond au symbole dans les représentations
 Historique
schématiques.
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
library ieee;
 Opérateur
use ieee.std_logic_1164.all;
 Process
Exemples VHDL
ENTITY FA IS
Conception en VHDL
port(A, B, Cin: in STD_LOGIC;
Simulation en VHDL S, COut: out STD_LOGIC);
Synthèse en VHDL END ENTITY FA;

Master II : R&C 20
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

L’architecture
Rappel d’électronique C’est la description interne du circuit.
Le langage VHDL
 Introduction
Toujours associée à une entité.
 Historique Une entité peut avoir plusieurs architectures.
 Syntaxe
 Langage architecture arch1 of fa is
 Librairies signal resultat : STD_LOGIC_VECTOR(1 downto 0);
 Entité
begin
 Architecture
resultat <= (’0’ & a) + (’0’ & b) + (’0’ &cin);
 Signal et variable
s <= resultat(0);
 Type
cout <= resultat(1);
 Opérateur
 Process
end arch1;
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 21
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

L’architecture
Rappel d’électronique C’est la description interne du circuit.
Le langage VHDL
 Introduction
Toujours associée à une entité.
 Historique Une entité peut avoir plusieurs architectures.
 Syntaxe
 Langage architecture arch1 of fa is
 Librairies signal resultat : STD_LOGIC_VECTOR(1 downto 0);
 Entité
begin
 Architecture
resultat <= (’0’ & a) + (’0’ & b) + (’0’ &cin);
 Signal et variable
s <= resultat(0);
 Type
cout <= resultat(1);
 Opérateur
 Process
end arch1;
Exemples VHDL
Conception en VHDL architecture arch2 of fa is
Simulation en VHDL begin
Synthèse en VHDL s <= a xor b xor cin;
cout <=(a and b) or ((a xor b) and cin);
end arch2;

Master II : R&C 21
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Corps de l’architecture
Rappel d’électronique
Le langage VHDL Dans le corps de
 Introduction l’architecture on trouve les 3 Begin
 Historique types d’instructions -- process
 Syntaxe
concurrentes de VHDL. P1 : process (SI, Cin)
 Langage
Begin
 Librairies Elle peuvent écrites dans s <= SI xor cin;
 Entité n’importe quel ordre. end process;
 Architecture
 Signal et variable
Des processus (mot -- Aff. signal
 Type clé process). Inst_MAJ : MAJ port map
 Opérateur (
Des instructions X => A ,
 Process
Exemples VHDL
d’affectation de signaux Y => B ,
Conception en VHDL (<=). Z => Cin ,
Simulation en VHDL Des instanciations de M => Cout );
Synthèse en VHDL
composants (mot clé end arch3;
port map)

Master II : R&C 22
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Signal & variable


Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
»Dans un process, on peut trouver des
 Syntaxe affectations de signaux ou de variables.
 Langage
 Librairies »Contrairement aux variables, l’affectation
 Entité
 Architecture
du signal n’a pas un effet immédiat.
 Signal et variable
 Type
»Ainsi, dans un process, après cinq
 Opérateur instructions A <= A+1;, le signal A n’est pas
 Process
Exemples VHDL
augmenté de 5 mais seulement de 1.
Conception en VHDL
Simulation en VHDL
»Il faut lire A.futur <= A.présent +1; de
Synthèse en VHDL sorte que A.présent n’est jamais modifié.

Master II : R&C 23
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Types
oIl existe des types:
Rappel d’électronique
Le langage VHDL  scalaire (entier, réel, physique, énuméré),
 Introduction
 composite (tableaux, enregistrement),
 Historique
 Syntaxe  fichier et pointeur.
 Langage oLes types possède des attibut de type, Ils sont représentés de cette
 Librairies façon < OBJET >′< ATTRIBUT >
 Entité
oPar exemple:
 Architecture
 Signal et variable  type COULEUR is (BLEU, ROUGE, VERT);
 Type
 type MOT is STD_LOGIC_VECTOR(7 downto 0);
 Opérateur
 Process
oTypes entier:
Exemples VHDL  Le type entier « integer » prédéfini dans le paquetage
Conception en VHDL standard STD permet de définir des nombres signés sur 32 bits
Simulation en VHDL
entre −231 et 231.
Synthèse en VHDL
 En général, on spécifie le range d’un entier pour qu’il soit stocké
sur un nombre de bit adéquat:
signal my_natural is integer range 0 to 256;
Master II : R&C 24
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Opérateurs
Opérateurs logiques
Rappel d’électronique
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Opérateurs relationnels
Exemples VHDL Opérateurs arithmétiques
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 25
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Process
Le fonctionnement du processus est régi par les règles suivantes :
Rappel d’électronique
Le langage VHDL Un processus est une boucle infinie , lorsqu’il arrive à la fin du
 Introduction code, il reprend automatiquement au début.
 Historique Un processus doit être sensible des points d’arrêt, il existe 2 types
 Syntaxe de points d’arrêts :
 Langage
 Librairies
Le processus est associé à une "liste de sensibilité" qui réveille
 Entité
le processus lors d’un changement d’un des signaux.
 Architecture Le processus a des instructions d’arrêt wait dans sa description
 Signal et variable interne.
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 26
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Process
Le fonctionnement du processus est régi par les règles suivantes :
Rappel d’électronique
Le langage VHDL Un processus est une boucle infinie , lorsqu’il arrive à la fin du
 Introduction code, il reprend automatiquement au début.
 Historique Un processus doit être sensible des points d’arrêt, il existe 2 types
 Syntaxe de points d’arrêts :
 Langage
 Librairies
Le processus est associé à une "liste de sensibilité" qui réveille
 Entité
le processus lors d’un changement d’un des signaux.
 Architecture Le processus a des instructions d’arrêt wait dans sa description
 Signal et variable interne.
 Type
Un processus peut avoir des variables locales. Les variables sont
 Opérateur
internes au processus et sont affectées immédiatement, contrairement
 Process
aux signaux qui eux ne sont pas affectés directement mais en fin de
Exemples VHDL
processus.
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 26
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Process
Le fonctionnement du processus est régi par les règles suivantes :
Rappel d’électronique
Le langage VHDL Un processus est une boucle infinie , lorsqu’il arrive à la fin du
 Introduction code, il reprend automatiquement au début.
 Historique Un processus doit être sensible des points d’arrêt, il existe 2 types
 Syntaxe de points d’arrêts :
 Langage
 Librairies
Le processus est associé à une "liste de sensibilité" qui réveille
 Entité
le processus lors d’un changement d’un des signaux.
 Architecture Le processus a des instructions d’arrêt wait dans sa description
 Signal et variable interne.
 Type
Un processus peut avoir des variables locales. Les variables sont
 Opérateur
internes au processus et sont affectées immédiatement, contrairement
 Process
aux signaux qui eux ne sont pas affectés directement mais en fin de
Exemples VHDL
processus.
Conception en VHDL
Simulation en VHDL Les différents process d’un programme VHDL s’exécutent en
Synthèse en VHDL parallèle les uns des autres.
Un processus est séquentiel dans le sens ou les instructions sont
évaluées l’une après l’autre dans l’ordre d’écriture.

Master II : R&C 26
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Process
Rappel d’électronique Les deux principales structures utilisées dans un process
Le langage VHDL
 Introduction
 Historique
 Syntaxe
 Langage
 Librairies
 Entité
 Architecture
 Signal et variable
 Type
 Opérateur
 Process
Exemples VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL
ne pas confondre => (implique) et <= (affecte).

Master II : R&C 27
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Exemple : Porte « and » à 3 ports


Rappel d’électronique
Le langage VHDL
Exemple VHDL entity AND_3 is
 AND3 port (
 Full Adder
e1 : in bit;
 Adder4
 Registre
e2 : in bit;
Conception en VHDL e3 : in bit;
Simulation en VHDL s : out bit
Synthèse en VHDL );
end entity

architecture ARCH of AND_3 is


begin -- ARCHITECTURE
s <= e1 and e2 and e3;
end ARCH

Master II : R&C 28
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Exemple : Full adder


library IEEE;
Rappel d’électronique
use IEEE.std_logic_1164.all;
Le langage VHDL
use IEEE.numeric_std.all ;
Exemple VHDL
 AND3 entity full_add1 is
 Full Adder port (
 Adder4 a, b, cin : in std_logic;
 Registre
s, cout : out std_logic;
Conception en VHDL
);
Simulation en VHDL
end entity;
Synthèse en VHDL
architecture ARCH of full_add1 is
signal resultat : std_logic_unigned (1 downto 0);
Begin
resultat <= (’0’ & a) + (’0’ & b) + (’0’ & c);
s <= resultat(0);
cout <= resultat(1);
End architecture;

Master II : R&C 29
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Exemple : Additionneur 4 bits


Rappel d’électronique [..librairies ..]
Le langage VHDL entity adder4 is
Exemple VHDL port (
 AND3 a, b : in std_logic_unigned(3 downto 0);
 Full Adder s : out std_logic_unigned (3 downto 0);
 Adder4
cout : out std_logic
 Registre
);
Conception en VHDL
end entity;
Simulation en VHDL
Synthèse en VHDL architecture ARCH of adder4 is

signal c : std_logic_unigned (2 downto 0);

Component full_add1 is
port (
a, b, cin : in std_logic;
s, cout : out std_logic;
);
end component;

Master II : R&C 30
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Exemple : Additionneur 4 bits


Rappel d’électronique
Le langage VHDL
Exemple VHDL architecture ARCH of adder4 is
 AND3 signal c : std_logic_unigned (2 downto 0);
 Full Adder Component full_add1 is
 Adder4
port (
 Registre
a, b, cin : in std_logic
Conception en VHDL
s, cout : out std_logic;
Simulation en VHDL
);
Synthèse en VHDL
end entity;

begin
inst_FA_1 :full_add1 portmap(a(0),b(0),’0’,s(0),c(0));
inst_FA_2 :full_add1 portmap(a(1),b(1),c(0),s(1),c(1));
inst_FA_3 :full_add1 portmap(a(2),b(2),c(1),s(2),c(2));
inst_FA_2 :full_add1 portmap(a(3),b(3),c(2),s(3),c(3));
end ARCH;

Master II : R&C 31
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Registre
Rappel d’électronique
Un registre avec clock_enable.
Le langage VHDL Le processus est réveillé lors d’une transition sur Ck
Exemple VHDL
Les If internes permettent d’exprimer la condition: front
 AND3
montant de l’horloge avec CE à 1.
 Full Adder
 Adder4
ck
 Registre PROCESS (ck)
CE
Conception en VHDL
Simulation en VHDL BEGIN
Synthèse en VHDL
Cin Cout
IF (ck = ’1’ AND ck’EVENT)
THEN
IF CE=’1’ THEN Cout <=
Cin;
END IF;
END IF;

END PROCESS;

Master II : R&C 32
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Conception en VHDL
95% du temps de développement se fait en simulation.
Rappel d’électronique
On utilise les waveforms qui ne permettent pas de voir les
Le langage VHDL
Exemple VHDL
transitions de granularité ∆.
Conception en VHDL
 Conception
 Méthodologie
 Automate
 Synthèse de VHDL
Simulation en VHDL
Synthèse en VHDL

VHDL permet énormément de constructions difficiles à


comprendre (circuits asynchrones, simulation, synthèse, etc...).
Aujourd’hui il existe des langages plus rapides pour la
simulation (SystemC, etc.), VHDL est donc essentiellement utilisé
pour la synthèse et la simulation bas niveau.
⇒ Se contraindre fortement lors de l’écriture de programmes
VHDL

Master II : R&C 33
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Contrainte pour l’écriture en VHDL


Penser composant (objet) plutôt que fonctionnalité (procédure).
Rappel d’électronique
Le langage VHDL Distinguer les éléments de mémorisation (mémoire, bancs de registre) et
Exemple VHDL les composants standards (opérations arithmétiques, filtres numériques) pour
Conception en VHDL prévoir l’utilisation de bibliothèques.
 Conception
 Méthodologie
 Automate
 Synthèse de VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 34
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Contrainte pour l’écriture en VHDL


Penser composant (objet) plutôt que fonctionnalité (procédure).
Rappel d’électronique
Le langage VHDL Distinguer les éléments de mémorisation (mémoire, bancs de registre) et
Exemple VHDL les composants standards (opérations arithmétiques, filtres numériques) pour
Conception en VHDL prévoir l’utilisation de bibliothèques.
 Conception Décomposer les composants sous forme d’automate à états Finis.
 Méthodologie
On peut alors soit coder directement l’automate en VHDL soit
 Automate
décomposer à nouveau cet automate en un contrôleur et un chemin de
 Synthèse de VHDL
donnée.
Simulation en VHDL
Synthèse en VHDL

ET4 est un composant


Il faut un
(entity+architecture)
SIGNAL

On créera 1 composant ET2


(entity+architecture)
Utilisé 3 fois pour décrire
ET4

Exemple: faire une porte ET 4entrée avec des ET 2 entrées

Master II : R&C 34
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Contrainte pour l’écriture en VHDL


Penser composant (objet) plutôt que fonctionnalité (procédure).
Rappel d’électronique
Le langage VHDL Distinguer les éléments de mémorisation (mémoire, bancs de registre) et
Exemple VHDL les composants standards (opérations arithmétiques, filtres numériques) pour
Conception en VHDL prévoir l’utilisation de bibliothèques.
 Conception Décomposer les composants sous forme d’automate à états Finis.
 Méthodologie
On peut alors soit coder directement l’automate en VHDL soit
 Automate
décomposer à nouveau cet automate en un contrôleur et un chemin de
 Synthèse de VHDL
donnée.
Simulation en VHDL
Synthèse en VHDL Pour les traitements hautement pipelinés (stream processing), on utilisera
plutôt une description des différents étages de pipeline interconnectés.
ET4 est un composant
Il faut un
(entity+architecture)
SIGNAL

On créera 1 composant ET2


(entity+architecture)
Utilisé 3 fois pour décrire
ET4

Exemple: faire une porte ET 4entrée avec des ET 2 entrées

Master II : R&C 34
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Notion d’automate
Rappel d’électronique
Le langage VHDL
Exemple VHDL
- Un automate est systématiquement
Conception en VHDL décomposé en:
 Conception
 Méthodologie
Un état (ensemble de registre)
 Automate
 Synthèse de VHDL
Simulation en VHDL
Synthèse en VHDL

Master II : R&C 35
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Notion d’automate
Rappel d’électronique
Le langage VHDL
Exemple VHDL
- Un automate est systématiquement
Conception en VHDL décomposé en:
 Conception
 Méthodologie
Un état (ensemble de registre)
 Automate Trois fonctions:
 Synthèse de VHDL
Simulation en VHDL
 Transition: sensible aux entrée et à
Synthèse en VHDL l’état, met à jour l’état.
 Moore: sensible à l’état, met à jour
des sorties
 Mealy: sensible aux entrée et à l’état,
met à jour des sorties

Master II : R&C 35
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Notion d’automate
-- Gestion du registre d’état avec
Rappel d’électronique reset synchrone
Le langage VHDL PROCESS (clk)
Exemple VHDL N’utiliser que des signaux BEGIN
Conception en VHDL (pas de variables). Que des IF rising_edge(clk) THEN
IF reset = ’1’ THEN
 Conception types simples (STD_LOGIC_*). state <= INIT;
 Méthodologie ELSE state <= state_next;
 Automate
Décomposer le matériel en END IF;
 Synthèse de VHDL l’état (tous les éléments END IF;
Simulation en VHDL mémorisés entre deux cycle END PROCESS;
-- Fonction de transition
Synthèse en VHDL d’horloge) et les autres PROCESS (state, input1, input2)
signaux. BEGIN
CASE state IS
Écrire un processus WHEN IDLE =>
sensible à l’horloge qui met à IF i1 = ’1’ THEN
jour les registres d’état. state_next <= WRITE;
ELSE state_next <= IDLE;
C’est la fonction de END IF;
WHEN READ => state_next <= IDLE;
transition de l’automate. WHEN OTHER => state_next <= IDLE;
END CASE;

Master II : R&C 36
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Notion d’automate
Rappel d’électronique -- équation concurrente
Le langage VHDL Pour la fonction de Moore de (data-flow
Exemple VHDL l’automate (c’est similaire pour la S1 <= a + b * c;
Conception en VHDL fonction de Mealy): Écrire un S2 <= a – b ;
 Conception processus sensible à l’état qui
-- Moore machine or
 Méthodologie calcule les sorties. function
 Automate
La manière la plus propre: PROCESS (state)
 Synthèse de VHDL BEGIN
Simulation en VHDL Décrire le data-path comme CASE state IS
Synthèse en VHDL des affectations entre signaux WHEN IDLE =>
out1 <= S1;
en dehors des processus
out2 <= S2;
(inférence systématique du WHEN READ =>
matériel pour le calcul sur les out1 <= S1;
données) out2 <= S2;
WHEN OTHER =>
Décrire l’affectation des sorties out1 <= S1;
comme une simple affectation out2 <= S2;
entre signaux. END CASE;
END;

Master II : R&C 37
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Synthèse de VHDL
Rappel d’électronique Éviter l’inférence accicentelle Dès qu’un signal n’est pas affecté
Le langage VHDL dans tous les chemin de contrôle.
Exemple VHDL
Conception en VHDL --
 Conception PROCESS (S1, State)
 Méthodologie BEGIN
 Automate IF state = ‘init’ THEN
out1 <= S1;
 Synthèse de VHDL
END IF;
Simulation en VHDL END PROCESS;
Synthèse en VHDL

--
PROCESS (S1, State)
BEGIN
IF state = ‘init’ THEN
out1 <= S1;
Else
out1 <= 0;
END IF;
END PROCESS;

Master II : R&C 38
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Synthèse de VHDL
Rappel d’électronique
Le langage VHDL
Exemple VHDL
Conception en VHDL Les clauses wait sont acceptés uniquement pour
 Conception
 Méthodologie
l’horloge.
 Automate En pratique, chaque outil synthétise des sous-ensembles
 Synthèse de VHDL
légèrement différents.
Simulation en VHDL
Synthèse en VHDL La compilation commence par un check de la syntaxe.
Principaux outils de synthèse pour les FPGA : ISE de
Xilinx, EDK de Xilinx, Mentor graphics…
Principaux outils de synthèse pour les Asics: Mentor
Graphics, Synopsys, Cadence.

Master II : R&C 39
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveau description VHDL


Rappel d’électronique
Description structurelle.
Le langage VHDL
Exemple VHDL • Proche des schématiques traditionnelles des
Conception en VHDL concepteurs.
Simulation en VHDL
• Blocs inter-connectés.
 Niveau description VHDL
 Principe de simulation Description comportementale.
 Le temps symbolique Δ
• Proche de la programmation traditionnelle
 Signal et variable
 Le temps physique • exécution séquentielle d’instructions
 Principe du moteur de
simulation
Synthèse en VHDL

Master II : R&C 40
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Niveau description VHDL


Rappel d’électronique
Description structurelle.
Le langage VHDL
Exemple VHDL • Proche des schématiques traditionnelles des
Conception en VHDL concepteurs.
Simulation en VHDL
• Blocs inter-connectés.
 Niveau description VHDL
 Principe de simulation Description comportementale.
 Le temps symbolique Δ
• Proche de la programmation traditionnelle
 Signal et variable
 Le temps physique • exécution séquentielle d’instructions
 Principe du moteur de Cette classification ne correspond pas exactement à notre
simulation
décomposition intuitive : description algorithmique/
Synthèse en VHDL
description architecturale.
Une description de niveau transfert de registre est une
description de la structure du circuit, mais qui abstrait les
opérateurs.
On peut parler de “registre” (sans dire exactement quel
type), d’additionneur, etc.
Master II : R&C 40
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Principe de simulation événementielle


Rappel d’électronique
Le système est représenté comme un ensemble de processus
Le langage VHDL (process) qui s’exécutent en parallèle
Exemple VHDL On veut simuler des processus parallèles sur une machine
Conception en VHDL séquentielle.
Simulation en VHDL
 Niveau description VHDL
Nouvel objet pour communiquer entre programmes
 Principe de simulation
séquentiels: le signal.
 Le temps symbolique Δ
 Signal et variable
 Le temps physique
 Principe du moteur de
simulation
Synthèse en VHDL

Master II : R&C 41
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Principe de simulation événementielle


Rappel d’électronique
Le système est représenté comme un ensemble de processus
Le langage VHDL (process) qui s’exécutent en parallèle
Exemple VHDL On veut simuler des processus parallèles sur une machine
Conception en VHDL séquentielle.
Simulation en VHDL
 Niveau description VHDL
Nouvel objet pour communiquer entre programmes
 Principe de simulation
séquentiels: le signal.
 Le temps symbolique Δ Moteur de simulation:
 Signal et variable
Le simulateur exécute tous les processus dans un ordre
 Le temps physique
quelconque.
 Principe du moteur de
simulation Lorsqu’un signal partagé par plusieurs processus est
Synthèse en VHDL modifié, on enregistre sa nouvelle valeur, le signal
conservant temporairement sa valeur.
Lorsque tous les processus ont été exécutés, on modifie
les valeurs des signaux partagés
On incrément le temps symbolique (+1Δ) et on
recommence jusqu’à convergence

Master II : R&C 41
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Le temps symbolique Δ
Rappel d’électronique
Le langage VHDL
Exemple VHDL
Conception en VHDL
Le temps symbolique permet d’ordonner des événements
Simulation en VHDL simultanés à partir de leurs dépendances.
 Niveau description VHDL
 Principe de simulation
Une affectation à un signal: Sig1 <= Sig2 est instantanée
 Le temps symbolique Δ mais la valeur de Sig1 est modifiée après 1 Δ
 Signal et variable
 Le temps physique
Un "événement" possède donc une date complète
 Principe du moteur de composée d’une date physique (ex: 1h 04m 17s) et d’une date
simulation symbolique (ex: 4)
Synthèse en VHDL

Master II : R&C 42
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Signal et variable
Rappel d’électronique
Le langage VHDL Du fait de sa sémantique spécifique, le signal se comporte
Exemple VHDL très différemment d’une variable.
Conception en VHDL
Simulation en VHDL On peut en avoir une vision intuitive comme représentant
 Niveau description VHDL la «valeur d’un fil physique au cours du temps »
 Principe de simulation
 Le temps symbolique Δ Pour qu’un signal conserve une valeur d’un cycle à un
 Signal et variable
autre il faut mettre en place explicitement un mécanisme de
 Le temps physique
mémorisation qui sera interprété comme un registre.
 Principe du moteur de
simulation
Pour faciliter la simulation on peut aussi introduire des
Synthèse en VHDL
variables dans les processus.

Les variables sont locales aux processus, leur affectation est


instantanée, elles conservent leur valeur au cours du temps
comme dans un langage de programmation

Master II : R&C 43
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Principe du moteur de simulation


Rappel d’électronique
Le langage VHDL
Chaque processus possède une liste de sensibilité qui
Exemple VHDL indique si il doit être "réveillé" ou pas.
Conception en VHDL
Simulation en VHDL
- Changement d’une valeur d’un signal utilisé
 Niveau description VHDL - Changement du temps physique
 Principe de simulation
 Le temps symbolique Δ Le moteur effectue de manière répétitive les tâches
 Signal et variable suivantes:
 Le temps physique
 Principe du moteur de 1. Choisit la date courante
simulation
2. Positionne les signaux à leurs nouvelles valeurs
Synthèse en VHDL
3. Pour chaque processus
teste la condition de reprise du point d’arrêt
Si elle est vérifiée, le processus est réveillé et
exécuté jusqu’au prochain point d’arrêt.

Master II : R&C 45
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Compilation VHDL
Pour être simulé, un programme VHDL est
Rappel d’électronique
Le langage VHDL Compilé
Exemple VHDL "Élaboré" (≃ édition de liens). Lors de l’élaboration les
Conception en VHDL opérations élémentaires utilisées sont implémentées par des
Simulation en VHDL librairies fournies par l’outil de simulation, leur
Synthèse en VHDL
implémentation peut poser problème.
 Compliation VHDL
Simulé. Pour cela il nécessite un "test bench" qui fournit les
entrées et l’horloge au composant simulé (stimuli).
Si il est écrit de manière synthétisable, il peut être:
synthétisé (synthèse logique)
simulé après synthèse
placé (placement-routage)
simulé après placement routage.
Une description destinée à la simulation efficace d’un circuit est
très différente d’une description destinée à la réalisation. VHDL
synthétisable propose un compromis entre les deux.
Master II : R&C 46
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017
[email protected] Composants et logiciels pour les Systèmes Embarqués

Question
Rappel d’électronique
Le langage VHDL
Exemple VHDL
Conception en VHDL
Simulation en VHDL
Synthèse en VHDL
 Compliation VHDL

Question ?

Master II : R&C 47
Université Larbi Tébessi - Tébessa Année universitaire 2016/2017

Vous aimerez peut-être aussi