Académique Documents
Professionnel Documents
Culture Documents
Sommaire
◼ Introduction
◼ La réalisation des systèmes numériques
◼ Le langage VHDL
◼ Historique et standardisation
◼ L’architecture
1
Le langage VHDL : Introduction
◼ Le langage VHDL a été créé pour décrire des systèmes numérisés destinés
à une implantation dans des circuits logiques programmables (PLD, FPGA,
…)
◼ L’utilisation de ces systèmes de développement induit l’usage intensif de la
simulation
Introduction
2
Les équations booléennes
La méthode graphique
3
Les langages de description hardware
Description structurelle
Description fonctionnelle
Processeur Algorithme
Registre HDL
Porte Q booléennes
Transistor Q différentielles
polygones
Branche
Cellule
Puce
Description géométrique 8
4
Introduction
Le langage VHDL
Description structurelle
Description fonctionnelle
Processeur Algorithme
Porte Q booléennes
Transistor Q différentielles
polygones
Branche
Cellule
Puce
Description géométrique 10
5
Quelques avantages
11
Historique et standardisation
6
Cycle de développement
13
Cycle de développement
14
7
Le langage VHDL
15
8
Les bases du langage
L’entité
17
Définition
End REG8BIT;
18
9
Les spécifications des ports
◼ Un mode,
◼ Un type.
◼ Exemples :
◼ DATA : in bit_vector (3 downto 0);
◼ RESET : in std_logic;
19
in out
inout buffer
20
10
Les différents types logiques
◼ X : inconnue,
◼ U : non initialisée,
◼ - : quelconque,
◼ Z : haute impédance
21
m le LSB.
◼Bit_vector (m to n) : (m < n) Dans ce cas m est le MSB et n le
LSB
◼ Exemple : ◼ Exemple :
BUS1 : in bit_vector (3 downto 0) BUS1 : in bit_vector (0 to 3)
3210 0123
11
Exemples
24
12
Taille d’un bus
BUFFER8 BUFFER16
G G
En En
8 8 16 16
In1 In2 In1 In2
25
Entity CPT is
Generic (
compteur : integer := 4);
…
End CPT;
…
For k in 1 to compteur loop
…
End loop;
26
13
Paramètre temporel
Entity TEST is Y
Generic (
retard : time := 4); t
… X t
0
End TEST;
…
X <= Y after retard; t
t0 - 4
27
L’architecture
28
14
Définition
29
E(0) MUX41
E(1) S
E(2)
E(3)
Entity MUX41 is port (
SEL(0) E : in std_logic_vector (3 downto 0);
SEL(1)
SEL : in std_logic_ vector (1 downto 0);
S : out std_logic);
SEL(1) SEL(0) S End MUX41;
0 0 E(0)
0 1 E(1)
1 0 E(2)
1 1 E(3)
30
15
Description de type flot de données
31
◼ Ils sont au nombre de 7 : and, nand, or, nor, xor, xnor et not.
◼ Les opérandes sont :
◼ Booléens,
◼ Bit ou bit_vector,
◼ Std_logic ou std_logic_vector
A
B
C S S <= (A and B) or (C and D);
D
32
16
La fonction d’affectation <=
33
34
17
Les opérateurs relationnels
35
36
18
L’instruction CASE
L’instruction Process
38
19
Exemples de process
Begin
Etiq1 : F1 port map (E0,E1,S1);
Etiq2 : F2 port map (S1,E2,S);
End STRUCT;
40
20
Les bases du langage
41
◼ Les objets sont les éléments de base du langage VHDL. Ils sont au
nombre de 3 :
42
21
Les types scalaires
43
◼ Un type scalaire est dit énuméré si toutes les valeurs qu’il peut
prendre sont listées dans sa déclaration.
44
22
Les types scalaires non énumérés
◼ Les types integer et real font partis des types non énumérés.
◼ Néanmoins l’utilisateur peut les borner par l’instruction range qui
définit une limite basse et haute de manière à ne pas bloquer de
la ressource inutilement.
45
0 1 2 3
0à9 0à9 0à9 0à9
ANNEE
Variable ANNEE_EN_COURS : ANNEE;
On accède à un
ANNEE_EN_COURS := (2,0,0,7); élément de l’article
par son indice
ANNEE_EN_COURS(3):=7;
46
23
Les tableaux à plusieurs rangées
0 1 2 3
0 1 9 6 8
DATE 1 1 9 7 1
2 1 9 9 4
47
24
Les bases du langage
49
Le paquetage
50
25
Les paquetages prédéfinis
26