shaiko
Advanced Member level 5
Hello,
What do you think of the following functions:
function binary_to_gray(x: unsigned) return unsigned is
variable binary_vector: unsigned(x'length - 1 downto 0) := x;
variable gray_vector: unsigned(x'length - 1 downto 0) := (others => '0');
begin
gray_vector(x'length - 1) := binary_vector(x'length - 1);
for i in (x'length - 2) downto 0 loop
gray_vector(i) := binary_vector(i + 1) xor binary_vector(i);
end loop;
return gray_vector;
end binary_to_gray;
function gray_to_binary(x: unsigned) return unsigned is
variable gray_vector: unsigned(x'length - 1 downto 0) := x;
variable binary_vector: unsigned(x'length - 1 downto 0) := (others => '0');
begin
binary_vector(x'length - 1) := gray_vector(x'length - 1);
for i in (x'length - 2) downto 1 loop
binary_vector(i) := binary_vector(i + 1) xor gray_vector(i);
end loop;
return binary_vector;
end gray_to_binary;
What do you think of the following functions:
function binary_to_gray(x: unsigned) return unsigned is
variable binary_vector: unsigned(x'length - 1 downto 0) := x;
variable gray_vector: unsigned(x'length - 1 downto 0) := (others => '0');
begin
gray_vector(x'length - 1) := binary_vector(x'length - 1);
for i in (x'length - 2) downto 0 loop
gray_vector(i) := binary_vector(i + 1) xor binary_vector(i);
end loop;
return gray_vector;
end binary_to_gray;
function gray_to_binary(x: unsigned) return unsigned is
variable gray_vector: unsigned(x'length - 1 downto 0) := x;
variable binary_vector: unsigned(x'length - 1 downto 0) := (others => '0');
begin
binary_vector(x'length - 1) := gray_vector(x'length - 1);
for i in (x'length - 2) downto 1 loop
binary_vector(i) := binary_vector(i + 1) xor gray_vector(i);
end loop;
return binary_vector;
end gray_to_binary;