24进制计数器设计VHDL语言
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
24进制计数器设计VHDL语言:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY ESJZ IS
PORT(
CLK :IN STD_LOGIC; --时钟
EN :IN STD_LOGIC; --使能端
CR :IN STD_LOGIC; --清零端,低电平有效
LD :IN STD_LOGIC; --数据载入控制,低电平有效
D :IN STD_LOGIC_VECTOR(5 DOWNTO 0); --载入数据端CO : OUT STD_LOGIC; --进位
Q :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) --计时输出);
END ESJZ ;
ARCHITECTURE a OF ESJZ IS
SIGNAL QN :STD_LOGIC_VECTOR(5 DOWNTO 0); BEGIN --进位控制
CO<='1' WHEN(QN=X"23" AND EN='1')
ELSE'0';
PROCESS(CLK,CR)
BEGIN
IF (CR='0')THEN
QN<="000000";
ELSE
IF (CLK'EVENT AND CLK='1') THEN
IF (LD='0') THEN --数据加载
QN<=D;
ELSIF(EN='1') THEN
IF (QN(3 DOWNTO 0)=3 and QN(5 DOWNTO 4)=2) or QN(3 DOWNTO 0)=9 THEN QN(3 DOWNTO 0)<="0000"; --个位数进位
IF QN(5 DOWNTO 4)=2 THEN
QN(5 DOWNTO 4)<="00"; --十位数进位
ELSE
QN(5 DOWNTO 4)<= QN(5 DOWNTO 4)+1;
END IF;
ELSE
QN(3 DOWNTO 0)<= QN(3 DOWNTO 0)+1;
END IF ;
END IF;
END IF ;
END IF;
END PROCESS;
Q<=QN;
end a;