У меня проблемы с общением между процессами. Раньше я использовал flag и clearFlag для решения этой проблемы, но это немного раздражает и выглядит не очень хорошо. Как лучше всего справиться с этим? Вот пример кода того, как я это делал раньше:
Proc_A : process (clk, reset, clrFlag)
begin
if clrFlag = '1' then
flag <='0';
elsif reset = '0' then
A <= (others => '0');
elsif rising_edge (clk) then
A <= in;
flag <= '1';
end if;
end process;
Proc_B : process (clk, reset)
begin
if reset = '0' then
B <= (others => '0');
elsif rising_edge (clk) then
if flag = '1' then
B <= data;
clrFlag <= '1';
else
clrFlag <= '0';
end if;
end if;
end process;
Этот способ работает, но я не думаю, что это хороший метод. Я должен написать пару флагов и clrFlag, чтобы выполнить эту задачу. Все, что я хочу сделать, это когда что-то произошло (например, A ‹= in;), оно запускает другой процесс, например Proc_B, для запуска один или несколько раз. Какова наилучшая практика решения этой проблемы? Спасибо!