Ich versuche, einen 4-Bit-up/down-Modulo10-Zähler zu machen. Button1 - zählt hoch, Button2 - zählt runter. Ich versuche es mit dem Befehl rising_edge zu tun, aber für zwei Signale, die ich nicht definieren kann, wurde eine Taste gedrückt. Also in der nächsten Version des Programms möchte ich Knopf mit if-Anweisung erkennen.VHDL: Vor-/Rückwärtszähler mit zwei Tasten
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;
In Quartus Programm wird ohne Fehler kompiliert, aber in der Simulation funktioniert nicht. Ich wäre sehr dankbar für Hilfe. :)
Versuchen 'Hinzufügen in Ihrer Empfindlichkeit Liste button2'. – Maria
Wollen Sie damit programmieren und FPGA? Wenn ja, dann sind Sie weit weg von wo Sie sein müssen. –
Ich habe kein FPGA-Entwicklungskit, also möchte ich für jetzt Simulationen durchführen. Ich habe Button2 zur Empfindlichkeitsliste hinzugefügt, aber die Simulation funktioniert immer noch nicht. – bastik