process( センシティビティリスト ) begin 順次処理文 end;
順次処理において同一信号へ別々の値
が2回以上代入される場合
process( A ) begin ... tmp <= A and "0101"; -- 式1 ... tmp <= A and "1010"; -- 式2 ... end process;
process(din) begin case din is when "0000" => tmp <= "11111100"; when "0001" => tmp <= "01100000"; ... when "1110" => tmp <= "10011110"; when "1111" => tmp <= "10001110"; when others => tmp <= "00000000"; -- 残り全部 end case; end process;
プロセス文による組合せ回路の例 ( if then elsif end if を使用した例 )
process(din) begin if din = "0000" then tmp <= "11111100"; elsif din = "0001" then tmp <= "01100000"; ... elsif din = "1111" then tmp <= "10001110"; else tmp <= "00000000"; -- 残り全部 end if; end process;
プロセス文による順序回路の例 ( 立上りエッジのD-FlipFlop )
process( clock ) begin if clock'event clock = '1' then Q <= D; end if; end process;