📄 sin.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY sin IS
PORT(clk0,fq:in std_logic;
q:out integer range 0 to 255);
END ENTITY sin ;
ARCHITECTURE behave OF sin IS
signal i:integer range 0 to 20;
signal clk2:std_logic;
BEGIN
process(fq)
begin
if fq'event and fq='1' then
if i<20 then i<=i+2;
else i<=0;
end if;
end if;
END PROCESS;
process(i,clk0)
variable tem:integer range 0 to 22;
variable qq:std_logic;
begin
if clk0'event and clk0='1' then
if tem<i then tem:=tem+1;
else tem:=0;qq:=not qq;
end if;
end if;
clk2<=qq;
end process;
PROCESS(clk2)
VARIABLE tmp:integer range 0 to 63;
VARIABLE p:integer range 0 to 255;
BEGIN
IF clk2'EVENT AND clk2='1' THEN
IF tmp=63 THEN tmp:=0;
ELSE tmp:=tmp+1;
END IF;
CASE tmp IS
WHEN 00=>p:=255; WHEN 01=>p:=254; WHEN 02=>p:=252;
WHEN 03=>p:=249; WHEN 04=>p:=245; WHEN 05=>p:=239;
WHEN 06=>p:=233; WHEN 07=>p:=225; WHEN 08=>p:=217;
WHEN 09=>p:=207; WHEN 10=>p:=197; WHEN 11=>p:=186;
WHEN 12=>p:=174; WHEN 13=>p:=162; WHEN 14=>p:=150;
WHEN 15=>p:=137; WHEN 16=>p:=124; WHEN 17=>p:=112;
WHEN 18=>p:=99; WHEN 19=>p:=87; WHEN 20=>p:=75;
WHEN 21=>p:=64; WHEN 22=>p:=53; WHEN 23=>p:=43;
WHEN 24=>p:=34; WHEN 25=>p:=26; WHEN 26=>p:=19;
WHEN 27=>p:=13; WHEN 28=>p:=8; WHEN 29=>p:=4;
WHEN 30=>p:=1; WHEN 31=>p:=0; WHEN 32=>p:=0;
WHEN 33=>p:=1; WHEN 34=>p:=4; WHEN 35=>p:=8;
WHEN 36=>p:=13; WHEN 37=>p:=19; WHEN 38=>p:=26;
WHEN 39=>p:=34; WHEN 40=>p:=43; WHEN 41=>p:=53;
WHEN 42=>p:=64; WHEN 43=>p:=75; WHEN 44=>p:=87;
WHEN 45=>p:=99; WHEN 46=>p:=112; WHEN 47=>p:=124;
WHEN 48=>p:=137; WHEN 49=>p:=150; WHEN 50=>p:=162;
WHEN 51=>p:=174; WHEN 52=>p:=186; WHEN 53=>p:=197;
WHEN 54=>p:=207; WHEN 55=>p:=217; WHEN 56=>p:=225;
WHEN 57=>p:=233; WHEN 58=>p:=239; WHEN 59=>p:=245;
WHEN 60=>p:=249; WHEN 61=>p:=252; WHEN 62=>p:=254;
WHEN 63=>p:=255; WHEN OTHERS=>NULL;
END CASE;
q<=p;
END IF;
END PROCESS;
END behave;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -