Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2010
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. library IEEE;
  2. use IEEE.STD_LOGIC_1164.ALL;
  3. use IEEE.STD_LOGIC_ARITH.ALL;
  4. use IEEE.STD_LOGIC_UNSIGNED.ALL;
  5.  
  6. entity KBD_decode is
  7. Port ( clk : in STD_LOGIC;
  8. DataIn : in STD_LOGIC_VECTOR (7 downto 0);
  9. Enable : in STD_LOGIC;
  10. DataOut : out STD_LOGIC_VECTOR (15 downto 0));
  11. end KBD_decode;
  12.  
  13. architecture Behavioral of KBD_decode is
  14.  
  15. signal reg : std_logic_vector (15 downto 0);
  16. signal temp : std_logic_vector(3 downto 0);
  17. signal checkf0 : std_logic_vector(7 downto 0);
  18. signal keyrealase : std_logic;
  19. begin
  20.  
  21. checkf0 <= DataIn when rising_edge(clk) and enable = '1';
  22.  
  23. with DataIn select
  24. temp <= '1' & x"0" when x"45",
  25. '1' & x"1" when x"16",
  26. '1' & x"2" when x"1E",
  27. '1' & x"3" when x"26",
  28. '1' & x"4" when x"25",
  29. '1' & x"5" when x"2E",
  30. '1' & x"6" when x"36",
  31. '1' & x"7" when x"3D",
  32. '1' & x"8" when x"3E",
  33. '1' & x"9" when x"49",
  34. '1' & x"A" when x"1C",
  35. '1' & x"B" when x"32",
  36. '1' & x"C" when x"21",
  37. '1' & x"D" when x"23",
  38. '1' & x"E" when x"24",
  39. '1' & x"F" when x"2B",
  40. '0' & "----" when others;
  41.  
  42. process (clk, Enable,F0,E0,DataIn,reg)
  43. begin
  44. if rising_edge(clk) then
  45. if Enable = '1' then
  46. if checkf0 = x"f0" then
  47. reg <= reg(15 downto 4) & temp;
  48. end if;
  49. end if;
  50. end if;
  51. end process;
  52.  
  53. DataOut <= reg;
  54.  
  55.  
  56.  
  57.  
  58. end Behavioral;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement