📄 hour.vhd
字号:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY HOUR IS
PORT(CLK,RESET,MODEL:IN STD_LOGIC;
HOUR0,HOUR1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
MODEL_OUT:OUT STD_LOGIC);
END HOUR;
ARCHITECTURE BEHAV OF HOUR IS
BEGIN
PROCESS(CLK,RESET,MODEL)
VARIABLE CQI:STD_LOGIC_VECTOR(7 DOWNTO 0);
VARIABLE CDE:STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN
IF RESET='1' THEN CQI:=(OTHERS=>'0');--计数器复位
ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿
IF MODEL = '0' THEN CDE:="00100011"; --MODEL=0时模24计数
ELSE CDE:="00010001";--MODEL=1时模12计数
END IF;
IF CQI<CDE THEN
IF CQI(3 DOWNTO 0)="1001" THEN CQI:=CQI+7; --个位到9的时候自动加7变换成BCD码
ELSE CQI:=CQI+1;
END IF;
ELSE CQI:=(OTHERS=>'0');
END IF;
END IF;
HOUR0<=CQI(3 DOWNTO 0);
HOUR1<=CQI(7 DOWNTO 4);
MODEL_OUT<=MODEL;
END PROCESS;
END BEHAV;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -