Vous êtes sur la page 1sur 17

INITIATION

Begin
Process(clk)
Begin
AU LANGAGE VHDL
If rising-edge(clk) Ahmed AOUCHAR
Then
C <= c + 1 ;
End if ;
End process ;

L’École des INGÉNIEURS Scientifiques

1. INTRODUCTION
1.1. PRÉSENTATION

 VHDL sont les initiales de « VHSIC Hardware Description Language »


 Il a été développé en 1981 par le département de défense américaine
pour décrire du « hardware »
 Il a été standardisé en 1987 par l’IEEE et mis à jour régulièrement
 VHDL a été d’abord adopté pour la simulation ensuite la synthèse logique
 C’est un langage typé comme le C, il faut déclarer le type de chaque signal
manipulé
 La syntaxe ressemble à celle du C mais il ne faut pas tomber dans le piège,
il faut toujours avoir à l’esprit que l’on décrit du matériel « hardware »

1.2. LA SYNTHÈSE LOGIQUE

 L’art de passer du code à des portes logiques :

4
2. RÈGLES D’ÉCRITURE

2.1. STRUCTURE D’UN PROGRAMME VHDL

Entité

A circuit X
B
C Y
Architecture

 L’entité décrit la façade du module « circuit » : une vue externe


 L’architecture détaille le fonctionnement interne : c’est la partie la plus délicate à
coder
6
2.2. L’ENTITÉ

A circuit X
Nom du module B
C Y

Début et fin

Le type
STD_LOGIC
Liste des entrées
sorties Le mode
In : entrée
Out : sortie
Inout : entrée sortie
7

2.3. LE TYPE « STD_LOGIC »

 Désigne un signal logique qui peut prendre les valeurs suivantes :


‘0’ 0V Y

‘1’ +Vdd Y

‘X’ : inconnu ? Y

‘Z’ : haute impédance 0/Vdd Y


Vdd

‘H’ : rappel à Vdd 0/Vdd Y

‘L’ : rappel à 0V 0/Vdd Y

0V
‘-’ : quelconque 0/Vdd Y
8
2.4. L’ARCHITECTURE

A circuit X
B
C Y

Equation logique
(processus implicite)

Début et fin
Bloc « process »
(processus explicite)

Connexion d’une
sortie à un signal 9

L’ARCHITECTURE (2)

Architecture Equation logique


(processus implicite)

circuit

A
X
(A+B)C

B
inter
C process Y

Bloc « process » Signal


(processus explicite) 10
2.5. SYNTAXE

 Les commentaire commencent après un double tiret ( -- ) et se terminent à la fin


de la ligne

 Le signe d’affectation d’un signal est la flèche vers la gauche ( <= )

 Le signe d’affectation d’une valeur initiale est ( := )

 Pas de distinction entre les majuscules et les minuscules

݅݊‫ܴܧܶ݊݅ ≡ ݎ݁ݐܰܫ ≡ ݎ݁ݐ‬

 Le séparateur d’instructions est point virgule ( ; )


11

2.6. TYPES DE DONNÉES

 Le type le plus utilisé pour la synthèse logique est « std_logic » qui est défini dans
la librairie « IEEE.STD_LOGIC_1164 »

 Un bit est équivalent à un caractère en C, sa valeur est donnée entre quottes

 Un bus (plusieurs bits) est équivalent à une chaine de caractères, sa valeur est
donnée en guillemets

La même chose en hexa :


12
2.7. LE PARALLÉLISME

 Une architecture peut comporter plusieurs opérations logiques et plusieurs


processus : tout s’exécute en parallèle, sans priorité
 L’ordre d’apparition dans le code n’a pas d’incidence sur le résultat

Equation 1 Equation 1

Equation 2 Process 2

Equation 3 Process 1
Equivalent à
Process 1 Equation 2

Process 2 Equation 3

Process 3 Process 3

13

2.8. LES OPÉRATEURS

Type Opérateur Signification


Logique NOT, AND, OR,
NAND, NOR, XOR,
XNOR
NOT Négation, inversion
Arithmétique +, -, * , / , mod Add, sous, mult , div ,
modulo
Rotation rol , ror , srl , sll Rotate Shift Logical
Comparaison relative < , <= , > , >=
Comparaison = , /= Egal, différent
d’égalité

14
2.9. SYNTAXE À L’EXTÉRIEUR DU PROCESS

 Affectation inconditionnelle

 Affectation inconditionnelle

 Affectation sélective

15

2.10. SYNTAXE DANS LE PROCESS

 Affectation inconditionnelle

 Affectation inconditionnelle

 Affectation sélective

16
3. EXEMPLES COMBINATOIRES

3.1. PORTES LOGIQUES

Y = A B C + AB C + AB C
C A B

Table de vérité

Table de Karnaugh Résultat après synthèse


18
3.2. MULTIPLEXEUR À 2 ENTRÉES

sel

D0(3:0)
Y(3:0)
D1(3:0)

19

3.3. MULTIPLEXEUR À PLUSIEURS ENTRÉES

Sel(1:0)

D0(3:0)
D1(3:0)
Y(3:0)
D2(3:0)
D3(3:0)

20
3.4. ADDITIONNEUR COMPLET

a
s
b + cout
cin

21

3.5. DÉCODEUR HEXA VERS 7 SEGMENTS

Attention !
Afficheur à anodes communes

0 : segment allumé
1 : segment éteint

22
3.6. ASSOCIATION DE MODULES (SCHÉMA)

c
a
a a s
s
s
b
b b co
ci
co
co
ci ci
add2
add2
add3

23

4. EXEMPLES SÉQUENTIELS
4.1. BASCULE D AVEC RESET/VALIDATION

reset
reset Q
D Q D
ce
CLK
CLK

25

4.2. BASCULE T (TOGGLE)

reset
reset Q
T Q T
ce
CLK
CLK

26
4.3. REGISTRE À DÉCALAGE

SI D Q D Q D Q D Q D Q D Q D Q D Q SO

27

4.4. COMPTEUR BINAIRE AVEC RESET

28
4.5. COMPTEUR BCD AVEC RESET

29

5. SIMULATEUR (TESTBENCH)
5.1. PRINCIPE D’UN BANC DE TEST

Résultat similation
Entrée du circuit
Sortie du circuit

Carte à
tester

BANC DE TEST

connexion signal
31

5.2. CIRCUIT COMBINATOIRE À TESTER

 Nous avons affaire à un circuit combinatoire à 3 entrées et 2 sorties, il s’agit d’un


additionneur complet.
32
5.3. TESTBENCH : DÉCLARATIONS

 En début de programme, on déclare le composant à tester ainsi que les différents


signaux qui vont servir à connecter le composant.
33

5.4. TESTBENCH : SIMULATION

 La fin du programme sert à connecter le composant et lui imposer des « stimuli »


en entrée pour savoir comment il réagit.
34

Vous aimerez peut-être aussi