8位可逆计数器

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

一、课程设计的目的与要求

1.设计目的

●熟悉MAXPLUS2/Quartus II软件,掌握软件的VHDL程序输入、程序编译和程序仿真操作;

●学习利用VHDL语言设计数字时序电路程序;

●了解可逆计数器电路的工作方式。

2.设计要求

●利用VHDL语言设计八位可逆计数器电路,并利用相关软件进行编译和仿真。并通过其波形输入

验证电路设计。

二、设计正文

1、功能及要求:

8位可逆计数器根据计数脉冲的不同,控制计数器在同步信号脉冲的作用下,进行加1或减1操

作。其真值表如下所示:

表1 8位可逆计数器真值表

CLR UPDOWN CLK Q0~Q7

1 X X 00000000

0 1 ↑加1

0 0 ↑减1

可逆计数器的计数方向,由特殊的控制端UPDOWN控制。

●当UPDOWN=1时,计数器进行加1操作;

●当UPDOWN=0时,计数器进行减1操作。

2、八位可逆计数器7VHDL源程序:

LIBRARY IEEE; ——库

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL; ——包含程序包std_logic_1164.all和std_logic_unsigned.all ENTITY count8 IS

PORT(clr, clk,updn: IN STD_LOGIC;

q0,q1,q2,q3,q4,q5,q6,q7: OUT STD_LOGIC); ——端口表:输入输出数据为标准逻辑型END count8;

ARCHITECTURE exam OF count8 IS ——定义名为exam的结构体

SIGNAL count_8 : STD_LOGIC_VECTOR (7 DOWNTO 0);——在结构体内部定义信号count_8标准逻辑矢量BEGIN

q0<=count_8(0); ——将输出端口分别传递给count_8

q1<=count_8(1);

q2<=count_8(2);

q3<=count_8(3);

q4<=count_8(4);

q5<=count_8(5);

q6<=count_8(6);

q7<=count_8(7);

PROCESS(clk,clr)

BEGIN ——进程开始

IF (clr='1')THEN

count_8<="00000000"; ——清零信号有效时输出为“00000000”

ELSIF (clk'event AND clk='1')THEN

IF (updn='1') THEN

count_8<=count_8+'1'; ——当上升沿到来时,控制信号updn=1时,加计数

ELSE

count_8<=count_8-'1'; ——当上升沿到来时,控制信号updn=0时,减计数

END IF;

END IF;

END PROCESS;

END exam;

三、课程设计总结

图1 八位可逆计数器增计数仿真波形图

1、由波形图1红色方框中清零信号clr=1有效,不管updn,clk为何值,此时输出端q1—q7均输出为0,与真值表clr功能相符;

2、当clr=0,updn=1时,图1中橙色部分出现输出延迟;在时钟脉冲作用下,由q0,q1,q2,q3,q4,q5,q6,q7分别输出依次为00000000,00000001,00000010,00000011,00000100,00000101和图中其他波形数据,符合增计数的加法计数功能。

图2 八位可逆计数器减计数仿真波形图

由波形图2看出当clr=0,updn=1时,从蓝线处t=7.31ns输出结果才开始出现,即延迟时间为t=7.31ns; ,图2中同图1一样出现输出延迟;由q0,q1,q2,q3,q4,q5,q6,q7分别输出依次为11111111,11111110,11111101,11111100等图2中其他数据,符合可逆计数器的减法计数功能。

表2 8位可逆计数器真值表

CLR UPDOWN CLK Q0~Q7

1 X X 00000000

0 1 ↑加1

0 0 ↑减1

根据仿真结果和真值表可知,该程序实现了八位可逆计数器的全部功能。

相关文档
最新文档