基于FPGA的数字钟设计_第1页
基于FPGA的数字钟设计_第2页
基于FPGA的数字钟设计_第3页
基于FPGA的数字钟设计_第4页
基于FPGA的数字钟设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要 本设计为一个可调数字钟,具有时、分、秒计数功能,以24小时循环计数。本设计采用FPGA技术,以硬件描述语言VreilogHDL为系统逻辑描述手段设计文件,在QUARTUS2工具软件环境下,采用自顶向下的设计方法,由各个模块共同构建一个基于CPLD的数字钟。系统芯片采用6块74160实现了60进制(分、秒)、24进制(小时)的编译,由时钟模块、控制模块、计时模块、数据译码模块、显示模块组成。最终经过编译和仿真所涉及的程序,在可编程逻辑器件上下载验证,本系统能够完成时、分、秒的分别显示,可以在程序中直接改变初始值。关键词:数字钟 硬件描述语言VerilogHDL FPGA1.实验目的 本实

2、验主要内容涉及数字逻辑电路的设计、数字电路仿真软件Quartus 以及VHDL设计语言的学习与应用。实验目的在于让实验者掌握数字逻辑电路的设计方法和过程,并且能够熟练准确地设计出具有特定功能的较复杂数字逻辑电路,此外,实验者还应熟练掌握Quartus 软件的设计、仿真以及编译下载的使用方法。2 .课程要求 用Verilog硬件描述语言设计数字钟,实现: 1.具有时、分、秒计数显示功能,以二十四小时循环计时。 2.具有调节小时、分钟功能。 3.具有整点报时功能。50MHz3.系统设计总体方案分频网络计数模块秒模块时模块分模块编译显示模块4. 各模块电路具体实现 4.1 时钟分频模块module

3、div_clk(clk_50MHz,clk_1Hz,clk_1KHz,clk_500Hz);input clk_50MHz;output clk_1Hz,clk_500Hz,clk_1KHz;reg clk_1Hz,clk_500Hz,clk_1KHz;reg 24:0 cnt1;reg 24:0 cnt2;reg 24:0 cnt3;always (posedge clk_50MHz)begin if(cnt1 = 24999999) begin cnt1<=0; clk_1Hz=clk_1Hz; end else cnt1<=cnt1+1'b1; endalways (

4、posedge clk_50MHz)begin if(cnt2 = 24999) begin cnt2<=0; clk_1KHz=clk_1KHz; end else cnt2<=cnt2+1'b1;endalways (posedge clk_50MHz)begin if(cnt3 = 49999) begin cnt3<=0; clk_500Hz=clk_500Hz; end else cnt3<=cnt3+1'b1;endendmodule 4.2计数器模块的设计与实现 4.2.1秒显示模块的实现图4.2.1 秒钟显示模块4.2.2分钟显示模块的实

5、现图4.2.2 分钟显示模块4.2.3小时显示模块的实现图4.2.3 时钟显示模块4.3 数码管显示及译码模块module decode(clk_1KHz,hour_ten,hour_one,min_ten,min_one,sec_ten,sec_one,dig,seg);input clk_1KHz;input 3:0 hour_ten,hour_one,min_ten,min_one,sec_ten,sec_one;output 7:0 dig;output 7:0 seg;reg7:0 seg_re

6、g;reg7:0 dig_reg;reg3:0 dat_reg;reg2:0 count;always (posedge clk_1KHz)begin     if(count =5)count<=0;     else count<=count+1'b1;endalways (posedge clk_1KHz)begincase(count)  3'd0&#

7、160;: begin dat_reg<=hour_ten3:0;dig_reg<=8'b01111111;end  3'd1 : begin dat_reg<=hour_one3:0;dig_reg<=8'b10111111;end  3'd2 : begin dat_reg<=min_ten3:0; dig_reg<=8'b11011111;end  3'd3 

8、;: begin dat_reg<=min_one3:0; dig_reg<=8'b11101111;end  3'd4 : begin dat_reg<=sec_ten3:0; dig_reg<=8'b11110111;end  3'd5 : begin dat_reg<=sec_one3:0; dig_reg<=8'b11111011;end  d

9、efault : begin dat_reg<=0;dig_reg<=6'b000000;end  endcaseendalways (dat_reg)begin      case(dat_reg)           4'h0 : seg_reg<=8'hc0;   

10、60;        4'h1 : seg_reg<=8'hf9;           4'h2 : seg_reg<=8'ha4;           4'h3 : seg_reg<=8&#

11、39;hb0;           4'h4 : seg_reg<=8'h99;           4'h5 : seg_reg<=8'h92;           4'h6&

12、#160;: seg_reg<=8'h82;           4'h7 : seg_reg<=8'hf8;           4'h8 : seg_reg<=8'h80;        

13、   4'h9 : seg_reg<=8'h90;           default : seg_reg<=8'hff;      endcaseendassign dig=dig_reg;assign seg=seg_reg;endmodule     

14、60;            4.4 数字钟电路模块图4.4.1 数字钟整体模块5 . 系统仿真及硬件下载5.1系统仿真图5.1.1 秒钟仿真结果图5.1.2 分频仿真结果5.2硬件下载 经下载后,能实现课程设计要求。但因设计时间匆忙,并未拍摄照片。6 . 课程总结 通过本次EDA设计,掌握了较为复杂逻辑电路的设计方法,了解了用VHDL语言编程设计电路的一般方法。同时锻炼了自己的分析理解能力和动手能力,并且加深了对数电相关知识的理解。实验时需要十分细心,一不小心就容易出错,一

15、旦出现错误,就要马上耐心地检查线路,分析出错原因,找到错误,并加以更正。如果不是接线问题,那再去思考一下,是不是设计的原理图有问题。虽然这不是一个容易的过程,但在这个过程中,锻炼了自己的各项能力,令我受益匪浅。其实,实验的过程也是锻炼耐力的过程。在添加闹钟功能时,我们曾遇到过困难。本来我们的报时电路是对的,可加上闹钟功能后,非但闹钟到时刻不响,就连原本的整点报时也不响了,经过一番仔细的盘查,我们发现原来是我们错用了或门,用高电平和发声频率相或,所以才会没有声音。另外,在给闹钟增加音乐功能时也花了不少力气,刚开始在网上找的相关资料都不能用,最后终于找到了一个可以播放音乐的资料,我们将找到的VHDL源程序输入到自己的工程,终于成功让闹钟播放音乐闹铃了,那一刻,我们相当开心,因为这是我们通过努力才得到的收获。 这次EDA设计锻炼了我很多方面的能力,为将来的继续学习和工作都积累了宝贵的经验。希望学校能增加这种实践环节来培养我们

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论