加法计数器的设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

EDA实验报告书
姓名xxx 学号xxxxxxx 实验时间课题名称含异步清零和同步时钟使能的加法计数器设计
实验目的1.学习计数器的设计、仿真和硬件测试方法;
2.进一步熟悉VHDL设计技术及QuatusⅡ软件的使用方法;
设计要求设计一个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 ss IS
PORT(CLK,RD,EN:IN STD_LOGIC;
CQ,CP:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT:OUT STD_LOGIC);
END ss;
ARCHITECTURE BBQ OF ss 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;
仿真波形

问题讨论1.设计一个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";
CS<=CS+1;
ELSE CG<=CG+1;
END IF;
END IF;
END IF;
IF (CS="0101" AND CG="1001") THEN COUT<='1';
ELSE COUT<='0';
END IF;
CQ<=CG;
CP<=CS;
END PROCESS;
END BBQ;
2.利用60进制及24进制计数器设计简易数字钟。

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY JY IS
PORT(CLK,RD,EN:IN STD_LOGIC;
A,B,C,D:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END JY;
ARCHITECTURE WRR OF JY IS
SIGNAL H,I,J,K:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN
PROCESS (CLK,RD,EN)
BEGIN
IF RD='1' THEN H<="0000";
I<="0000";
J<="0000";
K<="0000";
ELSIF CLK'EVENT AND CLK='1'THEN
IF EN='1'THEN
IF(J="0110" AND K="0000")THEN
J<="0000";
K<="0000";
I<=I+1;
ELSIF K="1001"THEN K<="0000";
J<=J+1;
ELSE K<=K+1;
IF I="1010"THEN
I<="0000";
H<=H+1;
ELSIF (J="0110" AND K="0000")THEN
J<="0000";
K<="0000";
END IF;
IF (H="0010"AND I="0100")THEN
H<="0000";
I<="0000";
END IF;
END IF;
END IF;
END IF;
A<=H;B<=I;
C<=J;
D<=K;
END PROCESS;
END WRR;
3.体会分层设计的思想。

(1)实现了软件之间的解耦;
(2)便于进行分工
(3)便于维护
(4)提高软件组件的重用
(5)便于替换某种产品,比如持久层用的是hibernate,需要更换产品用toplink,就不用该其他业务代码,直接把配置一改。

(6)便于产品功能的扩展。

(7)便于适用用户需求的不断变化
教师评分
教师签名
日期操作成绩报告成绩。

相关文档
最新文档