我有一个用VHDL编码的FPGA。我希望系统在所有运算放大器通电之前以已知状态启动。我的尝试是在按下按钮时设置一个值。收到此值后,代码将继续。我认为定义标志时,初始值“ 1000”将被忽略,FPGA很可能从全零开始。按键时,将设置“ flag”的新值。然后,我希望测试LED闪烁。我试过了,没有任何反应。如果我替换
if (flag = "10011") then
与
if (KEY_N(0) = '1') then
有效。
如下所示,我在代码中缺少什么?
我也将“ if”对放在计时部分内,但没有成功。
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