Detail fonction sshrn

Fermé
slyon - 14 oct. 2010 à 15:48
Bonjour,
j'ai recuperer un programme dans lequel est utilisé une fonction intitulée "sshrn"
Elle est declarer comme suit:

function sshrn (s:signed; n:integer) return signed is
variable r : signed(s'high downto s'low);
begin
if (n = 0) then
r:=s;
else
r:= (others =>s(s'high));
for i in s'high downto 0 loop
r(i-n) :=s(i);
if(i=n) then
exit;
end if;
end loop;
end if;
return r;
end sshrn;

et est utilisée ainsi:
Dynamic_Cos_Gain_tmp1 <= sshrn(Dynamic_Cos_Gain_tmp1,4);

ce que je ne parviens pas à comprendre c'est si elle decale les bits de Dynamic_Cos_Gain_tmp1 vers la droite ou si 4 bits de cette cette variable sont remplacées et par quoi.
merci d'avance