Vous êtes sur la page 1sur 4

28/06/2019

Ecole Nationale Polytechnique –Constantine.


Département EEA
Quatrième Année Ingénieurs –Semestre 2.
Automatique/Electrotechnique
Cours. Circuits Programmables

Chapitre V. (Partie 1)
Langages de programmation HDL
(Hardware description langage, langage de description du matériel)
Durée du Cours: 1h30
Présenté par: Dr. S. BENSEGUENI
(benskandix@gmail.com)

Année Universitaire. 2018-2019

1. Langage HDL
Les HDL ou les langages de description du matériel
permettent au concepteur de spécifier la fonction
d’un circuit utilisant un type de langage de
programmation, le plus courant qui sont VHDL et
Verilog. Ces langages sont spécialement conçus pour
décrire les contenus numériques. circuits avec des
constructions permettant (entre autres) au
concepteur de décrire la nature intrinsèquement
parallèle d’un circuit numérique, de «câbler»
différents composants, et pour simuler les aspects
temporels du circuit.
Circuits Programmables Dr. S. Bensegueni

1. Langage HDL
Parce que les machines à états ont une construire
commune en HDL, de nombreux fournisseurs
fournissent des outils permettant une conception
rapide de ces structures. Les outils de saisie de la
machine à états permettent au concepteur de les
dessiner en insérant les actions et les conditions à
l'aide de la syntaxe HDL. Cette machine à état est
convertie au code HDL qui peut ensuite être inclus
dans la conception globale.

Circuits Programmables Dr. S. Bensegueni

1
28/06/2019

2. Développement et conception en
langage VHDL
VHDL (langage de description matérielle de circuit
intégré très haute vitesse) est un langage
spécialement créé pour la conception de matériel
numérique et est un logiciel de la norme IEEE.

Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Entités et architectures VHDL)
L'unité de base d'une description de circuit VHDL est
l'entité, qui possède à la fois une vue externe (c’est-à-
dire une interface définie par les ports de l’entité) et
une vue interne (l'implémentation définie par
l'architecture). La vue externe (c’est-à-dire les ports)
permet à l’entité de s’intégrer à un modèle plus grand
sans tenir compte d'une mise en œuvre particulière.
Le concepteur peut alors créer n’importe quel
nombre de tâches internes pour définir le
fonctionnement de l'entité.
Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Entités et architectures VHDL)
Pour plus de compréhension, considérons la
conception d’un circuit FULL_ADDER à un bit. Un
FULL_ADDER est composé de deux modules
HALF_ADDER et chaque HALF_ADDER utilisent deux
entrées (A et B) pour générer les sorties SUM et
CARRY. La description VHDL HALF_ADDER est donnée
ci-dessous (notez que les numéros de ligne sont
simplement par commodité, et ne font pas partie du
code).

Circuits Programmables Dr. S. Bensegueni

2
28/06/2019

2. Développement et conception en langage VHDL


(Entités et architectures VHDL)
1 -- Description of half adder circuit
2 entity HALF_ADDER is
3 port (A,B : in bit;
4 SUM,CARRY : out bit);
5 end HALF_ADDER;
6
7 architecture HALF_ADDER_ARCH of
HALF_ADDER is
8 begin
9 SUM <= A xor B;
10 CARRY <= A and B;
11 end HALF_ADDER_ARCH;

Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Entités et architectures VHDL)
Ce code illustre une partie de la syntaxe VHDL.
• Le langage VHDL est un langage fortement typé et ne
convertira pas automatiquement entre les types. Cela
permet de minimiser les erreurs logiques telles que l’essai
de placer une valeur de 10 bits sur un bus de 8 bits. Bien
qu’il existe de nombreux types intégrés et définis par
l’utilisateur, le les plus utilisés sont :
STD_LOGIC, STD_LOGIC_VECTOR et INTEGER.
• Les commentaires (ligne 1) sont précédés de deux tirets
et se terminent à la fin de la ligne.
• Un point-virgule est placé à la fin de chaque instruction.
• VHDL n'est pas sensible à la casse.
Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Entités et architectures VHDL)
Ce code illustre une partie de la syntaxe VHDL.
• Les composants et les signaux doivent être déclarés avant
d'être utilisés dans une entité.
• Le symbole <= permet d’attribuer une valeur à un signal.
• Les noms après les déclarations de end sont facultatifs.
cependant, ils aident à clarifier le code. Prenez soin de la
syntaxe des instructions de fin - la syntaxe exacte peut changer
en fonction de la déclaration à laquelle l’endis est associé. Par
exemple, end if doit être utilisé pour fermer une instruction if.
• Les espaces blancs tels que la ligne blanche (lignes 6) et les
retraits (lignes 9 et 10) peuvent être utilisé pour rendre le code
plus lisible.

Circuits Programmables Dr. S. Bensegueni

3
28/06/2019

2. Développement et conception en langage VHDL


(Types et librairies VHDL)
Par défaut, le VHDL fournit plusieurs types de
données comprenant, entre autres, le type bit (vu
dans l'exemple précédant), le type booléen (prenant
les valeurs : vrai ou faux) et le type entier (en
complément de deux avec une plage dépendant des
outils de conception utilisés (souvent 32 bits)). Le
VHDL permet également un certain nombre de types
dérivés y compris les tableaux, les types énumérés et
les sous-types (sous-ensembles d'autres types, par
exemple le type naturel est un sous-ensemble du type
entier, y compris toutes les valeurs positives et zéro).
Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Types et librairies VHDL)
Notez que, le langage VHDL étant un langage fortement typé,
alors si on définit le même type deux fois en utilisant des noms
différents (comme indiqué ci-dessous), on ne peut pas affecter
le signal d’un type à un signal de l’autre type sans conversion de
type explicite.
1 type array1 is array (7 downto 0) of bit;
2 type array2 is array (7 downto 0) of bit;
3
4 signal a1 : array1;
5 signal a2 : array2;
6
7 a1 <= a2; -- This is not allowed
Circuits Programmables Dr. S. Bensegueni

2. Développement et conception en langage VHDL


(Types et librairies VHDL)
Remarque.
VHDL permet de créer des bibliothèques de
conception et des packages pour structurer votre
projet. Cependant, on ne considérera que les
bibliothèques intégrées standard.

Circuits Programmables Dr. S. Bensegueni

Vous aimerez peut-être aussi