1
我在進程之間進行通信時遇到問題。我曾經使用flag和clearFlag來解決這個問題,但它有點煩人,看起來不太好。處理這個問題的最佳做法是什麼?以下是我之前做過的示例代碼:VHDL中進程之間的通信
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運行一次或多次。這個問題的最佳做法是什麼?謝謝!