当前位置:文档之家› 含异步清零和同步时钟使能的加法计数器设计

含异步清零和同步时钟使能的加法计数器设计

EDA实验报告书
姓名学号实验时间




含异步清零和同步时钟使能的加法计数器设计
实验目的1.学习计数器的设计、仿真和硬件测试方法;
2.进一步熟悉VHDL设计技术;
设计要求设计一个24进制含异步清零和同步时钟使能的加法计数器,具体要求如下:
1.清零端高电平时,信号输出为0;使能端高电平时可以计数;
2.本计数器为上升沿触发;
3.计数器的输出为两路信号,分别代表计数值的个位和十位;两路信号以BCD码输出。

设计思路
根据十进制使能端加法计数器设计24进制计数器,设计异步清零;清零端高电平时,信号输出为0;使能端高电平时可以计数。

现根据书上设计出24进制计数器,再通过改进,变为两路输出BCD码。

设计原理图及源程序LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY nb IS
PORT(CLK,RD,EN:IN STD_LOGIC;
CQ,CP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END nb;
ARCHITECTURE BBQ OF nb IS
SIGNAL CG: STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL CS: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,RD,EN)
BEGIN
IF RD='1' THEN CG<="0000";
CS<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN
IF (CS="0010" AND CG="0011") THEN
CG<="0000";
CS<="0000";
ELSIF CG="1001" THEN CG<="0000";
CS<=CS+1;
ELSE CG<=CG+1;
END IF;
END IF;
END IF;
IF (CS="0010" AND CG="0011") THEN COUT<='1';
ELSE
COUT<='0';
END IF;
CQ<=CG;
CP<=CS;
END PROCESS;
END BBQ;
仿








问题讨论设计一个60进制的加法计数器,具体要求与本实验中的24进制计数器相同LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY JINZHI60 IS
PORT(CLK,RD,EN:IN STD_LOGIC;
CQ,CP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END JINZHI60 ;
ARCHITECTURE BBQ OF JINZHI60 IS
SIGNAL CS,CG: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(CLK,RD,EN)
BEGIN
IF RD='1' THEN CG<="0000";
CS<="0000";
ELSIF CLK'EVENT AND CLK='1' THEN
IF EN='1' THEN
IF (CS="0101" AND CG="1001") THEN
CG<="0000";
CS<="0000";
ELSIF CG="1001" THEN CG<="0000";
IF CS="0101" THEN CS<="0000";
ELSE CS<=CS+1;
END IF;
ELSE CG<=CG+1;
END IF;
END IF;
END IF;
CQ<=CG;
CP<=CS;
IF (CS="0101" AND CG="1001") THEN COUT<='1';
ELSE
COUT<='0';
END IF;
END PROCESS;
END BBQ;
教师
评分
教师签名
日期操作成绩报告成绩。

相关主题