pp.52-53
前回のDFFに同期ロード機能(enable機能)を追加する。基本ゲートだけで組み上げるので結局process
文は使わない。
load
が1
のときは入力d
がそのままdffのd端子へ供給される(すなわち出力が同期更新される。すなわち普通のdffとして働く)。load
が0
のときは出力q
がdffのd端子へ供給される(すなわち今の値が保持され続ける)。
library ieee; use ieee.std_logic_1164.all; entity register_1_bit is port ( clk, load, d: in std_logic; q: out std_logic ); end entity; architecture behavior of register_1_bit is signal temp_d, temp_q: std_logic; begin u0: entity work.mux port map ( a => temp_q, b => d, sel => load, outp => temp_d ); u1: entity work.d_ff port map ( clk => clk, d => temp_d, q => temp_q ); q <= temp_q; -- process(clk, load) -- begin -- if rising_edge(clk) then -- if load='1' then -- 同期ロード -- q <= d; -- end if; -- end if; -- end process; end architecture;