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

📄 notetabs.vhd

📁 VHDL实现唱歌的功能
💻 VHD
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY NoteTabs IS
	PORT(clk :IN STD_LOGIC;
		 sel :in std_logic;   --歌曲选择 1选择 music,0选择 music1
		 ToneIndex :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
END;
ARCHITECTURE one OF NoteTabs IS
	COMPONENT MUSIC
		PORT(address :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
			 clock :IN STD_LOGIC;
			 q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
	END COMPONENT;
	COMPONENT MUSIC1
		PORT(address :IN STD_LOGIC_VECTOR(7 DOWNTO 0);
			 clock :IN STD_LOGIC;
			 q :OUT STD_LOGIC_VECTOR(3 DOWNTO 0));
	END COMPONENT;
		SIGNAL Counter :STD_LOGIC_VECTOR(7 DOWNTO 0);
		signal toneindex1:std_logic_vector(3 downto 0);
		signal toneindex2:std_logic_vector(3 downto 0);
		BEGIN
			process(sel)
			begin
				if(sel='1') then			--选择使用那个rom
					toneindex<=toneindex1;
				else
					toneindex<=toneindex2;
				end if;
			end process;
			CNT8 :PROCESS(clk,Counter)
				BEGIN
					IF Counter=138 THEN Counter<="00000000";
					ELSIF(clk'EVENT AND clk='1')THEN Counter<=Counter+1;
					END IF;
				END PROCESS;
u1 :MUSIC PORT MAP(address=>Counter,q=>toneindex1,clock=>clk);		--例化两个rom
u2 :MUSIC1 PORT MAP(address=>Counter,q=>toneindex2,clock=>clk);
END;

⌨️ 快捷键说明

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