-- 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 ; -- D入力
        clock  : IN   STD_LOGIC ; -- クロック信号
        clear  : IN   STD_LOGIC ; -- クリア信号
        preset : IN   STD_LOGIC ; -- プリセット信号
        q      : OUT  STD_LOGIC ; -- 出力信号
        qb     : OUT  STD_LOGIC   -- qの反転出力
        ) ;
 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 l1,l2,l3,l4,lq,lqb : STD_LOGIC ;
 BEGIN
  -- 同時実行文 〜 ここから 〜
  l1 <=  NOT ( preset  AND  l4     AND  l2    )  AFTER 5 NS ;
  l2 <=  NOT ( l1      AND  clear  AND  clock )  AFTER 5 NS ;
  l3 <=  NOT ( l2      AND  clock  AND  l4    )  AFTER 5 NS ;
  l4 <=  NOT ( l3      AND  clear  AND  d     )  AFTER 5 NS ;
  lq  <= NOT ( preset  AND  l2     AND  lqb   )  AFTER 5 NS ;
  lqb <= NOT ( lq      AND  clear  AND  l3    )  AFTER 5 NS ;
  q <= lq ;
  qb <= lqb ;
  -- 同時実行文 〜 ここまで 〜
 END   behave ;