二位十进制计数器.pdf

二位十进制计数器.pdf

ID:50220915

大小:396.26 KB

页数:5页

时间:2020-03-12

二位十进制计数器.pdf_第1页
二位十进制计数器.pdf_第2页
二位十进制计数器.pdf_第3页
二位十进制计数器.pdf_第4页
二位十进制计数器.pdf_第5页
资源描述:

《二位十进制计数器.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、EDA技术及应用讲座作业题目:基于EDA的二位十进制计数器学校:中南大学学科专业:生物医学工程学生:学号:0405080704任课教师:完成日期:2011年5月19日基于EDA的二位十进制计数器一实验目的1了解QuartusII软件及基本操作;2熟悉图形编辑器GraphicEditorFile的设计方法;3熟悉VHDL语言设计方法;4掌握简单计数器的图形设计方法和VHDL语言设计方法。二任务要求用两种EDA设计方法设计一个二位十进制计数器,具体要求如下:1能累加计时;2能循环计时(当计时到我们所需的数值时,能清零继续计数);3能通过一个开关来选择计数器进制数;4要求分别用图形设计方法和VH

2、DL语言两种方法实现该设计;5分析比较两种设计方法。三计数器原理及其EDA实现方法计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。在EDA设计中,可以采用两种方法来实现简单的计数器。采用图形设计方法,设计者可以调用设计软件提供的库元件,如基本的逻辑器件与门、或门、四位十进制计数器74160等等,并将这些元件以一定方式连接,从而构成目

3、标计数器;采用VHDL语言设计方法,设计者只要根据VHDL语言规则定义目标计数器的管脚,并描述目标计数器的功能,然后设计软件便可以自动综合出目标计数器,采用这种设计方法,设计者不用考虑实际可用硬件的构成方式,因此很灵活方便。本作业将利用Alter公司的设计软件QuartusII9.1分别采用以上两种方法来实现一个二位十进制计数器,该计数器有两个可选进制24进制和12进制,可以通过一个开关来改变进制。该计数器在输入时钟的驱动下可以在00到24(或12)间循环计数,并将当前计数的十位和个位以BCD码输出。四具体方案4.1图形设计方法1设计思路我采用了两个同步十进制计数器74160来实现二位十进

4、制计数器,其原理图如图1所示。图1中将个位计数器ONES的输出H0[0]-H0[3]通过一个或非门连接到十位计数器TENS的时钟输入,从而实现个位到十位的进位。当H0[0]-H0[3],由“1001”变为“0000时”,或非门将产生一个上升沿,从而触发十位数计数器加1。74160具有一个异步清零脚(CLRN)和一个同步置数脚(LDN),我采用了同步置数脚来实现该计数器的循环计数。图1中24进制计数情况下,当两个计数器的输出为23(即“00100011”)时,通过一个与非门产生一个下降沿并输入到两个计数器的同步置数端,从而实现了循环计数。12进制计数时,只要输出为111(即“00010001

5、”)时便产生置数信号。图1中多路复用器Multiplexer用来选择进制数,由开关SWI控制,如果SWI为高电平,则选通A->Y的通道,即选择了24进制计数;如果SWI为高电平,刚选通B->Y通道,即选择了12进制计数。图1二位十进制计数器原理图2仿真波形仿真波形如图2和图3所示,图2为24进制下的仿真波形,图3为12进制下的仿真波形。图224进制计数器仿真波形图312进制计数器仿真波形24.2VHDL语言设计方法1设计思路及代码利用VHDL语言设计电路,只要正确描述目标电路的功能,然后由设计软件综合而到最终的逻辑电路。下面是设计该二位十进制计数器的程序代码,其功能与上面图形设计方法所得计

6、数器基本一样,只是多一个复位功能。libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityCounter24VHDLisport(Rst:instd_logic;--复位,低电平有效hCLK:instd_logic;--时钟输入SWI:instd_logic;--开关输入,用于选择24(高电平)或12(低电平)进制计数hour0,hour1:outstd_logic_vector(3downto0));--个位与十位BCD码输出endentityCounter24VHDL;architectur

7、eoneofCounter24VHDLissignalhour0_t,hour1_t:std_logic_vector(3downto0);--个位与十位缓冲器beginprocess(Rst,hCLK,SWI)beginifRst='0'thenhour0_t<="0000";hour1_t<="0000";elsifhCLK'eventandhCLK='1'thenifSWI='1'andhour0_t="0011"

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

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

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