1
4ビットアップ/ダウンモジュロ10カウンタを作成しようとしています。 Button1 - カウントアップ、Button2 - カウントダウン。私はrising_edgeコマンドを使用してそれをしようとしているが、私はボタンで押されたと定義することはできません2つの信号。ですから、プログラムの次のバージョンではif文を使ってボタンを検出したいと思います。VHDL:2つのボタンを持つアップ/ダウンカウンタ
library IEEE;
use IEEE.std_logic_1164.all, IEEE.numeric_std.all;
ENTITY counter is
generic (n:natural :=4);
port(
button1: in std_logic;
button2: in std_logic;
clear: in std_logic;
C : out std_logic;
OUT1 : out std_logic_vector(n-1 downto 0)
);
END counter;
ARCHITECTURE beh of counter is
begin
p0:process (button1, clear) is
variable count: unsigned (n-1 downto 0);
begin
if clear = '1' then
count:= (others=>'0');
elsif button1='1' then
count:=count+1;
elsif count=10 then
count:=(others=>'0');
C<='1';
else C<='0';
end if;
if button2='1' then
count:=count-1;
if count=0 then
count:=(others=>'1');
C<='1';
else C<='0';
end if;
end if;
OUT1<=std_logic_vector(count);
end process p0;
end architecture beh;
Quartusプログラムはエラーなしでコンパイルされますが、シミュレーションでは機能しません。 私は助けに非常に素晴らしいだろう。あなたは同様に、クロック信号とbutton2を信号sensitivyあなたのプロセスに入れなければならない。この後
clock : in std_ulogic;
::)
は、あなたのセンシティビティリストに 'button2'を追加してみてください。 – Maria
これをプログラムし、FPGAに取り込もうとしていますか?そうであれば、あなたはあなたが必要とするところから遠く離れています。 –
私はFPGA開発キットを持っていないので、今はシミュレーションを実行したいと思います。私は感度リストにbutton2を追加しましたが、シミュレーションはまだ動作しません。 – bastik