我正在为 spartan 3E 入门套件编写一个乒乓球游戏 vhdl 代码。我想用我的 PS2 键盘控制游戏手柄。为此,我需要从键盘接收到的扫描码生成向上和向下信号。
这是示例代码
-- Instantiate key_board controller
my_keyobard : entity work.ps2_key(Behavioral)
port map( ps2_clk => ps2_clk, ps2_data => ps2_data, clk => clk,
data_out => data);
process(data)
begin
case data is
when X"15" => up <= '1'; -- Q key for UP
when X"1C' => down <= '1'; -- A key for DOWN
when others => up <= '0'; down <= '0';
end case;
end process;
但是,如果我使用此代码,即使在键盘上释放 Q 键之后,向上键也将始终保持“1”高电平。我希望向上信号保持高电平,直到我按住 Q 按钮,如果我松开它,向上信号必须返回到“0”。基本上我希望我的键盘按键能够像普通按钮一样工作。如果我按住它必须给出高信号,否则如果松开它必须给出低信号。