tonetaba.vhd

来自「出血FPGA,用VHDL做的音乐盒」· VHDL 代码 · 共 31 行

VHD
31
字号
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.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 TONETABA;
ARCHITECTURE MA 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 MA;

⌨️ 快捷键说明

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