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;
ホーム
もどる
辞書