📄 60counter.vhd
字号:
--实验题号 : lab4-2
--项目名称 :六十进制计数器
--文件名 : SixtyCalcu.vhd
--作者 : 胡博
--班号. : 计60
--创建日期 : 2008-04-14
--目标芯片 : EP1C6Q240C8
--电路模式 : 模式1
--时钟选择 : clock0
--演示说明 : CQLOW接数码管1;CQHIGH接数码管2;COUT接发光二极管。RST,EN为键八及键七。
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL ;
USE IEEE.STD_LOGIC_UNSIGNED.ALL ;
ENTITY SixtyCalcu IS --顶层实体
PORT ( CLK,RST,EN : IN STD_LOGIC ;
CQLOW:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); --输出低位
CQHIGH:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); --输出高位
COUT:OUT STD_LOGIC); --进位
END SixtyCalcu;
ARCHITECTURE behav OF SixtyCalcu IS
BEGIN
PROCESS(CLK, RST, EN)--主进程
VARIABLE CQLOWI : STD_LOGIC_VECTOR(3 DOWNTO 0):="0000";
VARIABLE CQHIGHI : STD_LOGIC_VECTOR(2 DOWNTO 0):="000";
BEGIN
IF RST = '1' THEN CQLOWI := (OTHERS =>'0') ; --计数器异步复位
CQHIGHI:=(OTHERS=>'0');
CQLOW<=(OTHERS=>'0');
CQHIGH<=(OTHERS=>'0');
ELSIF CLK'EVENT AND CLK='1' THEN --检测时钟上升沿
IF EN = '1' THEN --检测是否允许计数(同步使能)
IF CQLOWI < 59 THEN CQLOWI := CQLOWI + 1; --允许计数,检测是否小于59,加上一个数后最多为59
ELSE CQLOWI := (OTHERS =>'0'); --计数值清零,CQHIGH上加1
IF CQHIGHI<5 THEN CQHIGHI:=CQHIGHI+1; --CQHIGHI<6;
COUT<='0'; --进位为0
ELSE CQHIGHI:=(OTHERS=>'0');
COUT<='1';--进位为1
END IF;
END IF;
CQLOW<=CQLOWI;
CQHIGH<=CQHIGHI;
END IF;
END IF;
END PROCESS;
END behav;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -