プロセス間の通信に問題があります。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、たとえば Proc_B をトリガーして、1 回または複数回実行することだけです。この問題のベストプラクティスは何ですか? ありがとう!