プロセス文でポジティブエッジトリガー型Dフリップフロップを作る

pp.120-121
今度はプロセス文で順序回路Dフリップフロップを作ってみる。

library IEEE;
use IEEE.std_logic_1164.all;

entity d_ff is
    port(
        CLK, D : in  std_logic;
        Q      : out std_logic
    );
end d_ff;


architecture RTL of d_ff is
begin
    process(CLK) -- CLKの変化したときにbegin以下が実行される。
    begin
        
       -- =は代入ではなく等号。
       -- 1ビットは' 'でくくり、複数ビットは" "でくくる。
       -- 意味は「CLKが変化し、かつCLKが1の場合」。つまりrising edge。
       -- CLKのrising edgeのタイミングで入力Dが出力Qに反映される。
        if(CLK'event and CLK = '1') then
            Q <= D;
        end if; 
        
    end process;
end RTL;

f:id:ti-nspire:20201223085127j:plain:h300 f:id:ti-nspire:20201223085056p:plain:h300