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

2019-01-05 11:33

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

一 、实验目的

1.掌握加减法计数器以及特殊功能计数器的的设计原理。 2用VHDL语言设计多功能计数器。

二、 实验原理

D

触发器 reset Clk 计数输出 加法器

步长

计数分同步计数器和异步计数器,如果按工作原理和使用情况来分那就更多了。 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)

VARIABLE 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;


实验九_步长可变的加减计数器.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:湖北省武汉市重点高中2011届高三起点调研测试(政治)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: