Список параметров процедуры определяет ее входы и выходы, как мини-модуль.Это может быть сигнал или константа, но, в отличие от модуля, он также может быть переменной.Подробнее Как использовать процедуру в VHDL
Основной синтаксис для создания процедуры:
procedure <procedure_name> (signal|variable|constant <name1> : in|out|inout <type>;
signal|variable|constant <name2> : in|out|inout <type>;
... ) is
<signal_constant_or_variable_declarations_for_use_within_the_procedure>
begin
<code_performed_by_the_procedure_here>
end procedure;
Для вашего примера
procedure triplet_check (constant DATA_IN : in std_logic_vector(59 downto 0);
variable triplet_check_vec : out std_logic_vector(19 downto 0)) is
begin
for k in 0 to 19 loop
triplet_check_vec(k) <= (DATA_IN(3*k+0) and DATA_IN(3*k+1) and DATA_IN(3*k+2)) or (not(DATA_IN(3*k+0)) and not(DATA_IN(3*k+1)) and not(DATA_IN(3*k+2)));
end loop;
end triplet_check;