TUTORIEL
TUTORIEL
TUTORIEL
1 Partie 1
TUTORIEL SUR VHDL
1. Entité:
Cette entité définit le nom de la description VHDL ainsi que ses entrées/sorties.
La syntaxe est donnée comme suit :
entity NOM_DE_L_ENTITE is
end NOM_DE_L_ENTITE;
2
Le TYPE utilisé pour un signal peut être : état logique
Ou bien :
std_logic_vector(N downto 0) ou (0 to N) : « 0011» qui est un bus
composé de différents états logiques.
Ou bien :
integer : comme son nom l’indique est un entier ;
syntaxe:
type integer is range implementation_defined;
Sa taille doit être comprise entre –2,147,483,647 (–231+1) jusqu’à
+2,147,483,647 (+231–1).
Deux sous-types sont tirés du type integer qui sont : natural et positive.
3
Il est utilisé comme un port dans une entité, comme un indice de boucle
dans un compteur, etc.
Ou bien :
Comme :
equal: out boolean ;
entity HA is
port(A,B : in std_logic;
S,R : out std_logic
);
end HA;
Figure 1
2. Architecture :
Elle décrit le fonctionnement du système donc les relations entre les
entrées et les sorties.
Si un système comprend plusieurs sous-systèmes, chacun sera décrit par
une paire entité/architecture.
Le fonctionnement peut être combinatoire et/ou séquentielle.
On recense trois grands styles d’architecture :
Flot de données
Structurel
Comportemental
architecture arch_HA_flot of HA is
begin
4
S <= A xor B;
C <= A and B;
end arch_HA_flot;
3. LES BIBLIOTHEQUES :
Mais ne pas oublier de spécifier l’entête de la bibliothèque utilisée ainsi que les
packages comme :
library ieee;
use ieee.std_logic_1164.all;
std_logic_vector (0 to 3);
Les types que l’on a utilisés dans l’entité sont divisés en deux catégories :
Scalaires comme :
Entier
Flottant
Physique : Définition unité de mesure
Énumérés : Liste
Ou
Composites comme :
Tableaux (Array)
Enregistrement (Record)
N.B : Les types peuvent admettre des sous-types définis par l’instruction
Subtype.
b. Opérateurs relationnels :
Ils sont définis pou tous les types scalaires et les vecteurs de scalaires. Les
deux opérandes doivent être du même type.
c. Opérateurs arithmétiques :
Ils sont définis pou les types numériques.
00011110 0 0001111
7 downto 0 7 downto 1