00001 --! @file
00002 --! @brief dynadisp_test
00003 --! @class dynadisp_test
00004 --! 7セグメントLEDダイナミック表示テスト回路\n
00005 --! @li 説明を複数書く時には\\nで改行を明示的に書く必要があるようだ。\n
00006 --! @li このヘッダ部分は空行を空けてしまうと解釈が変わってしまうことがあるので、空行はあけないほうが良い\n
00007 --! @author marsee
00008 --! @version 1.0 : はじめのバージョン
00009 --! @date 2008/03/04
00010 --! @version 1.1 : バージョンは複数書くことができる。
00011 --! @date 2008/03/14
00012
00013 --! Use standard library
00014 LIBRARY IEEE;
00015 --! std_logic_1164を使用
00016 USE IEEE.std_logic_1164.all;
00017 --! STD_LOGIC_ARITHを使用
00018 use IEEE.STD_LOGIC_ARITH.ALL;
00019 --! STD_LOGIC_UNSIGNEDを使用
00020 use IEEE.STD_LOGIC_UNSIGNED.ALL;
00021
00022 -- Uncomment the following lines to use the declarations that are
00023 -- provided for instantiating Xilinx primitive components.
00024 --library UNISIM;
00025 --use UNISIM.VComponents.all;
00026
00027 entity dynadisp_test is
00028 Port (
00029 clk : in ; --! マスタクロック
00030 btn : in (3 downto 0); --! ボタンスイッチ
00031 sw : in (7 downto 0); --! スライドスイッチ
00032 A_n : out ; --! 7セグLED エレメントA
00033 B_n : out ; --! 7セグLED エレメントB
00034 C_n : out ; --! 7セグLED エレメントC
00035 D_n : out ; --! 7セグLED エレメントD
00036 E_n : out ; --! 7セグLED エレメントE
00037 F_n : out ; --! 7セグLED エレメントF
00038 G_n : out ; --! 7セグLED エレメントG
00039 DP_n : out ; --! 7セグLED エレメントDP
00040 AN_n : out (3 downto 0) --! 7セグLED 表示イネーブル
00041 );
00042 end dynadisp_test;
00043
00044 --! @brief dynadisp_testのアーキテクチャの定義
00045 --! @details dynadisp_testのトップファイル
00046 architecture RTL of dynadisp_test is
00047 --! リセット信号
00048 signal reset : ;
00049 --! スイッチをラッチする
00050 signal swl : (4 downto 0);
00051 --! vcc 4bits
00052 signal vcc4 : (3 downto 0);
00053 --! 8
00054 signal eight : (3 downto 0);
00055 --! Ssegdisp
00056 --! @param clk [in] マスタクロック
00057 --! @param reset [in] リセット
00058 --! @param dot [in] 7セグメントLEDのドット入力
00059 COMPONENT ssegdisp
00060 PORT(
00061 clk : IN ;
00062 reset : IN ;
00063 dot : IN (3 downto 0);
00064 led_enable : IN (3 downto 0);
00065 binary3 : IN (3 downto 0);
00066 binary2 : IN (3 downto 0);
00067 binary1 : IN (3 downto 0);
00068 binary0 : IN (3 downto 0);
00069 sw : in (4 downto 0);
00070 A_n : OUT ;
00071 B_n : OUT ;
00072 C_n : OUT ;
00073 D_n : OUT ;
00074 E_n : OUT ;
00075 F_n : OUT ;
00076 G_n : OUT ;
00077 DP_n : OUT ;
00078 AN_n : OUT (3 downto 0)
00079 );
00080 END COMPONENT;
00081 begin
00082 reset <= btn(3);
00083 vcc4 <= "1111";
00084 eight <= x"8";
00085
00086 --! @details スイッチ入力をラッチする
00087 LATCHED_SW : process(reset, clk) begin
00088 if reset='1' then
00089 swl <= (others => '0');
00090 elsif clk'event and clk='1' then
00091 swl <= sw(4 downto 0);
00092 end if;
00093 end process LATCHED_SW;
00094
00095 --! @details Ssegdispのインスタンシエーション
00096 Inst_SsegDisp: SsegDisp PORT MAP(
00097 clk => clk ,
00098 reset => reset,
00099 dot => vcc4,
00100 led_enable => vcc4,
00101 binary3 => eight,
00102 binary2 => eight,
00103 binary1 => eight,
00104 binary0 => eight,
00105 sw => swl,
00106 A_n => A_n ,
00107 B_n => B_n ,
00108 C_n => C_n ,
00109 D_n => D_n ,
00110 E_n => E_n ,
00111 F_n => F_n ,
00112 G_n => G_n ,
00113 DP_n => DP_n ,
00114 AN_n => AN_n
00115 );
00116
00117
00118 end RTL;