Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- LIBRARY ieee;
- USE ieee.std_logic_1164.all;
- ENTITY KEYBOARD_TO_CHAR_ROM IS
- port (
- clk : IN STD_LOGIC;
- ps2_in : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
- char_in : IN STD_LOGIC;
- code_out : OUT STD_LOGIC_VECTOR(5 DOWNTO 0) := B"000000";
- char_read : OUT STD_LOGIC := '0'
- );
- END KEYBOARD_TO_CHAR_ROM;
- ARCHITECTURE behavior OF KEYBOARD_TO_CHAR_ROM IS
- --SIGNAL old_code: STD_LOGIC_VECTOR(7 DOWNTO 0);
- SIGNAL aux: STD_LOGIC;
- BEGIN
- keyboard: PROCESS (clk) IS
- BEGIN
- IF(rising_edge(clk) and clk = '1') THEN
- IF(char_in = '1') THEN
- --IF(old_code /= ps2_in) THEN
- CASE ps2_in IS
- WHEN x"1F" => code_out <= O"00"; --^@ NUL
- WHEN x"1C" => code_out <= O"01"; --^A SOH
- WHEN x"32" => code_out <= O"02"; --^B STX
- WHEN x"21" => code_out <= O"03"; --^C ETX
- WHEN x"23" => code_out <= o"04"; --^D EOT
- WHEN x"24" => code_out <= o"05"; --^E ENQ
- WHEN x"2B" => code_out <= o"06"; --^F ACK
- WHEN x"34" => code_out <= o"07"; --^G BEL
- WHEN x"33" => code_out <= o"10"; --^H BS
- WHEN x"43" => code_out <= o"11"; --^I HT
- WHEN x"3B" => code_out <= o"12"; --^J LF
- WHEN x"42" => code_out <= o"13"; --^K VT
- WHEN x"4B" => code_out <= o"14"; --^L FF
- WHEN x"3A" => code_out <= o"15"; --^M CR
- WHEN x"31" => code_out <= o"16"; --^N SO
- WHEN x"44" => code_out <= o"17"; --^O SI
- WHEN x"4D" => code_out <= o"20"; --^P DLE
- WHEN x"15" => code_out <= o"21"; --^Q DC1
- WHEN x"2D" => code_out <= o"22"; --^R DC2
- WHEN x"1B" => code_out <= o"23"; --^S DC3
- WHEN x"2C" => code_out <= o"24"; --^T DC4
- WHEN x"3C" => code_out <= o"25"; --^U NAK
- WHEN x"2A" => code_out <= o"26"; --^V SYN
- WHEN x"1D" => code_out <= o"27"; --^W ETB
- WHEN x"22" => code_out <= o"30"; --^X CAN
- WHEN x"35" => code_out <= o"31"; --^Y EM
- WHEN x"1A" => code_out <= o"32"; --^Z SUB
- --WHEN x"54" => code_out <= o"33"; --^[
- --WHEN x"5D" => code_out <= o"34"; --^SETA_BAIXO
- --WHEN x"5B" => code_out <= o"35"; --^]
- --WHEN x"3F" => code_out <= o"36"; --^SETA_CIMA
- --WHEN x"4E" => code_out <= o"37"; --^SETA_ESQUERDA
- WHEN x"29" => code_out <= o"40"; --^ESPACO
- WHEN x"45" => code_out <= o"60"; --^0
- WHEN x"16" => code_out <= o"61"; --^1
- WHEN x"1E" => code_out <= o"62"; --^2
- WHEN x"26" => code_out <= o"63"; --^3
- WHEN x"25" => code_out <= o"64"; --^4
- WHEN x"2E" => code_out <= o"65"; --^5
- WHEN x"36" => code_out <= o"66"; --^6
- WHEN x"3D" => code_out <= o"67"; --^7
- WHEN x"3E" => code_out <= o"70"; --^8
- WHEN x"46" => code_out <= o"71"; --^9
- WHEN OTHERS => NULL;
- END CASE;
- --old_code <= ps2_in;
- char_read <= '1';
- ELSE
- char_read <= '0';
- END IF;
- END IF;
- END PROCESS;
- END behavior;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement