3

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

4

1 に答える 1