Autres Elements du Langage
Autres Elements du Langage
Les Variables
Pour certains (rares) cas, une affectation immédiate peut être nécessaire.
On utilise alors le concept de variable dans les process.
Si l’on sait qu’un signal est vecteur d’information (un fil), une variable n’a pas de réalité physique immédiate, le compilateur interprêtera le code pour générer un composant.
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.numeric_std.all;
entity decodeur is
port( E : in std_logic_vector(3 downto 0);
S : out std_logic_vector(2 downto 0);
end decodeur;
architecture arch_dec of decodeur is
begin
process(E) -- process combinatoire
variable resultat : unsigned (2 downto 0) -- zone de déclaration du process
begin
for i in 0 to 3 loop
if E(i)='1' then resultat := resultat + 1 ; end if;
-- l'affectation d'une variable étant immédiate,
-- resultat va bien s'incrémenter plusieurs fois
end loop;
S <= std_logic_vector(resultat); -- la variable n'existe que dans le process
end process;
end arch_dec;
La Généricité
On considère un composant instancié plusieurs fois dans une architecture mais dont un paramètre (généralement une taille de vecteur) est susceptible de changer. On définit alors un paramètre générique.
Un paramètre générique correspond en quelques sortes à un #define en C
|
|