72 lines
3.3 KiB
VHDL
72 lines
3.3 KiB
VHDL
----------------------------------------------------------------------------------
|
|
-- Company: INSA-Toulouse
|
|
-- Engineer: Paul Faure
|
|
--
|
|
-- Create Date: 02.07.2021 10:43:18
|
|
-- Module Name: KeyboardToASCII - Behavioral
|
|
-- Project Name: Processeur sécurisé
|
|
-- Target Devices: Basys 3 ARTIX7
|
|
-- Tool Versions: Vivado 2016.4
|
|
--
|
|
-- Description: Associe le code ASCII au keycode de la touche
|
|
--
|
|
-- Dependencies: None
|
|
--
|
|
-- Comments : Assynchrone
|
|
----------------------------------------------------------------------------------
|
|
|
|
|
|
library IEEE;
|
|
use IEEE.STD_LOGIC_1164.ALL;
|
|
|
|
entity KeyboardToASCII is
|
|
Port ( KeyCode : in STD_LOGIC_VECTOR (0 to 7);
|
|
CodeASCII : out STD_LOGIC_VECTOR (0 to 6));
|
|
end KeyboardToASCII;
|
|
|
|
architecture Behavioral of KeyboardToASCII is
|
|
|
|
begin
|
|
|
|
CodeASCII <= "0000000" when (KeyCode = x"05") else -- F1 -> flush
|
|
"0001010" when (KeyCode = x"5a") else -- Enter
|
|
"1111111" when (KeyCode = x"66") else -- Del
|
|
"1000001" when (KeyCode = x"15") else -- A
|
|
"1000010" when (KeyCode = x"32") else -- B
|
|
"1000011" when (KeyCode = x"21") else -- C
|
|
"1000100" when (KeyCode = x"23") else -- D
|
|
"1000101" when (KeyCode = x"24") else -- E
|
|
"1000110" when (KeyCode = x"2b") else -- F
|
|
"1000111" when (KeyCode = x"34") else -- G
|
|
"1001000" when (KeyCode = x"33") else -- H
|
|
"1001001" when (KeyCode = x"43") else -- I
|
|
"1001010" when (KeyCode = x"3b") else -- J
|
|
"1001011" when (KeyCode = x"42") else -- K
|
|
"1001100" when (KeyCode = x"4b") else -- L
|
|
"1001101" when (KeyCode = x"4c") else -- M
|
|
"1001110" when (KeyCode = x"31") else -- N
|
|
"1001111" when (KeyCode = x"44") else -- O
|
|
"1010000" when (KeyCode = x"4d") else -- P
|
|
"1010001" when (KeyCode = x"1c") else -- Q
|
|
"1010010" when (KeyCode = x"2d") else -- R
|
|
"1010011" when (KeyCode = x"1b") else -- S
|
|
"1010100" when (KeyCode = x"2c") else -- T
|
|
"1010101" when (KeyCode = x"3c") else -- U
|
|
"1010110" when (KeyCode = x"2a") else -- V
|
|
"1010111" when (KeyCode = x"1a") else -- W
|
|
"1011000" when (KeyCode = x"22") else -- X
|
|
"1011001" when (KeyCode = x"35") else -- Y
|
|
"1011010" when (KeyCode = x"1d") else -- Z
|
|
"0110000" when (KeyCode = x"70") else -- 0
|
|
"0110001" when (KeyCode = x"69") else -- 1
|
|
"0110010" when (KeyCode = x"72") else -- 2
|
|
"0110011" when (KeyCode = x"7a") else -- 3
|
|
"0110100" when (KeyCode = x"6b") else -- 4
|
|
"0110101" when (KeyCode = x"73") else -- 5
|
|
"0110110" when (KeyCode = x"74") else -- 6
|
|
"0110111" when (KeyCode = x"6c") else -- 7
|
|
"0111000" when (KeyCode = x"75") else -- 8
|
|
"0111001" when (KeyCode = x"7d") else -- 9
|
|
"0000001"; -- Rien
|
|
|
|
end Behavioral;
|