📄 dtimer.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY DTIMER IS
PORT( iclk : IN STD_LOGIC; --input clock
iRst : IN STD_LOGIC;
iSMin: IN STD_LOGIC_VECTOR(5 DOWNTO 0);
iSHou: IN STD_LOGIC_VECTOR(4 DOWNTO 0);
Ohou: OUT STD_LOGIC_VECTOR(4 DOWNTO 0);
Omin: OUT STD_LOGIC_VECTOR(5 DOWNTO 0);
Osec: OUT STD_LOGIC_VECTOR(5 DOWNTO 0));
END DTIMER;
ARCHITECTURE run OF DTIMER IS
BEGIN
F:PROCESS(iclk, iRst)
VARIABLE fre: STD_LOGIC_VECTOR(25 DOWNTO 0);
VARIABLE hou: STD_LOGIC_VECTOR(4 DOWNTO 0);
VARIABLE min: STD_LOGIC_VECTOR(5 DOWNTO 0);
VARIABLE sec: STD_LOGIC_VECTOR(5 DOWNTO 0);
BEGIN
IF iRst = '0' THEN
hou := "00000";
min := "000000";
sec := "000000";
ELSIF iclk'EVENT AND iclk = '1'
THEN IF fre = "10111110101111000010000000"
THEN fre := "00000000000000000000000000";
sec:= sec+1;
IF sec = "111100"
THEN sec := "000000";
min := min + '1';
IF min = "111100"
THEN min :="000000";
hou := hou + '1';
IF hou = "11000"
THEN hou := "00000";
END IF;
END IF;
END IF;
ELSE fre := fre + '1';
END IF;
END IF;
Osec <= sec;
Omin <= min;
Ohou <= hou;
END PROCESS;
END run;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -