tonetaba.vhd

来自「乐曲硬件演奏电路设计的全部VHDL代码」· VHDL 代码 · 共 30 行

VHD
30
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY ToneTaba IS
    PORT ( Index :  IN  STD_LOGIC_VECTOR (3 DOWNTO 0) ;
           CODE  : OUT  STD_LOGIC_VECTOR (3 DOWNTO 0) ;
           HIGH  : OUT STD_LOGIC; 
           Tone  : OUT  STD_LOGIC_VECTOR (10 DOWNTO 0) );
END;
ARCHITECTURE one OF ToneTaba IS
BEGIN
    Search : PROCESS(Index)
    BEGIN
        CASE Index IS     -- 译码电路,查表方式,控制音调的预置数
   WHEN "0000" => Tone<="11111111111" ; CODE<="0000"; HIGH <='0';-- 2047
   WHEN "0001" => Tone<="01100000101" ; CODE<="0001"; HIGH <='0';-- 773;
   WHEN "0010" => Tone<="01110010000" ; CODE<="0010"; HIGH <='0';-- 912;
   WHEN "0011" => Tone<="10000001100" ; CODE<="0011"; HIGH <='0';--1036;
   WHEN "0101" => Tone<="10010101101" ; CODE<="0101"; HIGH <='0';--1197;
   WHEN "0110" => Tone<="10100001010" ; CODE<="0110"; HIGH <='0';--1290;
   WHEN "0111" => Tone<="10101011100" ; CODE<="0111"; HIGH <='0';--1372;
   WHEN "1000" => Tone<="10110000010" ; CODE<="0001"; HIGH <='1';--1410;
   WHEN "1001" => Tone<="10111001000" ; CODE<="0010"; HIGH <='1';--1480;
   WHEN "1010" => Tone<="11000000110" ; CODE<="0011"; HIGH <='1';--1542;
   WHEN "1100" => Tone<="11001010110" ; CODE<="0101"; HIGH <='1';--1622;
   WHEN "1101" => Tone<="11010000100" ; CODE<="0110"; HIGH <='1';--1668;
   WHEN "1111" => Tone<="11011000000" ; CODE<="0001"; HIGH <='1';--1728;
   WHEN OTHERS => NULL;
   END CASE;
   END PROCESS;
END; 

⌨️ 快捷键说明

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