-- 例. Dフリップフロップ -- ENTITY宣言部のLIBRARY宣言 LIBRARY IEEE, ARITHMETIC ; USE IEEE.STD_LOGIC_1164.ALL ; USE ARITHMETIC.STD_LOGIC_ARITH.ALL ; ENTITY dff IS -- ENTITY名は、「dff」 PORT ( d : IN STD_LOGIC ; -- 入力信号 clk : IN STD_LOGIC ; -- クロック信号 clear : IN STD_LOGIC ; -- クリア信号(非同期) q : OUT STD_LOGIC ; -- 出力信号 qb : OUT STD_LOGIC -- 出力信号 ) ; END dff ; -- ARCHITECTURE本体部のLIBRARY宣言 LIBRARY IEEE, ARITHMETIC ; USE IEEE.STD_LOGIC_1164.ALL ; USE ARITHMETIC.STD_LOGIC_ARITH.ALL ; ARCHITECTURE behave OF dff IS -- ARCHITECTURE名は、「behave」 -- ENTITY名は、「dff」 SIGNAL q_i : STD_LOGIC ; -- 内部信号 BEGIN -- 同時実行文 〜 ここから 〜 qb <= NOT q_i ; q <= q_i ; -- プロセス文 〜 ここから 〜 dff_load : PROCESS ( clk , clear ) BEGIN IF (clear= '1') THEN -- 非同期クリアが入力されると出力は「0」 q_i <= '0' ; ELSIF (clk='1' AND clk'LAST_VALUE='0' AND clk'EVENT) THEN q_i <= d ; -- クロックに同期してデータを取り込む END IF; END PROCESS dff_load ; -- プロセス文 〜 ここまで 〜 -- 同時実行文 〜 ここまで 〜 END behave ;