📄 notetabs.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 + -