Cours1 VHDL
Cours1 VHDL
Cours1 VHDL
Language
Introduction
Langages de description matériel HDL
Historique
Définition du langage VHDL
Flot de conception
Méthodes de conception
Modélisation et synthèse
Unités de conception
2
Introduction
3
Introduction
ASIC
Amplificateurs Microprocesseurs
Opérationnels Microcontrôleurs
Timers … Mémoires
Circuits PLDs ….
logiques
Combinatoires
Séquentiels
4
Introduction
5
Langages HDL
Abstraction textuelle
7
Historique
1999 VHDL AMS
conception mixte
8
Définition
Le VHDL est un langage fonctionnel de haut niveau qui ne
vise pas une exécution, il est utilisé pour :
La modélisation des systèmes électroniques complexes.
La simulation du comportement des modèles.
La synthèse
La documentation.
9
Définition
A ce jour on utilise le langage VHDL pour :
10
Flot de conception
11
Méthodes de conception
La complexité des fonctions réalisées sur une seule puce de silicium ne peut
être maîtrisée que grâce à l’assistance d’outils logiciels appropriés et de
méthodes de conception systématiques:
12
Méthodes de conception
descendante mixte
ascendante
13
Modélisation et synthèse
Modélisation des systèmes électroniques complexes.
14
Modélisation et synthèse
Simulation :
15
Modélisation et synthèse
Synthèse:
Le passage d’une vue (modèle) à l’autre s’appelle synthèse.
Synthèse logique:
C'est le passage d'une vue comportementale à une vue
structurelle. Elle est souvent automatique, traitée par des
logiciels spécialisés et complexes.
Synthèse physique:
Passage d'une vue structurelle à une vue physique. On part
généralement d'une liste de portes et de leurs interconnexions
(netlist) pour aboutir à une description physique du circuit en
termes de masques. Fonction de placement et routage de
cellules (transistor, portes, ALU , mémoires).
16
Modélisation et synthèse
Synthèse:
17
Modélisation et synthèse
Limites actuelles du VHDL :
18
Modélisation et synthèse
Modélisation Synthèse
Tout le langage: Langage simplifié(pas de
Logique + Temporel retards). Le style d’écriture
Un modèle peut être anticipe une primitive circuit.
comportemental, structurel ou La synthèse demande une
de type data-flow bonne connaissance du
Exemple: circuit et de la technologie.
crée des programmes de test
19
Modélisation et synthèse
Les avantages de VHDL :
Le VHDL :
indépendant du constructeur
indépendant de la technologie Portabilité
indépendant de la démarche
indépendant du niveau de conception
20
Unités de conception
Définition:
L’unité de conception (design unit) est le plus petit module
compilable séparément.
21
Unités de conception
Définition:
22
Unités de conception
Entité et architecture:
23
Unités de conception
Déclaration de l’entité:
Portion du code permettant de définir en particulier les Entrées/Sorties
Les " ports " d‘E/S doivent impérativement être déclarés dans l'entité. Leur
mode sera : in, out, inout et buffer.
Les " ports " peuvent être déclarés sous forme de " signaux " simples ( ex :
bit ) ou sous forme de bus ( ex : bit_vector ).
24
Unités de conception
Entité : Syntaxe de déclaration
Entity EXEMPLE is
port (
liste des ports d‘ E/S comportant : nom_des_signaux, mode et type.
);
end EXEMPLE;
25
Unités de conception
Exemple d’entité
Entity EXEMPLE is
port ( A, B : in bit;
SEL : in bit;
Y : out bit
);
end;
A
Y
B
EXEMPLE
SEL
Equivalence schématique
26
Unités de conception
Architecture :
Begin
-- partie opératoire
Z <= A when SEL = '0' else B;
Y <= '1' when Z = A else '0';
end ARCH;
27
Unités de conception
Architecture :
28
Unités de conception
Trois descriptions d’architectures sont possibles:
29
Unités de conception
Description Comportementale: type RTL
E1
E2
Bascule D
Décrit ce que fait l’entité Circuit
E3 Combinatoire Y D Q S
E4
CLK CK
Entity Circuit is port ( E1, E2, E3, E4 : in bit;
Reset, CLK : in bit;
CLR
S : out bit );
End;
Architecture RTL of Circuit is
Reset
Signal Y: bit;
Begin
process(reset, CLK)
begin
if Reset = ‘0’ then S <= ‘0’;
elsif rising_edge(CLK) then S <= Y;
end if;
end process;
End RTL;
30
Unités de conception
31
Unités de conception
Description structurelle:
32
Unités de conception
Description structurelle:
33
Unités de conception
Exemple de description structurelle:
34
Unités de conception
Description flot de donnés: Data Flow
Exprime le flot de données sortant par rapport au flot entrant
Begin
End DATA_FLOW ;
35
Unités de conception
Exemple: Additionneur complet
Cin
A S
Additionneur
B Cout
36
Unités de conception
Exercice d’application:
37
Unités de conception
Modèle comportemental:
architecture comportementale of additionneur is
begin
process
A begin
if (A= ‘0’ and B = ‘0’ and Cin = ‘0’ ) then S
S <= ‘0’ ; Cout <= ‘0’ ;
B end if;
if (A= ‘0’ and B = ‘0’ and Cin = ‘1’ ) then
S <= ‘1’ ; Cout <= ‘0’ ;
end if;
Cout
Cin if (A= ‘0’ and B = ‘1’ and Cin = ‘0’ ) then
S <= ‘1’ ; Cout <= ‘0’ ;
end if;
…...
wait on A, B ;
end process;
end comportementale;
38
Unités de conception
Modèle structurel:
39
Unités de conception
Modèle structurel:
40
Unités de conception
Modèle Data flow:
41
Unités de conception
Configuration
Si l'entité A est utilisée au sein de l'architecture arch_princ de l'entité princ, et si on
a plusieurs architectures pour cette entité A. Lors de la synthèse ou de la simulation
de l'entité princ, il va être nécessaire de spécifier quelles sont les architectures à
utiliser. Cette spécification peut être faite grâce à l'utilisation d'une configuration.
43
Unités de conception
Package:
Dans le langage VHDL, il est possible de créer des “package” et
“package body” dont les rôles sont de permettre le regroupement de
données, variables, fonctions, procédures, etc., que l'on souhaite
pouvoir utiliser ou appeler à partir d'architectures.
44
Unités de conception
Package:
Décrit une vue externe (boite noire)
Regroupement de déclaration de type et/ou sous programme.
Construction d’une bibliothèque.
Possibilité de l’exportation de l’un de ces objets.
Le contenu de la déclaration du paquetage est visible de l’extérieur.
Déclaré avant l’entité.
Package Body:
Décrit une vue interne (comment de la boite noire)
Contient l’écriture proprement dites des fonctions et des procédures
déclarées au niveau du paquetage.
Le corps du package n’est pas toujours nécessaire.
45
Unités de conception
Package:
package PACK is
-- déclarations de types, sous types, signaux, composants
-- constantes, sous programmes (sans code)
-- aucune variable
end PACK;
Package Body:
46
Unités de conception
Exemple:
use work.geometrie.pi;
use work.geometrie.aire_cercle;
..........
calc: process(h)
variable aire, perim :real ;
begin
.....
aire_cercle (rayon,aire);
perim := 2*pi*rayon;
.....
end process calc;
.......
47
Unités de conception
Exercice :
48