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

📄 sin.vhd.bak

📁 能够产生方波、三角波、正弦波、及阶梯波
💻 BAK
字号:
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,clk0)
			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 + -