------------------------------------------------- ------------------------------------------------- -- EE552 ASL Translator and Handheld keyboard developement VHDL Code -- led_decoder.vhd -- This decorder decodes five bit data from the glove into 8 bit data -- The eight bit data will be used for hex LED display. library ieee; use ieee.std_logic_1164.all; -- The decoder has five inputs from the glove information -- The output is decorded into eight bit data. The data is eight bit -- hex data entity led_decoder is PORT ( --interface in is valid data recieved from the glove interface_in : IN std_logic_vector(4 downto 0); enable: IN std_logic; led_data_out : OUT std_logic_vector(7 downto 0)); end entity led_decoder; architecture behavioral of led_decoder is signal led_data: std_logic_vector(7 downto 0); begin decode: process(interface_in,enable) is begin if enable = '1' then case interface_in is when "00001" => led_data <= "01000001"; when "00010" => led_data <= "01000010"; when "00011" => led_data <= "01000011"; when "00100" => led_data <= "01000100"; when "00101" => led_data <= "01000101"; when "00110" => led_data <= "01000110"; when "00111" => led_data <= "01000111"; when "01000" => led_data <= "01001000"; when "01001" => led_data <= "01001001"; when "01010" => led_data <= "01001010"; when "01011" => led_data <= "01001011"; when "01100" => led_data <= "01001100"; when "01101" => led_data <= "01001101"; when "01110" => led_data <= "01001110"; when "01111" => led_data <= "01001111"; when "10000" => led_data <= "01010000"; when "10001" => led_data <= "01010001"; when "10010" => led_data <= "01010010"; when "10011" => led_data <= "01010011"; when "10100" => led_data <= "01010100"; when "10101" => led_data <= "01010101"; when "10110" => led_data <= "01010110"; when "10111" => led_data <= "01010111"; when "11000" => led_data <= "01011000"; when "11001" => led_data <= "01011001"; when "11010" => led_data <= "01011010"; when "11011" => led_data <= "00100000"; when "11100" => led_data <= "00001000"; when "11101" => led_data <= "00101110"; when "11110" => led_data <= "00101100"; when "11111" => led_data <= "00001101"; when others => led_data <="00000000"; end case; led_data_out <= led_data after 100 ns; end if; end process decode; end behavioral;