[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] What's wrong here?



Hello,

The variable H and L can't be used to calculate the size of B, more they 
are unnecessary.

When you call the function inv_word with a vector, the A'HIGH and the 
A'LOW aren't referred to the real size of the vecteur, but the part 
connected.

The good version is more like :

function inv_word (A : in std_ulogic_vector) return std_ulogic_vector is
    variable B : std_ulogic_vector ( A'HIGH downto 0);
begin
     for i in 0 to B'HIGH loop
            B(i)=A(A'HIGH-i);
     end loop;
end inv_word;

or

function inv_word (A : in std_ulogic_vector) return std_ulogic_vector is
    variable B : std_ulogic_vector ( A'LENGHT-1 downto 0);
begin
     for i in 0 to B'LENGHT-1 loop
            B(i)=A(A'LENGHT-1-i);
     end loop;
end inv_word;

Or any combinaison of both.


Michael Riepe wrote:

>Ok... can anybody tell me what's wrong with this function?
>
>	function inv_word(A : in std_ulogic_vector) return std_ulogic_vector is
>		variable L : natural := A'low;
>		variable H : natural := A'high;
>		variable B : std_ulogic_vector(H downto L);
>	begin
>		for i in L to H loop
>			B(i) := A(H+L-i);
>		end loop;
>		return B;
>	end function;
>
>Hint: consider the possible index ranges of the argument.
>
Just an Illusion

-- 
______________________________
"The matrix is my world, I am a shadow.
Shadow in world, shadow in life. Don't try to keep me,
I am a Corpo's Killer.
Don't follow me or die..."
		The KingWalker - 1996



*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/