У меня есть ПЛИС, которую я кодирую с помощью VHDL. Я хочу, чтобы система запускалась в известном состоянии, пока все операционные усилители не будут включены. Моя попытка установить значение при нажатии кнопки. Когда это значение получено, код продолжается. Я думаю, что когда флаг установлен, это начальное значение «1000» игнорируется, и FPGA, скорее всего, начинается со всех нулей. При нажатии клавиши устанавливается новое значение «флаг». Затем я ожидаю, что тестовый светодиод будет мигать. Я попробовал это, и ничего не происходит. Если я заменю
if (flag = "10011") then
с
if (KEY_N(0) = '1') then
это работает.
Что мне не хватает в коде, как показано ниже?
Я также поместил пару «если» в синхронизированную секцию, но безуспешно.
signal flag : std_logic_vector(4 downto 0):= "10000";
DATA: process(CLK, KEY_N(0)) --
begin
if KEY_N(0) = '1' then
flag <= "10011";
end if;
if KEY_N(0) = '0' then
flag <= "00100";
end if;
if (rising_edge(CLK)) then
clk_cntr <= clk_cntr + 1;
if (flag = "10011") then
OTHER_CNTR <= OTHER_CNTR + 1;
END IF;
END IF;
END PROCESS;
GPIO_LEDTEST(2) <= OTHER_CNTR(22); --LED SHOULD BLINK