entity
decalage is
port(hor,entre : in
bit;
sort : out
bit_vector (7 downto 0)) ;
end decalage;
architecture registre of
decalage is
signal vecteur : bit vector (
7 downto 0) ;
-- définition de la fonction,
-- ici dans l'architecture
function decale (e: in
bit; v in bit_vector) return
bit_vector is
variable s : bit_vector(v'left downto
0) ;
begin
for i in
1 to v'left loop
s(i-1) := v(i);
end loop ;
-- ou, sans mettre de boucle :
-- s(v'left-1 downto 0) := v(v'left downto 1);
s(v'left) := e;
return s;
end decale;
-- fin de la fonction
begin
sort <= vecteur;
process
begin
wait until hor = '1';
vecteur <= decale (entree, vecteur);
end process ;
end registre ;