dtimer.vhd
来自「能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能 具有复位功能 功」· VHDL 代码 · 共 49 行
VHD
49 行
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 + =
减小字号Ctrl + -
显示快捷键?