📄 spk.vhd.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 + -