Vous êtes sur la page 1sur 95

Leïla KHANFIR

CHAPITRE III
LE LANGAGE VHDL

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 1


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 2


Leïla KHANFIR

1. Introduction au VHDL
◼ Bien que le langage Vrilog soit plus simple à comprendre, ce cours présente
le langage VHDL et son utilisation pour concevoir et simuler des circuits
numériques. Les conceptes de base de ce langages s’appliquent aussi au
langage Verilog.

◼ VHDL est un langage informatique dédié à la description matérielle des


circuits intégrés numériques, de la simple porte logique jusqu’aux systèmes
sur une puce.

◼ VHDL signifie :
V : VHSIC (Very High Speed Integrated Circuit)
H : Hardware
D : Description
L : Language

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 3


Leïla KHANFIR

1. Introduction au VHDL
◼ Les premiers langages de description matérielle (HDL) sont apparus de 1968
à 1975.

◼ Ils avaient pour objectif de spécifier et de simuler des systèmes logiques.

◼ Inconvénients :
− Chaque langage était propre à un outil donné.
− Les outils étaient largement incompatibles.
− Les échanges de code HDL étaient impossibles sans une transcription
lourde et fastidieuse.
− Les concepteurs deviennent dépendants des logiciels qu’ils utilisent.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 4


Leïla KHANFIR

1. Introduction au VHDL
◼ Au début des années 80, le DoD (Departement of Defense) des États-
Unis a demandé un langage universel, afin de briser cette dépendance
et de permettre les échanges entre ingénieurs.
◼ Plusieurs programmes de recherches ont alors étés financés pour
aboutir finalement au VHDL.
◼ En 1987, première normalisation de VHDL par l'IEEE (Institute of
Electrical and Electronics Engineers : organisation non
gouvernementale spécialisée dans la normalisation et la publication
dans le domaine du Génie Electrique).
◼ Dès lors, il y a eu apparition des premiers outils de CAO (Conception
Assistée par Ordinateur) compatibles.
◼ De nouvelles normes sont venues compléter la norme initiale, en
1993, 2002 et 2008.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 5


Leïla KHANFIR

1. Introduction au VHDL
Les objectifs souhaités par le comité de normalisation IEEE et atteints
par les éditeurs de logiciels de CAO sont :
◼ La spécification
− Offrir un langage universel afin d’exprimer les besoins auxquels doit
répondre un circuit intégré, sans aucune ambiguïté.
◼ La modélisation
− Permettre de décrire des circuits existants ou leur fonctionnement.
◼ La conception
− Aider l’ingénieur à exprimer les concepts propres à la création d’un
circuit intégré.
◼ La synthèse
− Rendre possible la traduction automatisée d’un code VHDL en un circuit
logique.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 6


Leïla KHANFIR

1. Introduction au VHDL
◼ La simulation
− Donner les moyens de décrire un environnement de test afin de vérifier
le fonctionnement correct d’un circuit sur des scénarios prévus à
l’avance.

◼ La vérification formelle
− Avoir une syntaxe et une sémantique non ambiguë qui permettent, par
analyse statique du code, de vérifier certaines propriétés.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 7


Leïla KHANFIR

1. Introduction au VHDL
Avantages techniques :
◼ Niveau d’abstraction RTL (Register Transfer Level)
− Supérieur au niveau d’abstraction des transistors et à celui des portes
logiques.
◼ Portabilité du code
− Facilite la coopération entre équipes de travail.
◼ Conception hiérarchique
− Permet d’envisager un système complexe comme étant un assemblage
de sous-systèmes plus simples. La notion de hiérarchie est au cœur de la
conception bottom-up et de la conception top-down.
◼ Moderne, puissant, général, bonne lisibilité
− Ce sont des qualités attendues de tout langage HDL.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 8


Leïla KHANFIR

1. Introduction au VHDL
Avantages techniques (suite) :
◼ Haute modularité, généricité
− Ces caractéristiques favorisent la description rapide de systèmes
complexes, en réutilisant des blocs paramétrables déjà développés.
◼ Typage fort
− Il évite les erreurs issues des changements de type de donnée, en
interdisant les conversions implicites.
◼ Temps solidement défini
− La notion du temps qui s’écoule ne souffre d’aucune ambiguïté. Il est
possible d’attendre un délai défini entre deux actions, ce qui est très utile
lors de la modélisation et du test fonctionnel. De plus, la causalité des
évènements survenus à un même instant est scrupuleusement respectée
(delta cycle).

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 9


Leïla KHANFIR

1. Introduction au VHDL
Avantages techniques (suite) :
◼ Mixage de différents types de description
− Le VHDL permet d’employer un formalisme adapté à chaque partie
d’un même circuit intégré.
◼ Large communauté
− Une large communauté d’utilisateurs à travers le monde anime des sites
web qui offrent aux nouveaux venus conseils et exemples.
Avantages commerciaux :
◼ Standard industriel et activité de normalisation
− Dès son origine, le VHDL a visé la standardisation IEEE.
− Cette qualité qu’il a obtenue dès 1987, lui a permis d’être rapidement
accepté par les ingénieurs et les créateurs de logiciels de CAO.
− Depuis, trois autres normes sont venues compléter la norme VHDL
initiale, en 1993, 2002 et 2008.
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 10
Leïla KHANFIR

1. Introduction au VHDL
Avantages commerciaux (suite):
◼ IP (Intellectual Property)
− Grâce à la notion de bloc paramétrable et réutilisable intrinsèque à
VHDL, une nouvelle possibilité est apparue : celle de vendre du code
VHDL, un peu comme du code logiciel ou des bibliothèques de
fonctions logicielles.

− Ce concept porte le nom de bloc de propriété intellectuelle, de bloc IP ou


plus simplement d’IP.

− Depuis le milieu des années 90, on a assisté à l’apparition d’un véritable


commerce international de l’IP, avec des sociétés souhaitant simplement
amortir leur coût de développement par la revente de certaines parties de
leurs circuits intégrés, ou d’autres spécialisées dans la conception d’IP
dédiées à des applications (MPEG, CPU, DSP, FFT, ...).
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 11
Leïla KHANFIR

1. Introduction au VHDL
Avantages commerciaux (suite) :
◼ Pérennisation de l’investissement

− La mise en place d’une politique de design reuse au sein des grandes


firmes industrielles peut considérablement réduire les coûts.

− Chaque module développé est soigneusement testé et documenté, avant


d’être classé et rangé dans une bibliothèque accessible à tous les
ingénieurs de la société.

− Ainsi, on économise du temps, donc de l’argent, en évitant de


redévelopper plusieurs fois le même bloc IP, avec tout ce que cela
comporte comme sources d’erreur et de confusion...

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 12


Leïla KHANFIR

1. Introduction au VHDL
Avantages commerciaux (suite) :
◼ Indépendance vis-à-vis des éditeurs de logiciels de CAO

− L’existence d’un langage HDL standardisé est une garantie


d’indépendance pour les utilisateurs, vis-à-vis des éditeurs de logiciels,
qui évoluent dans un secteur très dynamique, où la faillite peut survenir
aussi vite que le succès.

− En cas de coup dur pour un éditeur, ses utilisateurs peuvent


théoriquement acheter un outil de CAO concurrent pour repartir.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 13


Leïla KHANFIR

1. Introduction au VHDL
◼ La position de standard IEEE, prise très tôt par le langage VHDL, lui
a permis de s’imposer largement dans le monde industriel, mais à
côté d’un autre : le langage Verilog.

◼ Aujourd’hui, bien que la plupart des outils de CAO professionnels


supportent les deux, on observe la répartition géographique suivante
entre les utilisateurs de VHDL et ceux de Verilog :
− VHDL : Europe et bassin méditerranéen
− Verilog : Etats-Unis et Japon

◼ Celle-ci s’explique par des raisons historiques et commerciales qui ne


supportent pas une logique naturelle : les Etats-Unis à l’origine du
VHDL s’en sont détournés...

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 14


Leïla KHANFIR

1. Introduction au VHDL
◼ Depuis le début des années 2000, une nouvelle génération de langages
dédiés à l’électronique numérique est apparue, pour répondre aux nouveaux
besoins, liés à la complexité des SoC (System on a Chip) :
− exploration architecturale en C++ : SystemC
− description HDL, avec assertions : SystemVerilog,
− description HDL en C : C, Handel C
− vérification fonctionnelle intelligente : Vera, e
− Vérification formelle : PSL
◼ Si le VHDL a été un des deux langages HDL des 15 dernières années, il est
clair que la norme IEEE de 2008 n’apporte pas une réelle réponse aux défis
actuels de la microélectronique.
◼ D’ailleurs, aucun langage n’apporte une solution à tous ces problèmes.
◼ Chacun vise un aspect particulier de la conception et à terme, une remise à
plat de toutes ces approches sera probablement nécessaire.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 15


Leïla KHANFIR

1. Introduction au VHDL
◼ Le VHDL est un langage pour la description du matériel électronique : un
composant, un circuit, un système, en vue de la simulation et de la synthèse.

◼ Sa syntaxe s’inspire fortement des langages informatiques Ada et Pascal.

◼ Pour des raisons de cohérence, il est fortement typé. Cela signifie que les
objets manipulés ont tous un type et qu’il n’est pas possible d’échanger les
valeurs d’objets de types différents (ex. : entier et réel), sans effectuer une
conversion explicite.

◼ La description d’un circuit numérique nécessite de manipuler plusieurs


concepts.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 16


Leïla KHANFIR

1. Introduction au VHDL
◼ Les possibilités du langage VHDL sont nombreuses, mais nous ne les
verrons pas toutes.

◼ Il existe souvent plusieurs approches possibles pour décrire une solution


matérielle, avec des subtilités et des redondances plutôt déroutantes pour des
débutants.

◼ Aussi, nous allons nous concentrer sur les concepts essentiels, qui sont
utilisés 99% du temps et qui sont suffisants pour mener à bien un projet
d'envergure.

◼ De même, les configurations seront survolées, en introduisant une syntaxe la


plus élémentaire possible, mais largement suffisante dans la pratique.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 17


Leïla KHANFIR

1. Introduction au VHDL
Structure Minimale d’un Code VHDL
◼ Surcharge des
fonctions logiques
Ports et opérateurs IEEE
d entrée-sortie

D Symbol (=) Entité


Q
CLK
DLatch

Signaux

Circuit Architecture
logique
(=)
a

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 18


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 19


Leïla KHANFIR

2. Classes d’objet
◼ En VHDL, on distingue 4 sortes d'objets : les constantes, les variables, les
ports et les signaux.
◼ Les constantes
− Elles ont une valeur unique qui leur est affectée au moment de leur déclaration.
− Leur valeur ne change jamais.
◼ Les variables
− Elles sont employées dans les fonctions et les procédures, mais aussi et surtout
dans les processus.
− Dans les processus, on exploite leur capacité à conserver leur valeur entre deux
activations successives pour produire un effet de mémorisation.
◼ Les ports
− Ils décrivent les entrées et les sorties du composant.
− Ils ont une orientation (entrée, sortie ou rarement entrée/sortie).
− Ils disposent des mêmes attributs que les signaux, dont ils sont très proches.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 20


Leïla KHANFIR

2. Classes d’objet
◼ Les signaux
− Ils modélisent les lignes et les bus d'interconnexion dans un circuit
électronique.
− Ce sont des objets au sens informatique du terme (programmation
orientée objet), c'est a dire qu'ils ont plusieurs champs (attributs).
− Soit S un signal multibits, voici quelques attributs souvent utilisés :
S'left : Indice de la borne gauche de S
S'right : Indice de la borne droite de S
S'low : Indice de la borne inférieure de S
S'high : Indice de la borne supérieure de S
S'range : Intervalle des indices de S
S'length : Nombre de bits de S

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 21


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 22


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


◼ En VHDL, on manipule des objets (signaux, variables, constantes,…) de
différents types (entier, bit, vecteur binaire,…) afin de décrire le
comportement d'un circuit.
◼ Ces types peuvent être classés en trois catégories :
− Les types de base
Ils font partie du standard VHDL de 1987 et sont définis dans le paquetage «
standard ». Ce dernier est considéré comme faisant partie du langage de base. Par
conséquent, il est toujours intégré à tous les projets de façon implicite (sans qu'on ai
besoin de l'écrire).
− Les types IEEE
En 1993, pour compléter les types de base, le comité d'expert de l'IEEE a élaboré
de nouveaux types. Ces derniers ont été décrits dans des paquetages optionnels,
qu'il faut ajouter à un modèle VHDL, en fonction des besoins.
− Les types utilisateur
Enfin, comme dans tout langage, l'utilisateur peut définir ses propres types, et
surcharger les opérateurs de base, afin qu'ils puissent les traiter.
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 23
Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.1. Types de base
◼ Boolean
− Valeur booléenne (false, true)
◼ Bit
− Valeur binaire ('0','1')
◼ Bit_vector
− Tableau de bits
− Permet de coder une valeur binaire multibits
◼ Character
− VHDL87 : les 128 premiers caractères de la table ASCII
− VHDL93 : les 256 caractères de la table ASCII
◼ String
− Tableau de characters.
− Permet de définir une chaîne de caractères.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 24


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.1. Types de base
◼ Integer
− Entier signé dont l'intervalle de valeurs par défaut dépend du logiciel de
simulation et/ou de synthèse (généralement intervalle sur 32 bits).
− Un intervalle plus petit peut être fixé lors de la déclaration d'un objet.
Par exemple pour un signal :

◼ Natural
− Sous-type d'integer positif ou nul.
◼ Positive
− Sous-type d'integer strictement positif.
◼ Real
− Nombre réel dont l'intervalle de valeurs dépend du logiciel de simulation
et/ou de synthèse

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 25


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.1. Types de base
◼ Time
− Permet de définir des valeurs temporelles (délais, instants,…).
− Plusieurs unités sont possibles : hr, min, sec, ms, us, ps et fs.
− Remarque : Il existe une fonction qui permet de connaître l'heure en
temps simulé (now).

◼ Il existe d'autres types de base, notamment pour accéder à des fichiers sur
disque, mais il correspondent à une utilisation avancée de VHDL.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 26


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.2. Types IEEE
◼ Ils sont définis dans le paquetage std_logic_1164 de la librairie IEEE.
◼ Std_logic
− Modélise l'état physique d'une ligne et peut prendre les valeurs suivantes
:
'U' : Non initialisé
'X' : Valeur inconnue forte (conflit entre signaux forts)
'0' : 0 fort
'1' : 1 fort
'Z' : Haute impédance (déconnecté électroniquement)
'W' : Valeur inconnue faible (conflit entre signaux faibles)
'L' : 0 faible
'H' : 1 faible
'-' : Sans intérêt (don't care).

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 27


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.2. Types IEEE
◼ Std_logic_vector
− Modélise l'état physique d'une ligne multibits.

◼ Remarques
− Le paquetage std_logic_1164 définit les types std_logic et
std_logic_vector et surcharge les opérateurs logiques uniquement.
− Pour les opérateurs arithmétiques (+,-,*,/,>,>,…), il faut faire appel à des
paquetages complémentaires adaptés à la situation :
⚫ std_logic_unsigned lorsque les objets manipulés sont non signés.
⚫ std_logic_signed lorsque les objets manipulés sont signés.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 28


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.3. Types utilisateur
◼ VHDL permet à l'utilisateur de définir des types spécifiques à ses besoins,
dans ses propres paquetages, ou dans des architectures.
◼ Il existe jusqu'à 8 catégories de types différentes, mais nous n’en
présenterons qu'une seule : celle des types énumérés, très utiles pour
modéliser les machines à états finis (FSM).
◼ Syntaxe

◼ Exemple

◼ Remarque
− Dans la mesure du possible, il est préférable d'utiliser les types de base
ou les types de l'IEEE, pour favoriser la réutilisation.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 29


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.4. Opérateurs VHDL

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 30


Leïla KHANFIR

3. Types d’objet et opérateurs VHDL


3.4. Opérateurs VHDL

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 31


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 32


Leïla KHANFIR

4. Types d’instruction
◼ Deux types d’instructions :
◼ les instructions séquentielles : ◼ les instructions concurrentes :
− wait − bloc
− assertion − processus
− affectation de signaux, − assertion
variables − affectation de signaux
− appel de sous-programmes − appel de sous-programmes
− if ..... then ..... else.....end if − instanciation de composants
− case ..... end case − boucle de génération.
− loop .....end loop
− next
− exit
− return
− null
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 33
Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 34


Leïla KHANFIR

5. Paramètres génériques
◼ Un des intérêts de VHDL est de permettre la réutilisation d’un même
composant dans plusieurs systèmes.

◼ Pour favoriser cette technique, il est possible de définir des paramètres pour
un modèle, et ainsi de le rendre générique.

◼ Par exemple, un modèle d'additionneur à N bits, suffit à modéliser tous les


additionneurs du même type, quels que soit leur nombre de bits.

◼ Le paramétrage des composants est un outil puissant, qui permet de


développer des modèles hautement configurables.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 35


Leïla KHANFIR

5. Paramètres génériques
◼ La déclaration des paramètres génériques s'effectue dans l'entité, juste avant
les ports d'entrée/sortie.
◼ Ils apparaissent donc également dans la déclaration du composant.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 36


Leïla KHANFIR

5. Paramètres génériques
◼ Exemple
− On considère un
additionneur calculant la
somme de deux entiers
positifs codés sur N bits.
− N est déclaré comme un
paramètre du composant
addN.
− N sert à dimensionner à la
fois les opérandes et le
résultat.

◼ Remarque : on n'a pas montré


les appels aux paquetages
nécessaires.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 37


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 38


Leïla KHANFIR

6. Boucle de génération
◼ Dans un circuit électronique numérique, il est fréquent de réutiliser un même
composant plusieurs fois, par exemple pour traiter chaque bit d'une donnée
multibits.
◼ En VHDL, cela se décrit avec des instructions concurrentes, qui se répètent
plusieurs fois, éventuellement avec une légère modification à chaque fois.
◼ Si le nombre d'itération est connu à l'avance et qu'il est faible, cela ne pose
aucun problème de copier la ligne autant de fois que nécessaire et de la
rectifier comme il se doit.
◼ Mais si ce nombre est inconnu, parce que c'est un paramètre, ou bien qu'il
est trop grand (128, 512, 256, 1024, …), alors cela devient impossible.
◼ Pour adresser ce problème, VHDL propose le concept de boucle d
génération.
◼ Une boucle de génération est une instruction concurrente, qui sert à répéter
plusieurs fois un groupe d'instructions concurrentes.
◼ Elle utilise un compteur de type entier, qui peut servir d'indice dans la
boucle.
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 39
Leïla KHANFIR

6. Boucle de génération
◼ Syntaxe :

− L'intervalle peut être parcouru dans l'ordre croissant ou décroissant :

◼ Remarque :
− Le compteur de boucle est obligatoirement un entier.
− Il est donc inutile de le déclarer dans la zone de déclaration de
l'architecture.
− C'est une variable locale à la boucle. On ne peut l'utiliser en dehors de
celle-ci.
− Enfin, dans la boucle, il masque toute autre objet éventuel qui porterait
le même nom…

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 40


Leïla KHANFIR

6. Boucle de génération
◼ Exemple :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 41


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 42


Leïla KHANFIR

7. Boucle algorithmique
◼ Syntaxe 1 (boucle for)

◼ Syntaxe 2 (boucle while)

◼ Syntaxe 3 (boucle until)

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 43


Leïla KHANFIR

7. Boucle algorithmique
◼ Le mode séquentiel est utilisé dans les processus, mais également dans les
fonctions et les procédures.

◼ Il est adapté à la description d'algorithmes séquentiels (comme en C ou en


Pascal).

◼ Dans ce type d'algorithme, on utilise fréquemment des boucles itératives.

◼ VHDL propose donc les trois types de boucle possibles :


− Nombre d'itérations connu à l'avance (boucle for)
− Test avant itération (boucle while)
− Test après itération (boucle until)
◼ Les deux derniers types de boucle sont à utiliser avec prudence, car les
conséquences lors de la synthèse peuvent être catastrophiques...

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 44


Leïla KHANFIR

7. Boucle algorithmique
◼ Exemple :
− La génération de vecteurs de test dans un testbench paramétré fait
souvent appel à une boucle algorithmique de type for.
− La boucle suivante génère toutes les valeurs positives possibles sur N
bits. Elle est contenue dans un processus, dans un testbench.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 45


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 46


Leïla KHANFIR

8. Processus
◼ Par défaut, les instructions se trouvant dans la zone de description d'une
architecture sont concurrentes.

◼ Les instructions concurrentes s’exécutent en parallèle d'un point de vue


théorique.

◼ Elle décrivent une situation physique, de la même façon qu’on décrirait une
scène de théâtre : chaque objet et chaque acteur existe en même temps que
les autres.

◼ Parmi les instructions concurrentes, il existe une instruction particulière, le


processus.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 47


Leïla KHANFIR

8. Processus
◼ Un processus est une instruction concurrente composée d'instructions
séquentielles.

◼ Les instructions séquentielles s'exécutent une par une, dans l'ordre.

◼ Grâce au processus, il est possible de décrire des algorithmes séquentiels


(dans certaines limites) ou de générer des séquences de signaux complexes.

◼ Toutefois, il ne faut pas confondre VHDL avec un langage de


programmation séquentiel, ce serait une grave erreur.

◼ VHDL décrit du matériel, pas du logiciel. Si on oublie cela, on court à la


catastrophe!

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 48


Leïla KHANFIR

8. Processus
◼ Un processus s'active suite à un événement déclencheur survenu sur l'un des
signaux indiqués dans sa liste de sensibilité, ou bien à cause d'une
instruction wait for.
◼ Les instructions séquentielles s'exécutent alors jusqu'à la fin, ou une
nouvelle instruction wait for.
◼ La liste de sensibilité doit contenir tous les signaux, qui pris
individuellement, peuvent suffire à changer un résultat calculé par le
processus.
◼ Syntaxe :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 49


Leïla KHANFIR

8. Processus
◼ Liste de sensibilité
− Pour un processus qui n'utilise pas d'horloge (logique combinatoire), tous
les signaux utilisés pour calculer les résultats doivent être dans la liste.
− Pour un processus qui utilise une horloge (logique séquentielle), il faut
distinguer trois catégories de signaux :
⚫ Les signaux asynchrones : ils sont prioritaires sur l'horloge et peuvent
à eux seuls changer les résultats, donc ils doivent être mis dans la
liste.
⚫ Les signaux synchrones : ils ne sont pris en compte que sur front
d'horloge et ne peuvent changer les résultats tous seuls, donc il ne faut
pas les mettre dans la liste.
⚫ L'horloge : Elle définit les instants précis où il faut prendre en compte
les signaux asynchrones. De plus, elle joue un rôle très particulier au
cours de la synthèse. Pour ces deux raisons, il faut la mettre dans la
liste.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 50


Leïla KHANFIR

8. Processus
− Remarque : Ajouter un signal inutile à la liste de sensibilité ne fait que
ralentir la simulation. En revanche, oublier de mettre un signal
nécessaire dénature le circuit en introduisant des latches...
◼ Zone de déclaration
− Seuls des types, des variables et des constantes locaux au processus
peuvent être déclarés dans cette zone.
− La visibilité des objets déclarés est limitée au processus.
− Une variable conserve sa valeur entre la fin de l'exécution d'un
processus et sa prochaine activation.
◼ Zone de description
− Elle contient des instructions séquentielles. Ces dernières peuvent
parfois avoir un équivalent concurrent, à la syntaxe différente.
− L'affectation d'une variable (:=) dans un processus a un effet immédiat
sur la valeur stockée.
− En revanche, l'affectation d'un signal ou d'un port (<=) dans un
processus est différée à la fin de son exécution.
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 51
Leïla KHANFIR

8. Processus
◼ Exemple :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 52


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 53


Leïla KHANFIR

9. Fonctions
◼ En VHDL, une fonction est un ensemble d'instructions séquentielles, qui
dépend d'un ou plusieurs paramètres et qui retourne un résultat.
◼ Les paramètres peuvent être des signaux, des constantes ou des variables.
◼ Parmi les utilisations les plus courantes des fonctions, on peut citer :
− Fonctions mathématiques et logiques
− Fonctions de conversion d'un type à un autre
− Fonctions de surcharge d'un opérateur de base, pour lui permettre de
gérer un type défini par l'utilisateur
− Fonctions de résolution, pour lever les conflits de valeur sur un signal
(ex. : '0' faible et '1' fort, appliqués en même temps sur un même signal,
donneront un '1' fort)
◼ Les fonctions peuvent êtres définies dans la zone de déclaration d’une
architecture, ou bien dans le corps d'un paquetage.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 54


Leïla KHANFIR

9. Fonctions
◼ Syntaxe :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 55


Leïla KHANFIR

9. Fonctions
◼ Exemple :
− La fonction suivante calcule le log2(a) d'une façon approchée, pour a
positif codé sur 8 bits.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 56


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 57


Leïla KHANFIR

10. Procédures
◼ En VHDL, une procédure est un ensemble d'instructions séquentielles, qui
dépend d’un ou plusieurs paramètres et qui ne retourne pas de résultat (En
réalité, les résultats sont rangés dans les paramètres de la procédure).
◼ Comme pour les fonctions, mais avec d'avantage de précautions, les
paramètres peuvent être des signaux, des constantes ou des variables.
◼ Les procédures peuvent êtres définies dans la zone de déclaration d'une
architecture, ou bien dans le corps d'un paquetage.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 58


Leïla KHANFIR

10. Procédures
◼ Exemple
− La procédure suivante calcule l'opposé de a en complément à 2, en
balayant le vecteur de droite à gauche, avec conservation des bits
jusqu’au 1er '1' inclus, et inversion des bits suivants.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 59


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 60


Leïla KHANFIR

11. Unités de description


◼ Un modèle VHDL est construit à partir de 5 unités de conception : entité,
architecture, configuration, component, paquetage, corps de
paquetage.

◼ Enfin, VHDL offre 3 styles de description (flot de données, structurelle, et


comportementale) complémentaires qu'il est possible de mélanger selon les
besoins.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 61


Leïla KHANFIR

11. Unités de description


◼ Un modèle VHDL est construit à partir de 5 unités de conception :
− Entité : décrit la vue externe d'un circuit
− Architecture : décrit une vue interne d'un circuit
− Configuration : décrit une association entre une entité et une architecture
− Component : déclare un composant
− Paquetage : regroupe des déclarations (types, constantes, fonctions,
procédures)
− Corps de paquetage : regroupe des définitions de fonctions et de
procédures.

◼ Enfin, VHDL offre 3 styles de description (flot de données, structurelle, et


comportementale) complémentaires qu'il est possible de mélanger selon les
besoins.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 62


Leïla KHANFIR

11. Unités de description


11.1. Entité
◼ L'entité constitue la vue externe d'un modèle.
◼ Elle décrit notamment les ports d'entrée/sortie, leur direction, leur type et
leur largeur.
◼ Nous verrons plus tard que pour les composants paramétrés, elle décrit
également la liste des paramètres, ainsi que leur type.
◼ Syntaxe :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 63


Leïla KHANFIR

11. Unités de description


11.1. Entité
◼ Exemple :
◼ On considère un additionneur 1 bit, add1, prévu pour être assemblé en
cascade afin de créer un additionneur à plusieurs bits avec propagation de
retenue.
◼ Il calcule la somme s et la retenue sortante cout, à partir de deux opérandes
a et b, en prenant en compte la retenue entrante cin.

a b

cout add1 cin

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 64


Leïla KHANFIR

11. Unités de description


11.2. Architecture
◼ L'architecture constitue une vue interne du modèle.

◼ Elle décrit une réalisation possible du circuit, en utilisant :


− le style flot de données,
− ou bien le style structurel,
− ou encore le style comportemental
⚫ avec le mode concurrent,
⚫ ou avec le mode séquentiel
− ou plus généralement avec un mélange de ces trois styles.

◼ L'architecture est associée à une entité, pour constituer un modèle complet.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 65


Leïla KHANFIR

11. Unités de description


11.2. Architecture
◼ Syntaxe :

− La zone de déclaration est destinée à déclarer les constantes, les types,


les signaux, les composants, les fonctions et les procédures nécessaires.
− La zone de description permet de décrire les équations et/ou la structure
et/ou l'algorithme réalisé par le modèle pour obtenir les résultats. Dans
cette zone, les instructions s'exécutent en parallèle. Leur ordre n’a donc
aucune importance.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 66


Leïla KHANFIR

11. Unités de description


11.2. Architecture
◼ Remarque :
− Comme il n'y a pas une solution unique à un problème technique, mais
plutôt un ensemble de solutions, on comprend que l'architecture d'un
modèle ne soit pas unique.

− Dès lors, une entité peut avoir plusieurs architectures réalisant la même
fonction logique, mais aux caractéristiques physiques plus ou moins
différentes (surface occupée sur le silicium, consommation électrique,
vitesse de calcul, etc.).

− Nous verrons qu'à l'utilisation d'un modèle, il est possible de préciser


quelle architecture on souhaite utiliser.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 67


Leïla KHANFIR

11. Unités de description


11.2. Architecture
◼ Exemple :
− Voici une architecture structurelle de l'additionneur 1 bit, construit à
partir de 2 demi-additionneurs et d'une porte NAND.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 68


Leïla KHANFIR

11. Unités de description


11.3. Component
◼ Avec le style structurel, le VHDL permet de décrire un nouveau modèle à
partir de modèles déjà existants.
◼ L'utilisation d'un composant pour en construire un autre, nécessite au
préalable de déclarer son existence.
◼ La déclaration peut se faire soit dans la zone de déclaration de l'architecture
où il est utilisé, soit dans un paquetage.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 69


Leïla KHANFIR

11. Unités de description


11.3. Component
c. Exemple
− La déclaration du composant add1 vu précédemment, donnerait :

◼ Notez la similitude syntaxique qui existe entre une entity et son component.
◼ Une façon sûre de déclarer un composant consiste à copier/coller son entité,
avant de la modifier.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 70


Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Une entité peut avoir plusieurs architectures, chacune adaptée à une
utilisation particulière.
◼ Lorsque l'on instancie un composant, il faut pouvoir spécifier quelle entité
on souhaite utiliser, associée à quelle architecture.
◼ Pour cela, VHDL introduit le concept de configuration.
◼ Une configuration est un couple (entité, architecture).
◼ Il existe plusieurs manières d'associer une architecture à une entité et donc
plusieurs syntaxes.
◼ Nous nous contenterons de la plus simple :

◼ Elle doit être placée dans la zone de déclaration de l'architecture qui crée
l'instance.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 71


Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Exemple :
− On considère addN, l'additionneur N bit.
− Cet additionneur peut être modélisé avec une entité et deux architectures
différentes, aux caractéristiques physiques (consommation, performance,
surface silicium) différentes. a b
− Son entité : N N

addN

N
s

− Remarque : Une entité et ses architectures se trouvent généralement


dans un même fichier, mais ce n'est pas obligatoire.
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 72
Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Exemple (suite) : La première architecture struct utilise le style
structurel et décrit précisément les sous-composants à utiliser et la
façon de les connecter.

a(N) b(N) a(i) b(i) a(1) b(1) a(0) b(0)

c(N+1) c(N) c(i+1) c(2) c(1) c(0)


add1 add1 add1 add1

s(N) s(i) s(1) s(0)

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 73


Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Exemple (suite) :
− La deuxième architecture utilise le style flot de données et décrit le
calcul des sorties à partir des entrées avec des équations.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 74


Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Exemple (suite) :
− On souhaite maintenant écrire un testbench pour addN.
− Pour cela, il est important de préciser quelle architecture on utilise pour UUT.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 75


Leïla KHANFIR

11. Unités de description


11.4. Configuration
◼ Exemple (suite) :
− La ligne cadrée en rouge peut être interprétée de la façon suivante :
« Pour UUT, qui est une instance de addN, utilise l'entité addN qui se
trouve dans la librairie work, associée à l'architecture flot. ».

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 76


Leïla KHANFIR

11. Unités de description


11.5. Paquetage
◼ En VHDL, des déclarations de types, de constantes, de composants, de
fonctions et de procédures, peuvent êtres centralisés en un même endroit.
◼ Pour cela, il existe une unité de conception spécifique : le paquetage.

◼ Pour utiliser les déclarations d'un paquetage, il faut l'appeler en faisant


référence à la librairie qui le contient.

◼ Le plus souvent, on souhaite rendre visible la totalité des déclarations


contenues (all), mais il est possible de sélectionner seulement l'une ou l'autre
en précisant son nom.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 77


Leïla KHANFIR

11. Unités de description


11.5. Paquetage
◼ Exemple :
− Dans le paquetage suivant on déclare le component add1 (additionneur 1
bit), qui pourra ensuite être utilisé dans add4 (additionneur 4 bits).

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 78


Leïla KHANFIR

11. Unités de description


11.5. Paquetage
◼ Exemple (suite):
− Dans add4, l'utilisation du composant add1 sera rendue possible, grâce à
l'appel au paquetage pack, dans lequel il est déclaré.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 79


Leïla KHANFIR

11. Unités de description


11.6. Corps de Paquetage
◼ Lorsque l'on utilise des fonctions ou des procédures, il faut distinguer deux
choses :
− La définition : fonction complète, avec son en-tête et son corps.

− La déclaration : prototype de la fonction, c'est à dire son en-tête seul.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 80


Leïla KHANFIR

11. Unités de description


11.6. Corps de Paquetage
◼ Lorsque la définition d'une fonction ou d'une procédure est faite dans la
zone de déclaration d'une architecture, elle est locale à cette architecture et
n’a donc pas besoin d'être déclarée pour être utilisée.
◼ Toutefois, son utilisation sera limitée à cette architecture particulière...
◼ Pour favoriser la réutilisation d'une fonction ou d'une procédure, VHDL
propose de la définir dans une unité de conception dédiée : le corps de
paquetage.
◼ Le corps de paquetage est destiné à compléter un paquetage. Donc, il ne
peut exister seul (l'inverse est vrai). Il se trouve généralement juste après le
paquetage, dans le même fichier VHDL.
◼ Son rôle est de définir les fonctions et les procédures qui ont été déclarées
dans le paquetage.
◼ Pour fixer les idées, on peut faire l'analogie suivante :
− Le paquetage est équivalent au fichier .h en langage C.
− Le corps de paquetage est équivalent au fichier .c en langage C

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 81


Leïla KHANFIR

11. Unités de description


11.6. Corps de Paquetage
◼ De ce fait, pour qu'une fonction ou une procédure soir réutilisable il faut :
− définir la fonction ou la procédure dans le corps d'un paquetage,

− ensuite la déclarer dans le paquetage correspondant

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 82


Leïla KHANFIR

11. Unités de description


11.6. Corps de Paquetage
− et enfin, déclarer le paquetage dans chaque fichier où on utilise la
fonction ou la procédure.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 83


Leïla KHANFIR

11. Unités de description


11.6. Corps de Paquetage
◼ Exemple :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 84


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 85


Leïla KHANFIR

12. Testbench
◼ La simulation d'un modèle VHDL nécessite la création d’un environnement
de test.
◼ Par analogie avec le travail dans un laboratoire d'électronique, on doit créer
un banc de test ou tesbench en anglais.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 86


Leïla KHANFIR

12. Testbench
◼ Sur un banc de test, on peut identifier 3 parties:

− Le composant à tester. C'est le modèle VHDL que l'on veut simuler.

− Le générateur de signaux. Les signaux d'entrée (vecteurs de test) sont


générés à partir de code VHDL, par affectations concurrentes ou
séquentielles, ou éventuellement lus à partir d'un fichier d'entrée.

− L'analyseur logique. Les signaux de sortie (vecteurs résultats) sont


affichés par le simulateur, ou éventuellement sauvegardés dans des
fichiers de sortie.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 87


Leïla KHANFIR

12. Testbench
◼ Concrètement, le testbench est un modèle VHDL dont la vocation n’est pas
de créer un circuit réel, mais plutôt d'aider à tester le fonctionnement d'un
autre modèle par simulation fonctionnelle.

◼ De ce fait, son entité ne comporte pas de ports d'entrée, ni de ports de sortie.


Toutefois, elle peut comporter des paramètres.

◼ L'architecture du testbench instancie un exemplaire du composant que l'on


souhaite tester, avec pour nom d'instance Design Under Test (DUT), ou
encore Unit Under Test (UUT).

◼ La compilation du testbench et son chargement (élaboration) dans le


simulateur permettent de simuler le circuit et de tracer les chronogrammes
des signaux sélectionnés.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 88


Leïla KHANFIR

12. Testbench
◼ Exemple :

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 89


Leïla KHANFIR

Contenu
1. Introduction au VHDL
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 90
Leïla KHANFIR

13. Libraires
◼ En association avec les logiciels de CAO, VHDL permet d'organiser les
développements dans des bibliothèques (ou librairies) thématiques.
◼ Une organisation intelligent favorise la réutilisation des modèles déjà
développés et validés.
◼ D'une façon générale, on distingue 3 catégories de bibliothèques :
− Les deux bibliothèques standard
⚫ Std (Standard) : Contient les types et les opérateurs de base du
langage et fait partie implicite de tous les projets VHDL.
⚫ IEEE : Contient les types et les opérateurs ajoutés par les révisions
de la norme, sous la forme de paquetages à inclure selon les besoins.
std_logic_1164 : définit les types std_logic et std_logic_vector, ainsi
que les opérateurs logiques associés.
std_logic_arith : définit les fonctions de conversion entre différents
types et le type std_logic_vector.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 91


Leïla KHANFIR

13. Libraires
std_logic_unsigned : définit des opérateurs arithmétiques et de
comparaison non signés, à utiliser lorsque les objets de type
std_logic_vector contiennent des valeurs non signées (simplement en
binaire).
std_logic_signed : définit des opérateurs arithmétiques et de
comparaison non signés, à utiliser lorsque les objets de type
std_logic_vector contiennent des valeurs signées (en complément à 2).
Remarque : std_logic_unsigned et std_logic_signed ne peuvent pas
cohabiter, car ils définissent les mêmes opérations de façon différente.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 92


Leïla KHANFIR

13. Libraires
− Les bibliothèques proposées avec le logiciel
⚫ Ce sont des bibliothèques destinées à faciliter certaines tâches,
comme la communication avec un programme C pendant la
simulation, la simulation post-synthèse, etc.
⚫ Elle ne font pas toujours partie d'un standard, aussi leur utilisation
devra être limitée pour préserver la portabilité du projet.
− Les bibliothèques utilisateur
⚫ Chaque modèle compilé par l'utilisateur est rangé dans une librairie.
⚫ Par défaut, la librairie de travail s'appelle work et se trouve dans le
même répertoire que le projet.
⚫ En réalité, il est possible de créer ses propres bibliothèques et de
compiler ses modèles dedans (voir le manuel des logiciels de CAO).
⚫ Une organisation intelligente des développements favorise la
réutilisation et augmente la productivité..

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 93


Leïla KHANFIR

Contenu
2. Classes d’objet
3. Types d’objet et opérateurs VHDL
4. Types d’instruction
5. Paramètres génériques
6. Boucle de génération
7. Boucle algorithmique
8. Processus
9. Fonctions
10. Procédures
11. Unités de description
12. Testbench
13. Librairies
14. Conclusion
ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 94
Leïla KHANFIR

14. Conclusion
◼ Ce cours est une introduction au VHDL.

◼ Il porte sur les concepts essentiels du langage, ceux dont le concepteur a


besoin 99% du temps.

◼ Nous avons tenté de couvrir la majorité des aspects de la conception de


circuit en VHDL.

◼ L'apprentissage et l'assimilation de ces concepts passe nécessairement par


une phase pratique, qui fait l'objet de la suite de ce cours.

◼ Enfin, les points volontairement écartés peuvent être approfondis grâce à


différents ouvrages très complets sur le sujet.

ARCHITECTURES MATERIELLES – CHAPITRE III EABA 2020/2021 95