Beruflich Dokumente
Kultur Dokumente
1.1.1 Définition
1.1.2 Généralités
1.1.2.1 Nécessité
1
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
2
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
Le langage VHDL couvre tous les niveaux partant des portes logiques de
base jusqu'aux systèmes complets (plusieurs cartes, chacune comprenant
plusieurs circuits). Il s'applique tout aussi bien au niveau structurel qu'au
niveau comportemental, en passant par le niveau transferts de registres ou RTL
(Register Transfer Logic).
3
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
1.1.3.2 La portabilité
1.1.3.3 La lisibilité
4
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
1.1.3.4 La modularité
En VHDL, une description peut donc faire appel à des modules externes
et les interconnecter de manière structurelle. Par exemple, la vision
hiérarchique d’un additionneur consiste à traiter les blocs, l’additionneur et le
registre, comme assemblage d’objets plus élémentaires.
Entité :
L’entité décrit la vue externe du modèle : elle permet de définir les ports
par où sont véhiculés les informations (signaux) et les paramètres génériques.
Le code suivant donne un exemple d’entité définie pour un compteur N bits. Il
est possible de définir des valeurs par défaut pour les paramètres ; dans cet
5
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
entity compteur is
generic (WDTH : integer :=4; STOP : integer :=10);
port( CLK : in std_logic ;
CE : in std_logic ;
CLEAR : in std_logic;
CEO : out std_logic;
DOUT : out std_logic_vector(WDTH -1 downto 0));
end compteur;
Architecture
L’architecture définit la vue interne du modèle. Cette description peut
être de type structurel, flot de données, comportemental ou une combinaison
des trois. Tous les fonctionnements ne nécessitent pas le même degré de
précision : tantôt une description globale permet d’obtenir un résultat
satisfaisant, tantôt une description très précise s’avère nécessaire.
A chaque entité peut être associée une ou plusieurs architectures, mais, au
moment de l’exécution (simulation ou synthèse), une seule architecture est
utilisée. Ceci présente l’intérêt de comparer plusieurs architectures pour choisir
la meilleure. L’architecture comprend aussi une partie déclarative où peuvent
figurer un certain nombre de déclarations (de signaux, de composants, etc.)
internes à l’architecture. A titre d’exemple, le code suivant donne une
description possible d’architecture associée à l’entité décrite précédemment
pour un compteur N bits.
architecture a1 of compteur is
signal INT_DOUT : std_logic_vector(DOUT'range) ;
begin
process(CLK, CLEAR) begin
if (CLEAR='1') then
INT_DOUT <= (others => '0');
elsif (CLK'event and CLK='1') then
if (CE='1') then
if (INT_DOUT=STOP-1) then
INT_DOUT <= (others => '0');
else
INT_DOUT <= (INT_DOUT + 1);
end if;
end if;
6
Cours Spécialité : Informatique Industrielle Niveau : Master2
Module : FPGA et programmation VHDL
end if;
end process;
CEO <= INT_DOUT(0) and not INT_DOUT(1) and not INT_DOUT(2) and
INT_DOUT(3) and CE;
dout <= int_dout;
end;