📄 ladder.vhd
字号:
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)
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 + -