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

📄 ladder.vhd.bak

📁 能够产生方波、三角波、正弦波、及阶梯波
💻 BAK
字号:
LIBRARY IEEE; 
USE IEEE.STD_LOGIC_1164.ALL; 
USE IEEE.STD_LOGIC_UNSIGNED.ALL; 
ENTITY ladder IS
PORT(clk0,fq:IN STD_LOGIC; 
 q:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));
END ladder;
ARCHITECTURE behave OF ladder 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: STD_LOGIC_VECTOR(7 DOWNTO 0); --定义内部变量
VARIABLE a: STD_LOGIC; 
BEGIN

IF clk2'EVENT AND clk2='1' THEN--检测时钟上升沿
 IF a='0' THEN--判断a数值,计数。
     IF tmp="11111111" THEN
tmp:="00000000"; --计数到最大清零
a:='1';
 ELSE
tmp:=tmp+16;--阶梯常数为16,可修改
a:='1'; 
 END IF; 
 ELSE
a:='0';--循环计数
 END IF; 
END IF;
q<=tmp;
END PROCESS; 
END behave;

⌨️ 快捷键说明

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