基于FPGA和VHDL电子秒表设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于FPGA和VHDL电子秒表设计

基于FPGA和VHDL电子秒表设计   摘 要 本文利用Spartan3A and Spartan3AN系列的XC3S200A FT256的FPGA作为开发硬件,ISE软件和ModelSim软件作为开发软件,设计制作了一款计数长度为一小时,计数精度为0.01秒,六位数码管显示的电子跑表。具有开始/停止,复位清零功能,并且加入了扩展要求的多次暂停计数功能和消抖判断。具有精度高,操作简单的特点。   关键词 FPGA;VHDL;ISE;ModelSim;电子跑表   中图分类号:TP302 文献标识码:A 文章编号:1671-7597(2013)14-0025-01   随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。而电子设计自动化(EDA)的实现是与CPLD/FPGA技术的迅速发展息息相关的,利用PLD/FPGA,电子系统设计工程师可以在实验室中设计出专用IC,实现了系统的集成。此外,CPLD/FPGA还具有静态可重复编程或在线动态重构特性,使硬件的功能可像软件一样通过编程来修改,不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。20世纪80年代后期由美国国防部开发的VHDL语言恰好满足了上述这样的要求,并在1987年12月由IEEE标准化。它的出现为电子设计自动化(EDA)的普及和推广奠定了坚实的基础。由此,使用VHDL语言来设计数字系统是电子设计技术的大势所趋。   1 系统电路设计   系统由石英震荡器、分频部分、计数部分、显示部分、开始/停止使能和清零部分构成。分频器将晶振所提供的48 MHz信号分频成100 Hz时钟信号作为最低位计数器的计时信号,将六个计数器异步级联得到跑表时间数据,再经过数据选择器和显示译码器,以动态显示模式将显示译码器的段选信号分位输出给六个8段LED数码管显示,开始/停止使能可实现暂停/继续计时操作,清零部分完成系统的时间清零,为下次计时做准备。系统电路总体模块图如下。   2 各模块设计   2.1 分频器的设计   实验板提供了48 MHz的震荡信号,要求输出频率分别为1000 Hz和100 Hz。分频器的实现原理是基于计数器的方法设计的,通过对若干个震荡信号的计数来实现输出信号的翻转,故而实现了分频。   要得到100 Hz和1 Kz的方波,需要对48 MHz的晶振信号进行分频。要得到100 Hz的方波,需要480000分频,要实现480000分频,则输入源时钟信号clk每过480000/2即240000个上升沿,则对输出信号out100hz取反。同理,每经过24000个源时钟上升沿,对out1khz取反,得到1 KHz的信号。   2.2 计数器的设计   根据实验要求知,计数器由六个单极计数器级联实现,其中4个十进制计数器、2个六进制计数器。本实验方案采用同步级联实现。   本设计使用的是异步清零和同步使能,即当清零有效时,计数器立即清零,而当使能有效时,只有当时钟上升沿到来时,才进行暂停或开始计数的功能。使能输入即进位输入。首先先判断清零是否有效,当有效时,执行清零操作,count值为0。当清零无效时,并且使能有效是,进行计数。计数输出为四位二进制数countout。最后判断当计数值满并且使能有效时,进位输出有效。六进制计数器原理与十进制计数器类似。只是count_tmp值最大为“0101”。   2.3 使能控制的设计   使能控制是为了产生使能控制信号,在该控制信号作用下使输出发生翻转。使能输入(enable_in)每来一个上升沿,使能输出(enable_out)电平变化一次。即实现了每按一次按键,计数器在停止和开始计数之间切换。   2.4 显示控制的设计   显示控制模块应包含一个六进制计数器、六选一数据选择器和七段译码器。六进制计数器的时钟信号频率为1 kHz,计数输出作为位选控制信号sel(2:0)。数据选择器的地址控制信号为计数输出,数据选择器的数据端为要显示的六位数据mh(3:0),ml(3:0),sh(3:0),sl(3:0),ds(3:0),cs(3:0)。根据地址控制信号选择其中一路输出至译码器,译码器的输出作为段选控制信号led(6:0)。根据硬件电路,需设置一个译码使能信号G,G为低电平有效。   该模块里融合了一个六进制计数器,六选一数据选择器。通过分频器输出的1khz的时钟,控制六进制计数器计数(sel),使三位输出作为三八译码器的输入,从而控制8位数码管的位选以1khz进行扫描。又作为六选一数据选择器的地址选择输入,从而控制是哪一个数据作为六选一数据选择器的输出。这个输出经七段译码器后(led)作为数码管的

文档评论(0)

erterye + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档