Я хочу сделать простой код VHDL, который задерживает 20 секунд, прежде чем светодиод будет включен. Я использовал счетчик сигналов, чтобы сделать задержку в 20 секунд, но я заметил очень странную вещь, если я не заявляю, что светодиод выключен до задержки, светодиод всегда будет включен.VHDL Задержка перед включением освещения
взгляд на двух кодов (часы является 50МГц):
в этом коде светодиод всегда включен.
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;
В этом коде светодиод включен только через 20 секунд.
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;
Если этот код работает в симуляции, симулятор сломан. Он никогда не может включить светодиод. –