⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notetabs.vhd

📁 用VHDL编写的音乐演奏程序
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY NoteTabs IS
    PORT ( clk    : IN STD_LOGIC;
        ToneIndex : OUT INTEGER RANGE 0 TO 31 );
END;
ARCHITECTURE one OF NoteTabs IS
    SIGNAL Counter : INTEGER RANGE 0 TO 199;
BEGIN
    CNT8 : PROCESS(clk)
    BEGIN
        IF Counter = 199 THEN  Counter <= 0;
        ELSIF (clk'EVENT AND clk = '1') THEN
            Counter <= Counter + 1;
        END IF;
    END PROCESS;
    Search : PROCESS(Counter)
    BEGIN
 CASE Counter IS        -- 译码器,查歌曲的乐谱表,查表结果为音调表的索引值
            WHEN 00  => ToneIndex <= 6;     
            WHEN 01  => ToneIndex <= 6;  
            WHEN 02  => ToneIndex <= 6;  

            WHEN 03  => ToneIndex <= 13;
            WHEN 04  => ToneIndex <= 13;
            WHEN 05  => ToneIndex <= 13;       
            WHEN 06  => ToneIndex <= 15;       
            WHEN 07  => ToneIndex <= 15;
            WHEN 08  => ToneIndex <= 15;      
            WHEN 09  => ToneIndex <= 13;
            WHEN 10  => ToneIndex <= 12;
            WHEN 11  => ToneIndex <= 10;
            WHEN 12  => ToneIndex <= 10;
            WHEN 13  => ToneIndex <= 10;
            WHEN 14  => ToneIndex <= 12;
            WHEN 15  => ToneIndex <= 12;

            WHEN 16  => ToneIndex <= 13;
            WHEN 17  => ToneIndex <= 13;
            WHEN 18  => ToneIndex <= 12;
            WHEN 19  => ToneIndex <= 12;
            WHEN 20  => ToneIndex <= 12;
            WHEN 21  => ToneIndex <= 13;
            WHEN 22  => ToneIndex <= 15;
            WHEN 23  => ToneIndex <= 15;

            WHEN 24  => ToneIndex <= 13;
            WHEN 25  => ToneIndex <= 13;
            WHEN 26  => ToneIndex <= 13;
            WHEN 27  => ToneIndex <= 13;
            WHEN 28  => ToneIndex <= 13;
            WHEN 29  => ToneIndex <= 13;
            WHEN 30  => ToneIndex <= 13;


            WHEN 31  => ToneIndex <= 6;
            WHEN 32  => ToneIndex <= 6;
            WHEN 33  => ToneIndex <= 6;

            WHEN 34  => ToneIndex <= 13;
            WHEN 35  => ToneIndex <= 13;    
            WHEN 36  => ToneIndex <= 15;    
            WHEN 37  => ToneIndex <= 15;
            WHEN 38  => ToneIndex <= 15;
            WHEN 39  => ToneIndex <= 13;
            WHEN 40  => ToneIndex <= 12;
            WHEN 41  => ToneIndex <= 10;
  
            WHEN 42  => ToneIndex <= 10;
            WHEN 43  => ToneIndex <= 10;
            WHEN 44  => ToneIndex <= 10;
            WHEN 45  => ToneIndex <= 12;
            WHEN 46  => ToneIndex <= 12;
            WHEN 47  => ToneIndex <= 13;
            WHEN 48  => ToneIndex <= 13;
            WHEN 49  => ToneIndex <= 12;

            WHEN 50  => ToneIndex <= 12;
            WHEN 51  => ToneIndex <= 13;
            WHEN 52  => ToneIndex <= 15;
            WHEN 53  => ToneIndex <= 13;
            WHEN 54  => ToneIndex <= 13;
            WHEN 55  => ToneIndex <= 12;
            WHEN 56  => ToneIndex <= 12;
            WHEN 57  => ToneIndex <= 10;

            WHEN 58  => ToneIndex <= 10;
            WHEN 59  => ToneIndex <= 10;
            WHEN 60  => ToneIndex <= 10;
            WHEN 61  => ToneIndex <= 10;
            WHEN 62  => ToneIndex <= 10;  --?

            WHEN 63  => ToneIndex <= 12;
            WHEN 64  => ToneIndex <= 13;
            WHEN 65  => ToneIndex <= 13;
            WHEN 66  => ToneIndex <= 15;
            WHEN 67  => ToneIndex <= 15;
            WHEN 68  => ToneIndex <= 10;
            WHEN 69  => ToneIndex <= 10;
            WHEN 70  => ToneIndex <= 9;
            WHEN 71  => ToneIndex <= 9;
            WHEN 72  => ToneIndex <= 8;
            WHEN 73  => ToneIndex <= 8;
            WHEN 74  => ToneIndex <= 6;
            WHEN 75  => ToneIndex <= 6;
            WHEN 76  => ToneIndex <= 9;
            WHEN 77  => ToneIndex <= 9;
            WHEN 78  => ToneIndex <= 9;
            WHEN 79  => ToneIndex <= 8;
            WHEN 80  => ToneIndex <= 8;
            WHEN 81  => ToneIndex <= 9;
            WHEN 82  => ToneIndex <= 9;
            WHEN 83  => ToneIndex <= 10;
            WHEN 84  => ToneIndex <= 13;
            WHEN 85  => ToneIndex <= 13;
            WHEN 86  => ToneIndex <= 12; --C
            WHEN 87  => ToneIndex <= 12; --C
            
            WHEN 88  => ToneIndex <= 10;
            WHEN 89  => ToneIndex <= 10;
            WHEN 90  => ToneIndex <= 10;
            WHEN 91  => ToneIndex <= 10;
            WHEN 92  => ToneIndex <= 10;
            WHEN 93  => ToneIndex <= 10;
            WHEN 94  => ToneIndex <= 10;
            WHEN 95  => ToneIndex <= 10;
            WHEN 96  => ToneIndex <= 12;
            WHEN 97  => ToneIndex <= 13;
            WHEN 98  => ToneIndex <= 13;
            WHEN 99  => ToneIndex <= 13;
            WHEN 100  => ToneIndex <= 15;
            WHEN 101  => ToneIndex <= 10;
            WHEN 102  => ToneIndex <= 10;
            WHEN 103  => ToneIndex <= 9;
            WHEN 104  => ToneIndex <= 9;
            WHEN 105  => ToneIndex <= 8;
            WHEN 106  => ToneIndex <= 8;
            WHEN 107  => ToneIndex <= 6;
            WHEN 108  => ToneIndex <= 6;  -- D
            WHEN 109  => ToneIndex <= 9;
            WHEN 110 => ToneIndex  <= 9;
            WHEN 111 => ToneIndex <= 12;
            WHEN 112 => ToneIndex <= 10;
            WHEN 113 => ToneIndex <= 10;
            WHEN 114 => ToneIndex <= 10;
            WHEN 115 => ToneIndex <= 8;
            WHEN 116 => ToneIndex <= 8;
            WHEN 117 => ToneIndex <= 6;
            WHEN 118 => ToneIndex <= 6;
            WHEN 119 => ToneIndex <= 9;
            WHEN 120 => ToneIndex <= 9;
            WHEN 121 => ToneIndex <= 8;
            WHEN 122 => ToneIndex <= 8;
            WHEN 123 => ToneIndex <= 6;
            WHEN 124 => ToneIndex <= 6;
            WHEN 125 => ToneIndex <= 6;
            WHEN 126 => ToneIndex <= 6;
            WHEN 127 => ToneIndex <= 6;
            WHEN 128 => ToneIndex <= 6;-- END

            WHEN 129 => ToneIndex <= 10;
            WHEN 130 => ToneIndex <= 10;
            WHEN 131 => ToneIndex <= 10;
            WHEN 132 => ToneIndex <= 12;
            WHEN 133 => ToneIndex <= 13;
            WHEN 134 => ToneIndex <= 13;
            WHEN 135 => ToneIndex <= 15;
            WHEN 136 => ToneIndex <= 15;
            WHEN 137 => ToneIndex <= 10;
            WHEN 138 => ToneIndex <= 10;
            WHEN 139 => ToneIndex <= 9;
            WHEN 140 => ToneIndex <= 9;
            WHEN 141 => ToneIndex <= 8;
            WHEN 142 => ToneIndex <= 8;
            WHEN 143 => ToneIndex <= 6;
            WHEN 144 => ToneIndex <= 6;
            WHEN 145 => ToneIndex <= 9;
            WHEN 146 => ToneIndex <= 9;
            WHEN 147 => ToneIndex <= 9;
            WHEN 148 => ToneIndex <= 8;
            WHEN 149 => ToneIndex <= 8;
            WHEN 150 => ToneIndex <= 9;
            WHEN 151 => ToneIndex <= 9;
            WHEN 152 => ToneIndex <= 10;
            WHEN 153 => ToneIndex <= 13;
            WHEN 154 => ToneIndex <= 13;
            WHEN 155 => ToneIndex <= 12;
            WHEN 156 => ToneIndex <= 12;
            WHEN 157 => ToneIndex <= 10;
            WHEN 158 => ToneIndex <= 10;
            WHEN 159 => ToneIndex <= 10;
            WHEN 160 => ToneIndex <= 10;
            WHEN 161 => ToneIndex <= 10;
            WHEN 162 => ToneIndex <= 10;
            WHEN 163 => ToneIndex <= 10;-- 3 - - - 

            WHEN 164 => ToneIndex <= 10;
            WHEN 165 => ToneIndex <= 12;
            WHEN 166 => ToneIndex <= 13;
            WHEN 167 => ToneIndex <= 13;
            WHEN 168 => ToneIndex <= 13;
            WHEN 169 => ToneIndex <= 15;
            WHEN 170 => ToneIndex <= 10;
            WHEN 171 => ToneIndex <= 10;
            WHEN 172 => ToneIndex <= 9;
            WHEN 173 => ToneIndex <= 9;
            WHEN 174 => ToneIndex <= 8;
            WHEN 175 => ToneIndex <= 8;
            WHEN 176 => ToneIndex <= 6;
            WHEN 177 => ToneIndex <= 6; -- F
            WHEN 178 => ToneIndex <= 9;
            WHEN 179 => ToneIndex <= 9;
            WHEN 180 => ToneIndex <= 9;
            WHEN 181 => ToneIndex <= 12;
            WHEN 182 => ToneIndex <= 10;
            WHEN 183 => ToneIndex <= 10;
            WHEN 184 => ToneIndex <= 10;
            WHEN 185 => ToneIndex <= 8;
            WHEN 186 => ToneIndex <= 8;
            WHEN 187 => ToneIndex <= 6;
            WHEN 188 => ToneIndex <= 6;
            WHEN 189 => ToneIndex <= 9;
            WHEN 190 => ToneIndex <= 9;
            WHEN 191 => ToneIndex <= 8;
            WHEN 192 => ToneIndex <= 8;
            WHEN 193 => ToneIndex <= 6;
            WHEN 194 => ToneIndex <= 6;
            WHEN 195 => ToneIndex <= 6;
            WHEN 196 => ToneIndex <= 6;
            WHEN 197 => ToneIndex <= 6;
            WHEN 198 => ToneIndex <= 6;
            WHEN 199 => ToneIndex <= 6;
            WHEN OTHERS => NULL;
        END CASE;
    END PROCESS;
END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -