-- Decode binary input to seven segment -- Library Declaration library ieee; use ieee.std_logic_1164.all; -- input: A binary number which has the range from "0000" to "1001, -- i.e. 0 to 9. -- led: 7-bit output for the 7-bit LED segment. entity decoder is port ( input: in std_logic_vector(3 downto 0); led: out std_logic_vector(6 downto 0) ); end decoder; architecture behaviour of decoder is begin decode : process(input) begin if input = "0000" then led(6) <= '0'; led(5) <= '0'; led(4) <= '0'; led(3) <= '0'; led(2) <= '0'; led(1) <= '0'; led(0) <= '1'; elsif input = "0001" then led(6) <= '1'; led(5) <= '0'; led(4) <= '0'; led(3) <= '1'; led(2) <= '1'; led(1) <= '1'; led(0) <= '1'; elsif input = "0010" then led(6) <= '0'; led(5) <= '0'; led(4) <= '1'; led(3) <= '0'; led(2) <= '0'; led(1) <= '1'; led(0) <= '0'; elsif input = "0011" then led(6) <= '0'; led(5) <= '0'; led(4) <= '0'; led(3) <= '0'; led(2) <= '1'; led(1) <= '1'; led(0) <= '0'; elsif input = "0100" then led(6) <= '1'; led(5) <= '0'; led(4) <= '0'; led(3) <= '1'; led(2) <= '1'; led(1) <= '0'; led(0) <= '0'; elsif input = "0101" then led(6) <= '0'; led(5) <= '1'; led(4) <= '0'; led(3) <= '0'; led(2) <= '1'; led(1) <= '0'; led(0) <= '0'; elsif input = "0110" then led(6) <= '1'; led(5) <= '1'; led(4) <= '0'; led(3) <= '0'; led(2) <= '0'; led(1) <= '0'; led(0) <= '0'; elsif input = "0111" then led(6) <= '0'; led(5) <= '0'; led(4) <= '0'; led(3) <= '1'; led(2) <= '1'; led(1) <= '1'; led(0) <= '1'; elsif input = "1000" then led(6) <= '0'; led(5) <= '0'; led(4) <= '0'; led(3) <= '0'; led(2) <= '0'; led(1) <= '0'; led(0) <= '0'; elsif input = "1001" then led(6) <= '0'; led(5) <= '0'; led(4) <= '0'; led(3) <= '1'; led(2) <= '1'; led(1) <= '0'; led(0) <= '0'; end if; end process decode; end behaviour;