FPGAでカウンターをちゃんと作る

帰宅しました。
VHDL実習を再開します。


というわけで、朝上手く動かなかったカウンターですが、
D(ボタン1)が立ち上がったときだけカウントすればOKでした。
クロック要らないっす。

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity test is
	port
	(
		CLK : in std_logic;
		RESET : in std_logic;
		D : in std_logic;
		Q : out std_logic;
		Q_4 : out std_logic_vector(3 downto 0)
	);
end test;

architecture test_Body of test is
signal DBUF_4: std_logic_vector(3 downto 0);
begin
  process(D,RESET)
  begin

     if D'event and D = '1' then
       DBUF_4 <= DBUF_4 + 1;
     end if;

    if RESET = '0' then
	  DBUF_4 <= "0000";
	end if;

  end process;
  Q_4 <= not DBUF_4;
end test_Body;

LEDは1の時消灯らしいので、否定してQ_4に代入してます。
1111の時にボタン1を押すと0000に戻る。キャリーとかはどうなってるんだろうか?
入力が4ビットだけど、出力を5ビットにしておけば桁上がりも入るらしい
http://www.ie.u-ryukyu.ac.jp/~wada/cad06/adder4.html