实验九_步长可变的加减计数器

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

实验九步长可变的加减计数器

一、实验目的

1.掌握加减法计数器以及特殊功能计数器的的设计原理。

2用VHDL语言设计多功能计数器。

二、实验原理

计数分同步计数器和异步计数器,如果按工作原理和使用情况来分那就更多了。

1.加减工作原理

加减计数也称为可逆计数,就是根据计数控制信号的不同,在时钟脉冲的作用下,计数器可以进行加1计数操作或者减1计数操作。

2.变步长工作原理

如步长为3的加法计数器,计数状态变化为0、3、6、9、12……,步长值由输入端控制。在加法计数时,当计数值达到或超过99时,在计数器下一个时钟脉冲过后,计数器清零;在减法计数时,当计数值达到或小于0时,在计数器下一个时钟脉冲过后,计数器也清零。

三、实验内容

1 设计的计数步长可在0~79之间变化

2 通过仿真或观察波形图验证设计的正确性。

3 编译下载验证结果。

四、设计提示

1.注意IF语句的嵌套。

2.注意加减计数状态的变化,计数值由9变0(加法)及由0变9(减法)各位的变化。

由于计数器为十进制计数器,还应考虑进位或借位后进行加6及减6校正。

五、实验报告要求

1.写出多模加减计数器的VHDL源程序。

2.叙述多模加减计数器的工作原理。

SF = ‘1’加标志,SF=’0’减标志

3.画出计数器工作波形图.

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY CHANGABLE IS

PORT(CLK,RESET,SF:IN STD_LOGIC;

SIZE:IN STD_LOGIC_VECTOR(6 DOWNTO 0);

DO:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)

);

END ENTITY CHANGABLE;

ARCHITECTURE C_SIZE OF CHANGABLE IS

SIGNAL C_COUNT: STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN

PROCESS(CLK,RESET,SF,SIZE)

V ARIABLE TP:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN

IF(RESET = '1')THEN

C_COUNT<=(OTHERS=>'0');

ELSIF(CLK'EVENT AND CLK = '1')THEN

IF(SF='1')THEN

TP:=C_COUNT+SIZE;

IF(TP>79)THEN

C_COUNT<=(OTHERS=>'0');

ELSE

C_COUNT<=C_COUNT+SIZE;

END IF;

ELSE

IF(TP < SIZE)THEN

C_COUNT<=(OTHERS=>'0');

ELSE

C_COUNT<=C_COUNT-SIZE;

END IF;

END IF;

END IF;

DO<=C_COUNT;

END PROCESS;

END ARCHITECTURE C_SIZE;

相关文档
最新文档