第一范文网 - 专业文章范例文档资料分享平台

数字系统设计与verilogHDL课程设计

来源:用户分享 时间:2025/6/29 14:11:35 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

图计时模

如图所示,第一幅图为秒计数器计数至59后,向分计数器进位清零重新计数。第二个跳跃是分59向时进位。第二幅图中,最后一个跳跃是时分秒全部清零。根据时间轴的间断,可以观察到此现象。 闹铃模块

闹钟模式是否开启,需要外部信号输入,让数字钟进入闹铃界面,还要分别是整点报时还是闹铃功能,且要保证在设定闹铃时数字钟能够正常工作。这就要求在闹铃和数字钟的走时功能互不影响。本实验用alarmon作为闹钟设定使能键。00时,正常计时;01进入闹钟设定状态。

本闹铃模块另外含有简单计时功能,这样与计时模块不产生冲突,当时间达到整点时,开启整点报时闹铃模块,当达到闹钟时间,进入闹钟闹铃模块。其他全部置零,计时模块。

图闹铃模

如图所示,当alarmon选择00时,闹铃模块进入计数模块,没有闹铃输出。接着输入为01,闹钟铃声输出,进入闹钟闹铃模式;输入为10时,输出为嘀嘀嘀读,为整点报时铃声的输出。 嘀嘀嘀闹铃声模块

由前面闹铃模块选择闹铃声后,直接跳入到此闹钟闹铃嘀嘀嘀模块,嘀嘀嘀铃声分位三段,且设置不同周期,当mscount等于第一声间距乘以3加上二声间距乘以2加上三声之后时间间距减1时,为闹铃的最大周期,清零。当时间周期处于第一声或二声间距或三声之后周期之间时,闹铃响,总共响三声。其他情况下,闹铃无输出。

图嘀嘀嘀闹铃声模块

如图所示,当进入闹钟闹铃时,闹钟发出ddd声音,两个滴声间距为20马上,连续三个低声之后间距为50ms,且以三声为周期。 嘀嘀嘀—嘟声音模块

嘀嘀嘀嘟声音模块与嘀嘀嘀声音模块类似,只不过嘀嘀嘀声过后不是控制下一声滴的时间间距,而是控制嘟的到来。嘟的声音比滴的声音长。当进入嘀嘀嘀嘟模块后,如果mscount小于于滴声长度加上滴滴之间的时间间距再乘3再加上嘟的声音加10时,mscount在脉冲到来时自加,当mscount大于零小于SOUNDSPACE、在SOUNDSPACE加上两滴间距到再加SOUNDSPACE时等(详见程序清单),嘀嘀嘀嘟响起。

图嘀嘀嘀—嘟声音模块

如图所示,在50ps周期的clk下,SOUNDSPACE为300ms,两滴时间间距为200ms,嘟的长度为600ms情况下,在整点报时开启时,在mscount0到220之间响起嘀嘀嘀嘟。 闹钟时间设定模块

闹钟设定时,需要外部信号输入,让数字钟进入闹钟界面,且要保证在设定闹铃时数字钟能够正常工作。这就要求在设定闹铃和数字钟的校时校分功能互不影响。本实验用enablel作为闹钟设定使能键。0时,正常计时;1进入闹钟设定状态。设定闹铃时间电路和计时电路中的校时校分的原理基本一致,不同之处在于,在闹铃设定完毕返回时间显示状态时获其他任何没有重新设定闹铃状态时,闹钟时间都不会改变。另外,在闹钟设定中,分位对时位没有进位。当sel为10时,对时进行设定;sel为01时,对分进行设定,当rest置一时,复位清零。本模块采用基准时钟。

图闹钟时间设定模块

如图所示,当rest为低电平,enable高电平时,sel为01时,在inc的作用下对十进制的分秒进行设定;当sel10时,同样的对时位进行设定。 将输出解码成时分秒选择模块

将输出解码成时分秒选择,并且分闹钟设置还是计时模式。为了不产生冲突,Alarmmode为是否设置闹钟模式,checkmode为是否设置调整时间模式,且相互之间不能同时有效。当reset有效时,对所有输出清零。

图将输出解码成时分秒选择模块

如图所示,当rest有效时,输出全部清零;当alarmmode高电平有效时,对闹钟时分位的十分位进行调整输出;checkmode高电平有效时,可以对调整时间的时分秒进行调整。 去抖模块

为实现可靠调时,常采用防抖动开关克服开关接通或断开过程中产生的一串脉冲式振动,一般由D触发器延时功能实现。这里选择的是计数消抖,即只当有效电平到来后开始计数,当计数值大于一定值后再输出该有效电平,否则不输出,从而达到消抖目的。

图去抖模块

如图所示,当clk下降沿到来时,counter进行计数自加;当clk_use下降到来时,输出电路输出输入数据。完成了因抖动带来的错误。 译码显示模块

此模块是用于数码管的动态显示,采用七段显示数码管,因此输入长度定义四位,输出定义八位,将四位输入译码成对应的七位扫描数值。

0:dataout<=7'b1000000; 1:dataout<=7'b1111001; 2:dataout<=7'b0100100; 3:dataout<=7'b0110000; 4:dataout<=7'b0011001; 5:dataout<=7'b0010010; 6:dataout<=7'b0000010; 7:dataout<=7'b1111000; 8:dataout<=7'b0000000; 9:dataout<=7'b0010000; 10:dataout<=7'b0001000; 11:dataout<=7'b0000011; 12:dataout<=7'b1000110; 13:dataout<=7'b0100001; 14:dataout<=7'b0000110; 15:dataout<=7'b0001110;

图译码显示模块

如图所示,当输入为3时,ledout输出为00110000,对应数码管显示为3。 顶层模块

顶层模块中,调用各个模块来实现多功能数字钟。

首先是建立在计时模块上完成整个数字钟的走时,计时模块又是建立在50mhz分频至1hz、八位全加器、十六进制计数器等模块上完成整体的基本走时。然后可以建立闹钟模块,且设置modestate置00为计时模式,10选择闹钟模块,01手动调整模式,11非法模式来避免闹钟模块与走时模块的冲突。其次在闹铃模块中,ld_alert是否设置了闹铃控制闹铃的开关,mcheck手动调整时间,turn来控制调整的时间在分与时的选择,change是调整信号,alert为闹铃输出。再通过led输出时分秒。

译码显示电路脉冲发生电路 计时电路 校分校时电路 清零电路 图顶层模块 报时电路 如图所示,在clock为1ps周期情况下,设置modestate置00为计时模式,10选择闹钟模块,01手动调整模式,11非法模式,在闹铃模块中,ld_alert高电闹铃开,mcheck为高电平则可以手动调整时间,turn控制了调整的时间在分与时的择,change有效则改变调整的数值,alert有效闹铃输出。

ledhourl,led_hour0,led_minul,led_minu0,led_secl,ledsec0输出时分秒。 5.实验总结

5.1调试中遇到的问题及解决的方法

1、编程时,最常见也是最头疼的就是在各个模块调试的时候显示句子无定义,导致程序无法编译,但整个模块的语法没有错误。

解决办法:将各个模块之间调试有先后顺序,且将所有模块调试放在一个文件夹存放,以致可以相互调用。

2、经常导致语法错误,如:“;”没有写上,变量类型没有预先标明,前后变量名字由于缺少一个或多一个字母而导致出错。

解决办法:对照错误,认真检查程序,看哪个地方的标点,变量没有写上或标明。 3、进行编译或波形仿真时,经常得到的不是预想中的结果。

解决办法:弄明白该模块实现什么功能,调整好输入变量进行调试,不能完全采用随机变量。在方面观察的情况下,可以采用高电平或低电平代替。将需要编译或进行仿真的实体文件置顶,经检错无误后,进行波形仿真,在仿真之前需要合理设置仿真结束时间和信号周期。 实验中积累的经验

1、系统设计进要行充分的方案论证,不可盲目就动手去做;

2、实验中对每一个细节部分都要全面思考,要对特殊情况进行处理; 3、对于数字系统,要考虑模块定义使用先后顺序问题; 4、数字电路的理论分析要结合时序图;

5、遇到问题,要顺藤摸瓜,分析清楚,不可胡乱改动,每做一次改变都要有充分的理由;

6、模块化设计方法的优点在于其简洁性,但是在实验设计中也发现,在实验最终结果确定之前,要尽量减少模块重叠嵌套。

7、遇到问题花了很长时间没有解决掉,要学会向他人请教,别人的不经意一点,可能就能把自己带出思维死区。 心得体会

作为当代大学生,将知识完全局限在课本上,缺乏理论实践,是普遍的一大成长弊端。而理论实践,又完全建立在课本知识上,因此,我们要学好专业知识和技能,这样在用到时才能得心应手;要有自学新知识的能力,对于陌生的东西要根据已掌握的知识来帮助自己尽快了解它;遇到困难时,首先要自己想办法解决,实在行不通时就要像老师和同学请教。

多功能数字钟,在实际应用中微不足道,但其中的设计流程思维与实践能力以及实践遇到的一些相关问题,让我们不容小视。设计是一个十分严谨的过程,容不得随意和马虎。要想快速而高效地完成一项设

计,必须先有一个清晰明了的设计思路,设想好一个整体框架,然后在此基础上,逐渐将各个部分功能进行完善。虽不是第一次在实验室接触Quartus,但通过两天的课程设计,让我受益匪浅,也让我真正明白理论与实践相结合的重要性。通过具体实践才能让自己清楚哪些知识已经掌握,哪些知识仍需巩固加强。但正所谓坚持就是胜利,要想取得成功,必须要有努力付出,这样所取得的结果才更有意义。

与此同时,我也对EDA以及VHDL语言有了进一步了解,对于其结构、语法、功能等认识不少。当然,我目前所做的还仅仅只是一些基本操作,要想真正将其融会贯通还需要今后更多的学习与实践。 6.参考文献

[1]王金明编数字系统设计与VerilogHDL(第四版)电子工业出版社2008年10月 [2]南京理工大学电子技术中心编EDA设计实验指导书2008 百度文库

搜索更多关于: 数字系统设计与verilogHDL课程设计 的文档
数字系统设计与verilogHDL课程设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3mkcx7bxve3fmdy9ul8q7b8vd5385a00y2g_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top