00001 --! @file
00002 --! @brief b27segdec
00003
00004 -- Binary to 7 segment LED Decoder
00005 -- バイナリデータを7セグメントLED用のデータに変換します。
00006 -- enableを0にすると消灯。
00007 -- 点灯するセグメントを1で表しているが、実際には0で点灯するので上のファイルで反転しています。
00008
00009 --! Use standard library
00010 LIBRARY IEEE;
00011 --! std_logic_1164を使用
00012 USE IEEE.std_logic_1164.all;
00013
00014 --! B24segDecのentity
00015 entity B27segDec is
00016 port(
00017 binary : in (3 downto 0); --! バイナリ入力
00018 enable : in ; --! イネーブル入力
00019 segdecout : out (6 downto 0) --! a,b,c,d,e,f,g segment without dot.
00020 );
00021 end B27segDec;
00022
00023 --! @brief B24segDecのアーキテクチャの定義
00024 --! @details B24segDec
00025 architecture RTL of B27segDec is
00026 begin
00027 --! @details 7SEG LED DECODER
00028 SEVEN_SEG_DECODER : process(binary, enable) begin
00029 if enable='1' then
00030 case binary is
00031 when "0000" => -- 0
00032 segdecout <= "1111110";
00033 when "0001" => -- 1
00034 segdecout <= "0110000";
00035 when "0010" => -- 2
00036 segdecout <= "1101101";
00037 when "0011" => -- 3
00038 segdecout <= "1111001";
00039 when "0100" => -- 4
00040 segdecout <= "0110011";
00041 when "0101" => -- 5
00042 segdecout <= "1011011";
00043 when "0110" => -- 6
00044 segdecout <= "1011111";
00045 when "0111" => -- 7
00046 segdecout <= "1110000";
00047 when "1000" => -- 8
00048 segdecout <= "1111111";
00049 when "1001" => -- 9
00050 segdecout <= "1111011";
00051 when "1010" => -- A
00052 segdecout <= "1110111";
00053 when "1011" => -- B b
00054 segdecout <= "0011111";
00055 when "1100" => -- C
00056 segdecout <= "1001110";
00057 when "1101" => -- D d
00058 segdecout <= "0111101";
00059 when "1110" => -- E
00060 segdecout <= "1001111";
00061 when others => -- F
00062 segdecout <= "1000111";
00063 end case;
00064 else
00065 segdecout <= "0000000";
00066 end if;
00067 end process SEVEN_SEG_DECODER;
00068 end RTL;