EDA课设—数字钟设计说明书.docVIP

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 目录 TOC \o 1-3 \h \z \u 第一章 系统工作原理 1 第二章 程序模块分析 2 2.1 时钟分频模块 2 2.2 时钟运行模式模块 2 2.3扫描数码管及蜂鸣模块 4 2.4数码管显示模块 5 第三章 时序仿真 7 第四章 总结 9 参考文献 9 附录 10 基于Verilog HDL设计的多功能数字钟 本文利用Verilog HDL 语言自顶向下的设计方法设计多功能数字钟, 在本文中采用Verilog HDL 语言设计多功能数字钟, 借助其功能强大的语言结构, 简明的代码描述复杂控制逻辑设计, 与工艺无关特性, 在提高工作效率的同时达到目的, 并可以通过Verilog HDL 语言的综合工具进行相应硬件电路的生成, 突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点, 具有传统逻辑设计方法所无法比拟的优越性。此程序通过下载到FPGA 芯片后,可应用于实际的数字钟显示中。 第一章 系统工作原理 工作原理:时钟系统由八个数码管显示组成,其中第1、2个显示的为时的高位和低位,第3个数码管显示的是分隔符“-”,第4、5个为分的高低位,第6个也为隔符“-”,第7、8个为秒的高低位。时钟工作时用到两个频率,一个是系统频率Clk,主要用来扫描数码管和分频,第二个是时钟工作频率Clk_1HZ(由Clk分频得来),按下复位键,秒分时显示清零,工作时Clk(489HZ)不断通过3-8译码器值的改变来扫描时钟的八位数码管,由于人眼分辩不出这么高的频率,所以看到的是八个数码管一直同时亮着,与此同时控制端连着七段数码管的七位不断提供秒时分的高低位译码到数码管上显示,当Clk计数到244次(500ms)时,Clk_1HZ翻转一次,这样Clk_1HZ的周期就为1s整,每个Clk_1HZ的上升沿给秒的低位加1。按调时键S1进入调时模式,按下开关时程序里设置扫描到时的高低位时不显示,同时时的低位加1,松开开关时再显示出来,以此实现闪烁的功能,调分键也是同理。 图1、系统原理图 各个输入输出端口定义如下: Clk: 489HZ 的系统基准时钟输入。作为七段码管扫描频率。将其489分频可得到1HZ的数字钟工作频率。 Rst: 系统复位信号, 低电平有效。复位后显示00-00-00。 S1: 调节小时信号, 低电平有效。每按下一次, 小时增加一个小时。 S2: 调节分钟信号, 低电平有效。每按下一次, 分钟增加一个分钟。 Spk: 输出到扬声器, 产生嘀、嗒的报时声。 Sel: 七段码管扫描驱动。因为是八个七段码管,所以Sel 为三位总线。扫描频率为489HZ, 由于人眼的视觉效果, 呈现在眼前的便是整体的时-分-秒显示。 Display: 七段码管显示输出。 除此之外另设了几个寄存器: Clk_1HZ:1HZ的数字钟工作频率 Clk_Count1:产生1Hz 时钟的分频计数器 Music_Count:产生扬声器声音频率的分频计数器 SECL,SECH:秒的低位和高位 MINL,MINH:分的低位和高位 HOURL,HOURH:时的低位和高位 Disp_Temp:显示存储中间量 第二章 程序模块分析 2.1 时钟分频模块 always@(posedge Clk) begin if(Clk_Count1==244) //对计数器进行判断, 以确定Clk_1HZ 信号是否反转 begin Clk_1HZ=~Clk_1HZ; Clk_Count1=0; end else Clk_Count1=Clk_Count1+1; end 时钟分频模块实现的功能的把系统时钟(489HZ)分频为Clk_1HZ(1HZ)提供时钟工作频率,Clk_Count1为定义的一个计数器,当计到第244次时,刚好经过500ms(略有误差),Clk_1HZ翻转一次,人为制造出一个1HZ的时钟。 2.2 时钟运行模式模块 always@(posedge Clk_1HZ or negedge Rst) if(!Rst)//系统复位 begin SECL=0; SECH=0; MINL=0; MINH=0; HOURL=0; HOURH=0; end else begin if(!S1) //调节小时 begin if(HOURL==9) begin HOURL=0; HOURH=HOURH+1; end else begin if(HOURH==2HOURL==3) begin HOURL=0;

文档评论(0)

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

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

1亿VIP精品文档

相关文档