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

📄 dtimer.vhd.bak

📁 能够实现小时(24进制)、分钟和秒钟(60进制)的计数功能 具有复位功能 功能扩展:具有整点报时提示、定时闹钟等功能
💻 BAK
字号:
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 = '1' 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 + -