Académique Documents
Professionnel Documents
Culture Documents
de Description Matériel
VHDL
Tables de matières
I- Généralités et Introduction
1. Introduction
Le langage VHDL signifie :
(V : Very High Speed Integrated Circuit
H: Hardware, D:Description; L: Language)
C’est un standard de l’IEEE(Institute of Electrical and Electronics Engineers). C’est un
langage de description de haut niveau pour la simulation et la synthèse des circuits
numériques.
2. Terminologie
- HDL : langage de description matérielle, est le logiciel de programmation
permettant la description d’un ensemble ou sous-ensemble matériel.
- Description comportementale(ou fonctionnelle): le circuit est décrit
fonctionnellement sans faire appel à des structures électroniques.
- Description structurelle: le circuit est décrit par des interconnexions de
composants ou primitives de haut niveau.
II- Bases du langage VHDL
1. Introduction
Comme la majorité des langages, le VHDL :
fait appel à des librairies (library).
Il utilise des mots clés.
Les lignes de commandes se terminent par « ; »
Les commentaires sont précédés par « -- »
Il utilise indifféremment les majuscules et minuscules.
Les modèles peuvent être décrits en comportemental, structurel ou mixte
Il utilise les concepts de base suivant : l’entité (entity), l’architecture
(architecture), la configuration (configuration) et le boitier(Package).
2. Les librairies
Les librairies sont déclarées au début d’un fichier VHDL. Les plus usuelles sont :
ieee.std_logic_1164.all;
ieee.std_logic_signed.all;
ieee.numeric_std.all;
ieee.std_logic_unsigned.all…
Ainsi pour une application faisant appel à de la logique combinatoire et séquentielle(le plus
fréquent) on trouve en début de fichier:
LIBRARY ieee;
Use ieee.std_logic_1164.all;
library lpm ;
Use lpm.lpm_components.all ;
3. L’entité
Elle donne un aspect extérieur du modèle VHDL à réaliser. Elle ressemble à un symbole.
Syntaxe :
entity <nom_entité> is
port ( <Nom_Entrée_1> : in <Type_Du_Signal> ;
<Nom_Entrée_2> : in <Type_Du_Signal>;
...
<Nom_Sortie_1> : out <Type_Du_Signal> ;
<Nom_E_S_1> : inout <Type_Du_Signal> );
end <nom_entité> ;
Exemple :
ENTITY comparateur_8bit IS
PORT(
a : IN std_logic_vector(7 DOWNTO 0);
b : IN std_logic _vector(7 DOWNTO 0);
egal : OUT bit);
END comparateur_8bit;
4. Architecture
- Elle a pour rôle de décrire le comportement du composant VHDL. Elle correspond au
schéma électrique interne du composant et est nécessairement associée à une entité.
- Toutes les instructions qui la constituent sont exécutées de manière concurrente (simultanée)
ou séquentielle.
- Les descriptions peuvent être comportementales, structurelles ou mixtes.
Syntaxe :
architecture <nom_arch> of <nom_entité> is
<zone declaration;>
begin
<description de ;
la structure ;
logique; >
end <nom_arch> ;
Exemple
d- Process
Un process est utilisé lorsque l’on a besoin de faire une exécution séquentielle dans
une architecture. Il peut être défini par un label (n’est pas obligatoire). Il y a par contre toujours
une liste de sensibilité entre parenthèse (…). Lorsque l’un des signaux présents dans la liste
de sensibilité change, le contenu du process est alors exécuté.
Syntaxe
[<label> :] process(<liste des sensibilités>)
[<déclaration>]
Begin
<instructions> ;
End process [<label>];
e- Signal et variable
Dans un process, un signal n’aura sa nouvelle valeur affectée qu’à la fin du process. A
Syntaxe
if <condition> then
<instructions>
[elsif <condition> then <instructions>]
[else <instructions>]
end if ;
Exemple:
if (RESET=’1’) then SORTIE <= ”0000”;
end if ;
component decoder7segment is
port(B:in std_logic_vector(3 downto 0);
Seg :out std_logic_vector(0 to 6));
end component;
________________________
signal c1:std_logic;
signal c2:std_logic_vector(3 downto 0);
_______________________
begin
u1:diviseurfrequence port map (Hin=>H, Hout =>c1);
u2:compteur port map (H=>c1, RAZ=>RAZ, QS=>c2);
u3:decoder7segment port map (B=>c2, Seg=>S);
end compter;