设计一个含有异步清零和计数使能的16位二进制加减可控的计数器

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

28. 设计一个含有异步清零和计数使能的16位二进制加减可控计数器。P91- 3.

1.程序

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY cnt16 IS

PORT(EN,RST,UPD,CLK : IN STD_LOGIC;

OUT1: OUT STD_LOGIC_VECTOR(15 DOWNTO 0));

END cnt16;

ARCHITECTURE bhv OF cnt16 IS

SIGNAL QQ:STD_LOGIC_VECTOR(15 DOWNTO 0);

BEGIN

PROCESS(EN,RST,UPD)

BEGIN

IF RST='1' THEN

QQ<=(OTHERS=>'0'); --有复位信号清零

ELSIF EN='1' THEN --EN位高电平开始计数

IF CLK'EVENT AND CLK='1' THEN

IF UPD='1' THEN --当UDP为1加计数

QQ<=QQ+1;

ELSE --当UDP不为1减计数

IF QQ > "0" THEN --当减到0时

QQ<=QQ-1; --给QQ全1

ELSE

QQ<=(OTHERS=>'1');

END IF;

END IF;

END IF;

END IF;

END PROCESS;

OUT1<=QQ;

END bhv;

相关文档
最新文档