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