メインコンポーネントにプロセスaがあり、他のサブコンポーネント(メインコンポーネントに実装されている)にプロセスbがあります。プロセスaとbはどちらも、感度リストにクロックのみが含まれています。readyと呼ばれる制御可能な信号を処理します。1つのプロセスbが機能する場合、0のプロセスbは何もしません。問題はプロセスaにあり、プロセスがイネーブル信号の値を0に変更すると、変更するために次のクロックサイクルにかかる必要があるため、プロセスbは終了し、余分なクロックサイクルを実行します。
a:process(clk)
begin
if(rising_edge(clk)) then
if(output/=old_output) then
enable<='0';
end if;
end if;
end process;
b:process(clk)
begin
if(rising_edge(clk)) then
if(enable='1') then
--do anything
end if;
end if;
end process;