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

📄 spk.vhd.bak

📁 梁祝歌曲
💻 BAK
字号:
library ieee;
use ieee.std_logic_1164.all;
USE IEEE.STD_LOGIC_ARITH.ALL;
entity spk is
port(clk_6MHZ,CLK_4HZ:IN STD_LOGIC;
     SPK:OUT STD_LOGIC);
END;
ARCHITECTURE ONE OF SPK IS
SIGNAL HML:STD_LOGIC_VECTOR(11 DOWNTO 0);
SIGNAL CNT:integer range 0 to 63:=0;
SIGNAL DIVIDER,origin:INTEGER RANGE 0 TO 16383;
signal sp:std_logic;
BEGIN 

PROCESS(CLK_6MHZ)
BEGIN
	IF RISING_EDGE(CLK_6MHZ) THEN 
      IF origin=16383 THEN origin<=DIVIDER; sp<='1';
       ELSE origin<=origin+1; sp<='0';
       END IF;
    END IF;
END PROCESS;

process(sp)
begin
if rising_edge(sp)then 
spk<='1';
else spk<='0';
end if;
end process;

PROCESS(CLK_4HZ)
BEGIN
   IF RISING_EDGE(CLK_4HZ) THEN 
     if( cnt=63) then cnt<=0;
      else cnt<=cnt+1;
	END IF;
      case cnt is
   when 0=>hml<="000000000011";
   when 1=>hml<="000000000011";
   when 2=>hml<="000000000011";
	when 3=>hml<="000000000011";
	when 4=>hml<="000000000101";
	when 5=>hml<="000000000101";
	when 6=>hml<="000000000101";
	when 7=>hml<="000000000110";
	when 8=>hml<="000000010000";
	when 9=>hml<="000000010000";
	when 10=>hml<="000000010000";
	when 11=>hml<="000000100000";
	when 12=>hml<="000000000110";
	when 13=>hml<="000000010000";
	when 14=>hml<="000000000101";
	when 15=>hml<="000000000101";
	when 16=>hml<="000001010000";
	when 17=>hml<="000001010000";
	when 18=>hml<="000001010000";
	when 19=>hml<="000100000000";
	when 20=>hml<="000001100000";
	when 21=>hml<="000001010000";
	when 22=>hml<="000000110000";
	when 23=>hml<="000001010000";
	when 24=>hml<="000000100000";
	when 25=>hml<="000000100000";
	when 26=>hml<="000000100000";
	when 27=>hml<="000000100000";
	when 28=>hml<="000000100000";
	when 29=>hml<="000000100000";
	when 30=>hml<="000000100000";
	when 31=>hml<="000000100000";
	when 32=>hml<="000000100000";
	when 33=>hml<="000000100000";
	when 34=>hml<="000000100000";
	when 35=>hml<="000000110000";
	when 36=>hml<="000000000111";
	when 37=>hml<="000000000111";
	when 38=>hml<="000000000110";
	when 39=>hml<="000000000110";
	when 40=>hml<="000000000101";
	when 41=>hml<="000000000101";	when 42=>hml<="000000000101";
	when 43=>hml<="000000000110";
	when 44=>hml<="000000010000";
	when 45=>hml<="000000010000";
	when 46=>hml<="000000100000";
	when 47=>hml<="000000100000";
	when 48=>hml<="000000000011";
	when 49=>hml<="000000000011";
	when 50=>hml<="000000010000";
	when 51=>hml<="000000010000";
	when 52=>hml<="000000000110";
	when 53=>hml<="000000000101";
	when 54=>hml<="000000000110";
	when 55=>hml<="000000010000";
	when 56=>hml<="000000000101";
	when 57=>hml<="000000000101";
	when 58=>hml<="000000000101";
	when 59=>hml<="000000000101";
	when 60=>hml<="000000000101";	when 61=>hml<="000000000101";
	when 62=>hml<="000000000101";
	when 63=>hml<="000000000101";
	end case;
      CASE HML IS
        WHEN "000000000011"=>DIVIDER<=7281;
        WHEN "000000000101"=>DIVIDER<=8730;
        WHEN "000000000110"=>DIVIDER<=9565;
        WHEN "000000000111"=>DIVIDER<=10310;
        WHEN "000000010000"=>DIVIDER<=10647;
        WHEN "000000100000"=>DIVIDER<=11272;
        WHEN "000000110000"=>DIVIDER<=11831;
        WHEN "000001010000"=>DIVIDER<=12556;
        WHEN "000001100000"=>DIVIDER<=12974;
        WHEN "000100000000"=>DIVIDER<=13516;
        WHEN others=>DIVIDER<=16383;
   end case;
end if;
end process;

END;      
             

⌨️ 快捷键说明

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