Advertisement
Guest User

Untitled

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