記事一覧

野球ゲームをつくる ~ 8.イニングの表示

2015年06月03日(水)20時10分

イニングは通常9回で終了ですが、7SegLEDは16進を表現できるので、
15(F)まで表示します。

ining_decoder.vhd

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;

entity INING_DECODER is
    port(
        RESET   : in  std_logic;
        COUNTER : in  std_logic_vector(3 downto 0);
        LED     : out std_logic_vector(7 downto 1)
    );
end INING_DECODER;

architecture RTL of INING_DECODER is
begin

    process (RESET,COUNTER)
    begin
        if (RESET = '0') then
            LED <= "1111111";
        else
            case COUNTER is
                when "0000" => LED <= "0000001"; -- 0
                when "0001" => LED <= "1001111"; -- 1
                when "0010" => LED <= "0010010"; -- 2
                when "0011" => LED <= "0000110"; -- 3
                when "0100" => LED <= "1001100"; -- 4
                when "0101" => LED <= "0100100"; -- 5
                when "0110" => LED <= "0100000"; -- 6
                when "0111" => LED <= "0001101"; -- 7
                when "1000" => LED <= "0000000"; -- 8
                when "1001" => LED <= "0000100"; -- 9
                when "1010" => LED <= "0001000"; -- A
                when "1011" => LED <= "1100000"; -- b
                when "1100" => LED <= "0110001"; -- C
                when "1101" => LED <= "1000010"; -- d
                when "1110" => LED <= "0110000"; -- E
                when "1111" => LED <= "0111000"; -- F
                when others => LED <= "1111110"; -- '-'
            end case;
        end if;
    end process;

end RTL;