Quartus throw error in done_ps2'event and done_ps2 = '1'.
process(clk, rst)
begin
if( rst = '0') then
Present_State <= Read_but;
elsif( rising_edge(clk) ) then
Present_State <= Next_State;
end if;
end process;
process(Present_State, key1, key2, key3, done_ps2)
begin
case Present_State is
when Read_but =>
code_choice <= "01";
if(key1 = '1') then
code_temp <= PushF5;
Next_State <= Push;
elsif(key2 = '1') then
code_temp <= PushLeft;
Next_State <= Push;
elsif(key3 = '1') then
code_temp <= PushRight;
Next_State <= Push;
else
Next_State <= Read_but;
end if;
when Push =>
start_ps2 <= '1';
if (done_ps2'event and done_ps2 = '1') then
start_ps2 <= '0';
Next_State <= Break;
code_choice <= "10";
end if;
when Break =>
start_ps2 <= '1';
if (done_ps2'event and done_ps2 = '1') then
start_ps2 <= '0';
Next_State <= Release;
code_choice <= "01";
end if;
when Release =>
start_ps2 <= '1';
if (done_ps2'event and done_ps2 = '1') then
start_ps2 <= '0';
Next_State <= Read_but;
end if;
end case;
end process;