-- 例. 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 ;