异步十二进制加减计数器 课程设计报告

异步十二进制加减计数器 课程设计报告

ID:47533117

大小:210.00 KB

页数:10页

时间:2020-01-13

异步十二进制加减计数器 课程设计报告_第1页
异步十二进制加减计数器 课程设计报告_第2页
异步十二进制加减计数器 课程设计报告_第3页
异步十二进制加减计数器 课程设计报告_第4页
异步十二进制加减计数器 课程设计报告_第5页
资源描述:

《异步十二进制加减计数器 课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、集成电路课设报告VHDL语言描述能力强,覆盖面广,抽象能力强,所以用VHDL语言作为硬件模型建模很合适。设计者的原始描述是非常简练的硬件描述,经过EDA工具综合处理,最终生成付诸生产的电路描述或版图参数描述的工艺文件。整个过程通过EDA工具自动完成,大大减轻了设计人员的工作强度,提高了设计质量,减少了出错的机会。VHDL语言可读性好。VHDL既能被人容易读懂又能被计算机识别,作为技术人员编写的原文件,既是计算机程序、技术文档和技术人员硬件信息交流文件,又是签约双方的合同文件。VHDL语言中设计实体、程序包、设计

2、库,为设计人员重复利用别人的设计提供了设计手段。重复利用他人的IP模块和软核是VHDL的特色,许多设计不必个个都从头再来,只要在更高层次上IP模块利用起来,就能达到事半功倍的效果。本实验就是用VHDL语言设计一个异步十二进制加减计数器。一、题目:异步十二进制加减计数器二、电路工作原理所谓计数器就是指能够记忆时钟信号脉冲个数的时序逻辑电路,它是数字电路中应用及其广泛的一种基本逻辑单元,不仅能用于脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。其原理就是将几个触发器按照一定的顺序连接起来,

3、然后根据触发器的状态按照一定的规律随时钟信号的变化来记忆时钟的个数。1、同步计数器和异步计数器名称时钟提供功能实现过程缺点优点异步计数器往往高位触发器的时钟信号由低位触发器的输出提供在低位触发器翻转后高位触发器才能翻转计数速度比较慢。由于各触发器输出存在偏移,对各触发器的输出的译码输出会出现尖峰信号结构简单,所用元件较少同步计数器同一脉冲提供各触发器同时翻转。其最高工作频率只和触发器传输延迟以及有关控制门传输延迟之和有关其工作频率比异步计数器要高。由于采用同一脉冲控制,可有效减小译码后产生的尖峰信号宽度结构比较

4、复杂,所用元件较多根据计数器脉冲引入方式的不同,计数器分为同步计数器和异步计数器两大类。(功能比较如下表所示)其中同步计数器是将计数脉冲同时引入到各级触发器,当输入计数时钟脉冲触发时,各级触发器的状态同时发生转移,而异步计数器是将计数器的低位计数触发器的输出作为相邻计数触发器的时钟脉冲,这样逐级串行连接起来的一类计数器。也就是说,每一个触发器的翻转时刻并不是由时钟信号来同步的,而是由它下一位触发器的输出决定的。2、置“0”方式——异步置“0”和同步置“0”异步置“0”方式:其置零信号Rd是经缓冲门直接加在触发器

5、的R端的。同步置“0”方式:当置“0”信号到达时,计数器并不立即置“0”,而是在有CP脉冲上升沿到来时,电路才被置零。可逆计数器就是指在输入时钟信号脉冲的控制下,既可以进行递增计数也可以进行递减计数的一类特殊计数器。对于具体的可你计数器来说,需要定义一个用来控制计数器方向的控制端口updown:当控制端口updown的值为逻辑‘1’时,可逆计数器进行加1操作,即递增计数,当控制端口updown的值为逻辑‘0’时,可逆计数器进行减1操作,即递减计数。可逆计数器真值表:Rd(Clr)UPDOWNCP(Clk)Q0—

6、—Q30XX000011下降沿加1操作10下降沿减1操作通过上述分析就可以明确地了解:程序1是异步置0的同步可逆计数器程序2是由低位触发器的输出提供高位触发器的时钟信号的,从而实现了异步加减计数。三、VHDL设计思路与程序(一)程序11、VHDL设计思路设计中,CP是时钟输入端,下降沿有效;Rd为清零控制端,低电平有效;updown为计数方式控制端,updown=“1”时作加法计数,updown=“0”时作减法计数。在计数工作之前,先由Rd给一个清零信号,使四个数据输入值都为“0”。y3,y2,y1,y0为四个

7、数据输出端,这就实现了异步清零。当updown=“1”,Rd=“1”时,计数器进行加法计数,即从“0000”依次计数到“1011”,当updown=“0”,Rd=“1”时,计数器进行减法计数。2、源程序及注释libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityyuis实体说明port(cp,rd,updown:instd_logic;定义端口q:outstd_logic_vector(3downto0));end

8、yu;architectureyuofyuis结构体signaly:std_logic_vector(3downto0);定义信号beginprocess(cp,rd)进程开始beginifrd='0'then清零y<="0000";elseif(cp'eventandcp='0')then时钟信号为下降沿时if(updown='1')then进行加法计数ify="1011"then到

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。