Je veux faire un simple code vhdl qui fait un délai de 20 secondes avant qu'un led soit allumé. J'ai utilisé un compteur de signal pour faire le retard des 20 sec, mais j'ai remarqué une chose très étrange, si je ne déclare pas que la led est éteinte avant le délai, la led sera toujours allumée.VHDL Delay avant d'allumer le led
regard sur les deux codes (l'horloge est 50MHz):
dans ce code, le led est toujours allumé.
library ieee;
use ieee.std_logic_1164.all;
entity check is
port(clk : in std_logic;
led : out std_logic);
end check;
architecture arc of check is
signal counter : integer range 0 to 100e6;
begin
process(clk)
begin
if rising_edge(clk) then
if counter<500e6 then
counter<=counter+1;
else
led<='1';
end if;
end if;
end process;
end arc;
Dans ce code, la led est allumée seulement après 20 secondes.
library ieee;
use ieee.std_logic_1164.all;
entity check is
port(clk : in std_logic;
led : out std_logic);
end check;
architecture arc of check is
signal counter : integer range 0 to 100e6;
begin
process(clk)
begin
if rising_edge(clk) then
if counter<500e6 then
counter<=counter+1;
led<='0';
else
led<='1';
end if;
end if;
end process;
end arc;
Si ce code fonctionne en simulation, le simulateur est cassé. Il ne peut jamais allumer la LED. –