library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
use ieee.numeric_std.all;
|
|
|
|
|
|
|
|
package UtilsP is
|
|
|
|
|
|
function and_reduce (data : in std_logic_vector) return std_logic;
|
|
function and_reduce (data : in boolean_vector) return boolean;
|
|
|
|
function or_reduce (data : in std_logic_vector) return std_logic;
|
|
function or_reduce (data : in boolean_vector) return boolean;
|
|
|
|
function even_parity (data : in std_logic_vector) return std_logic;
|
|
function odd_parity (data : in std_logic_vector) return std_logic;
|
|
|
|
|
|
end package UtilsP;
|
|
|
|
|
|
|
|
package body UtilsP is
|
|
|
|
|
|
function and_reduce (data : in std_logic_vector) return std_logic is
|
|
begin
|
|
for i in data'range loop
|
|
if data(i) = '0' then
|
|
return '0';
|
|
end if;
|
|
end loop;
|
|
return '1';
|
|
end function and_reduce;
|
|
|
|
function and_reduce (data : in boolean_vector) return boolean is
|
|
begin
|
|
for i in data'range loop
|
|
if (not(data(i))) then
|
|
return false;
|
|
end if;
|
|
end loop;
|
|
return true;
|
|
end function and_reduce;
|
|
|
|
|
|
function or_reduce (data : in std_logic_vector) return std_logic is
|
|
begin
|
|
for i in data'range loop
|
|
if data(i) = '1' then
|
|
return '1';
|
|
end if;
|
|
end loop;
|
|
return '0';
|
|
end function or_reduce;
|
|
|
|
function or_reduce (data : in boolean_vector) return boolean is
|
|
begin
|
|
for i in data'range loop
|
|
if data(i) then
|
|
return true;
|
|
end if;
|
|
end loop;
|
|
return false;
|
|
end function or_reduce;
|
|
|
|
|
|
function even_parity (data : in std_logic_vector) return std_logic is
|
|
variable v_return : std_logic := '0';
|
|
begin
|
|
for i in data'range loop
|
|
v_return := v_return xor data(i);
|
|
end loop;
|
|
return v_return;
|
|
end function even_parity;
|
|
|
|
function odd_parity (data : in std_logic_vector) return std_logic is
|
|
variable v_return : std_logic := '1';
|
|
begin
|
|
for i in data'range loop
|
|
v_return := v_return xor data(i);
|
|
end loop;
|
|
return v_return;
|
|
end function odd_parity;
|
|
|
|
|
|
end package body UtilsP;
|