Vous êtes sur la page 1sur 7

Conception des Systèmes Numériques (VHDL) A.

Bouaicha

Chapitre2
Le langage VHDL

1. Introduction

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 (SOC).

Il est utilisé pour effectuer la spécification et la simulation des systèmes logiques.

VHDL est l’abréviation de: V: VHSIC (Very High Speed Integrated Circuit)
H: Hardware
D: Description
L: Language
Parmi les objectifs souhaités par le comité de normalisation IEEE et atteints par les éditeurs
de logiciels de CAO on peut citer :

- La spécification : Offrir un langage universel afin d’exprimer les besoins auxquels doit
répondre un circuit intégré, sans aucune ambiguïté.
- Modélisation : Permettre de décrire des circuits existants ou leur fonctionnement.
- Conception : Aider l’électronicien à exprimer les concepts propres à la création d’un
circuit intégré.
- Synthèse: Rendre possible la traduction automatisée d’un code VHDL en un circuit
logique.
- 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.
- 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.
Conception des Systèmes Numériques (VHDL) A.Bouaicha

Ce langage présente d’innombrables avantages techniques dont les plus importants sont :

- 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.
- 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.

2. Structure de base d’une description VHDL simple


Une description VHDL est constituée de 3 parties inséparables à savoir :

 L’entête : définit la déclaration des bibliothèques.


 L’entité (Entity) : définit les entrées et les sorties.
 L’architecture (Architecture) : contient des instructions VHDL permettant de réaliser
le fonctionnement attendu.

Exemple :

Entête

Entité

Architecture

Figure : Structure de base d'un code VHDL


Conception des Systèmes Numériques (VHDL) A.Bouaicha

2.1. Entête
Une librairie est décrite par un ensemble de paquetage qui offre à l’utilisateur des outils
variés. Elle permet, entre autres, la définition de types, et fonctions de conversion entre types
puisque VHDL est langage objet fortement typé. Aucune conversion de type implicite n’est
autorisée dans les expressions, mais une librairie peut offrir des fonctions de conversion
explicites, et redéfinir les opérateurs élémentaires pour qu’ils acceptent des opérandes de
types variés. L’IEEE (Institute of Electrical and Electronics Engineers) les a normalises et
plus particulièrement la bibliothèque IEEE_1164.

Library ieee ;
Use ieee.std_logic_1164.all;
Use ieee.numeric_std.all;
Use ieee.std_logic_unsigned.all;

La directive « Use » permet de sélectionner les bibliothèques à utiliser.

Parmi les paquetages de la librairie IEEE, on site :

- std_logic_1164 définit les types, les fonctions de conversion, les opérateurs logiques
et les fonctions de recherches de front ( rising_edge() et falling_edge ()).
- numeric_bit définit les opérateurs arithmétiques agissant sur des bit_vector
interprétés comme des nombres entiers.
- numeric_std définit les opérateurs arithmétiques agissant sur des std_logic_vector
interprétés comme des nombres entiers.

2.2. Entité
La déclaration d’entité décrit l’interface entre le monde extérieur et une entité de
conception: les constantes (paramètres génériques) et les signaux d’entrées et de sorties.

La liste des ports d’accès (port (…);) déclare l’ensemble de signaux d’interface entre le
monde extérieur et l’unité décrite. À chaque signal de communication sont attachés un nom,
un mode et un type.

 Le nom jusqu'à 32 caractères et il doit être début par une lettre et il n'y a pas de
différence entre majuscule et minuscule.
Conception des Systèmes Numériques (VHDL) A.Bouaicha

 Le mode précise le sens de transfert des informations :


- in: signal d’entrée
- Out: signal de sortie
- Inout : signal bidirectionnel, les informations peuvent transiter dans les deux sens
(source multiples interne et externe)
- Buffer: un port de sortie dont la valeur peut être relue à l’intérieur de l’unité décrite
(source unique, interne à l’unité décrite)

 Le type peut être : Bit, Boolean, Integer, Std_logic, Bit_vector, std_logic_vector,


Signed, Unsigned, Natural (sous type de integer limité au nombre positifs),
Positif(sous type de integer limité au nombres strictement positifs), Character, String.

Un signal de type de std_logic peut prendre l’un des états présents dans la figure suivante:

Figure : Différents états d'un signal de type std_logic

2.3. Déclaration de l’architecture


Le fonctionnement interne d’un module, son corps, est précisé par une architecture
associée à l’entité. Une unité de conception est donc la réunion d’un entête, entité et d’une
architecture.

L’architecture est divisée en deux parties :

 Zone de déclaration
 Zone d’instructions.
Conception des Systèmes Numériques (VHDL) A.Bouaicha

Figure : parties d'une architecture d'un code VHDL

Les instructions sont concurrentes, elles s’exécutent en parallèle, elles peuvent donc s’écrire
dans un ordre quelconque.

a) Règles d’écriture
- Il n’ya pas de différence entre le minuscule et le majuscule.
- Un identificateur est composé de lettres, du symbole « _ » (tiret-bas), et de chiffres. Il
doit commencer par une lettre et il n’accepte pas deux symbole _ successif.
- À l’intérieur du programme, un commentaire est introduit par deux tirets « -- ».
- Les instructions se terminent par des « ; ».
- Les caractères et les bits sont présentés entre apostrophes ‘a’/’0’.
- Les chaines de caractères et les vecteurs sont présentées entre des guillemets ‘’abc’’/
‘’11001110’’.
- Pour présenter des entiers dans une base (différente de 10 ou 2) on utilise la
représentation base#valeur# (exemple 16#1F#)
- Il faut toujours laisser un espace entre la valeur mesurée et l’unité de mesure (10 ns).
- Les mots réservés ne peuvent pas être utilisés comme identificateur.

Liste de mots réservés


Conception des Systèmes Numériques (VHDL) A.Bouaicha

b) Les objets
Il existe trois classes d’objets qui peuvent être déclarés dans une architecture d’un code
VHDL:

- Signal: il représente une connexion électrique un fil ou un bus. Il doit être avant son
utilisation. L’affectation est effectuée avec l’opérateur <=
- Variable: elle ne peut être utilisée que dans un process, et doit être déclarée avant son
utilisation. L’affectation est effectuée avec l’opérateur :=
- Constante: elle est utilisé pour donner un nom à une valeur, dans de but de faciliter la
révision du code et la détection des erreurs L’affectation est effectuée avec l’opérateur :=

2.4. Description d’une architecture


À une seule entité peut correspondre plusieurs architectures différentes. On décrit donc
une classe d’unités de conception qui présentent au monde extérieur le même aspect, avec des
fonctionnements internes différents.

On distingue 3 types de descriptions :

- Description comportementale (behavioral) se présente comme des blocs d’algorithmes


séquentiels exécutés par des processus indépendants.
- Description en flot de données (data flow) correspond au passage des signaux à travers
des couches d’opérateurs logiques qui décrivent les étapes successives qui font passer
des entrées d’un module à sa sortie.
- Description structurale (structural): utilise des composants supposés exister dans une
librairie de travail, sous forme d’unités de conception. Le programme se contente
d’instancier les composants nécessaires et de décrire leurs interconnexions.

Exemple : On se propose de décrire un MUX 2-1 en utilisant les trois approches de


description
Conception des Systèmes Numériques (VHDL) A.Bouaicha

Description en flot de données Description comportementale

Technique d'instanciation

Description structurale

Vous aimerez peut-être aussi