ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:553.84KB ,
资源ID:7294473      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7294473.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(完整版基于FPGA的电子钟的毕业设计论文.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

完整版基于FPGA的电子钟的毕业设计论文.docx

1、完整版基于FPGA的电子钟的毕业设计论文学士学位论文 论文题目: 基于FPGA的数字钟的设计 院(部)名 称: 电气信息工程学院 学 生 姓 名: 专 业: 测控技术与仪器 学 号: 指导教师姓名: 论文提交时间: 2012年4月 25 日 论文答辩时间: 2010年5月 6 日 学位授予时间: 摘 要本设计为一个多功能的数字钟,具有时间日期显示功能,以24小时循环计数;具有校时、跑表以及任意时刻闹钟功能。本设计采用EDA技术,以硬件描述语言VerilogHDL为系统逻辑描述手段设计文件,在Quartus ii工具软件环境下,采用自顶向下的设计方法,由各个基本模块共同构建了一个基于FPGA的数

2、字钟。系统主要由主分频模块、控制模块、时间及其设置模块、时间显示动态位选模块、显示模块、秒表模块、日期显示与设置模块、闹钟模块等8个模块组成。本系统能够完成日期和时间的分别显示,由按键输入进行数字钟的校时、清零、启停功能。关键词:数字钟,硬件描述语言,VerilogHDL,FPGAABSTRACTThis design for a multi-function digital clock, with time date to show the function to 24 PaoBiao and, with the alarm clock function at any time.The us

3、e of EDA design technology, language VerilogHDL description logic means for the system design documents, in Quartus ii tools environment, a top-down design, by the various modules together build a FPGA-based digital clock.System mainly by the main points frequency module, control module, time and se

4、t module, time display dynamic a choose module, display module, a stopwatch module, date display and set module, alarm clock module eight modules. This system can finish date and time display respectively, the key of input of the digital clock, reset, and when the1 stop function.Keywords :digital cl

5、ock, language, VerilogHDL, FPGA第一章 前 言 11.1 选题的目的、意义 11.2 课题研究的内容 2第二章 系统总体设计方案 32.1 数字钟的顶层电路 32.2 数字钟的工作原理 4第三章 单元电路设计 63.1 分频模块(fidv) 63.2 时钟主控制模块(maincontrol) 93.3 时间及其设置模块(time_auto_and_set) 133.3.1 时间计数模块(timepiece_main) 133.3.2 时间设置模块(timeset) 153.3.3 时间数据多路选择模块(time_mux) 173.4 时间显示动态位选模块(time

6、_disp_select) 183.5 显示模块(disp_data_mux) 213.6 跑表模块(stopwatch) 263.7 日期显示与设置模块(date_main) 273.7.1 日期自动工作模块(autodate) 283.7.2 日期设置模块(setdate) 293.7.3 日期控制模块(datecontrol) 293.8 闹钟模块(alarmclock) 29第四章 总结与展望 364.1 总结 364.2 展望 36致谢 37参考文献 38附录一 英文原文 39附录二 中文翻译 49第一章 前 言1.1 选题的目的、意义现代社会的标志之一就是信息产品的广泛使用,而且是

7、产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。而可编程逻辑器件(如CPL

8、D、FPGA)的应用普及,为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展1-4。本设计采用的VerilogHDL是目前应用最为广泛的硬件描述语言,能支持算法级,寄存器级,逻辑级,开关级、系统级和版图级等各个层次的设计和描述;Verilog HDL进行设计最大的优点是其工艺无关性,这使得工程师在功能设计,逻辑验证阶段可以不必过多考虑门级及工艺实现的具体细节,只需根据系统设计的要求施加不同的约束条件,即可设计出实际电

9、路,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点5-10。钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些都是以钟表数字化为基础的。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求,因此研究数字钟以及扩大其应用有着非

10、常现实的意义11-12。1.2 课题研究的内容本设计主要研究基于FPGA的数字钟,要求时间可以24小时制或12小时制,显示时间和日期。具有校时以及整点报时、任意时刻闹钟、跑表等功能,可以对时间及日期进行单独校对,使其校正到标准时间。第二章 系统总体设计方案2.1 数字钟的顶层电路将各个主模块综合成数字钟系统,其包括:fidv分频模块,maintrol时钟主控制模块,time_auto_and_set时间及其设置模块,time_disp_select时间显示动态位选模块,disp_data_mux显示模块,stopwatch跑表模块,date_main日期显示与设置模块及 alarmclock闹

11、钟模块,该系统顶层电路Top如图2-1所示。图2-1 数字钟顶层电路图2.2 数字钟的工作原理图2-2 数字钟整体框图功能键SW3用来选择不同的工作模式:时间正常显示功能、时间调整与显示、秒表功能、闹钟设置与查看、日期显示、日期调整与设置。调整键SW1:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的位置选择按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;4号键功能模式,即闹钟设置与查看时,同样用作时、分、秒的移位,按一下,将会实现“时-分-秒”的依次移位,便于在特定位置进行调整;6号

12、键功能模式,即日期调整与设置时,用作月、日的移位,按一下,将会实现“月-日”的依次移位,便于在特定位置进行调整。调整键SW2:主要用于闹钟设置、日期显示与调整、秒表、时间调整与设置中的调整按钮,与功能键配合使用。2号键功能模式,即时间调整与设置时,用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;4号键功能模式,即闹钟设置与查看时,同样用作时、分、秒的调整,按一下,将会使得当前调整键1选择的位置数字增加1;6号键功能模式,即日期调整与设置时,用作月、日的移位,按一下,将会使得当前调整键1选择的位置数字增加1。分频电路将1KHZ的输入信号分频为1HZ的计时模块信号源、60H

13、Z的信号跑表基准时钟信号源和200HZ的数码管动态显示扫描频率。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器满24后向日期进位。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。计时出现误差时,可以用时间设置和日期设置电路调整时间和日期。在控制信号中除了一般的校时信号外,还有自动走时使能信号。控制信号由按键输入。显示由数码管完成。第三章 单元电路设计3.1 分频模块(fidv)该模块完成全局时钟信号分频输出200Hz、60Hz、1Hz的三种时钟信号。分频电路的流程图如图3-1所示,逻辑框图如图3-2所示。仿真波形图如图3-3所示。图 3-1 分

14、频电路流程图图3-2 分频电路模块逻辑框图该电路的VerilogHDL程序如下:module fdiv(clk,f200hz,f60hz,f1hz);output f200hz,f60hz,f1hz;input clk; 1KHz input reg f200hz,f60hz,f1hz;integer CNT1=0,CNT2=0,CNT3=0; always (posedge clk)begin if(CNT1 4) begin CNT1 = CNT1 + 1; f200hz = 1b0; end else begin CNT1 = 0; f200hz = 1b1; end end alway

15、s (posedge f200hz)begin if(CNT2 2) begin CNT2 = CNT2 + 1; f60hz = 1b0; end else begin CNT2 = 0; f60hz = 1b1; end end always (posedge f200hz)begin if(CNT3 199) begin CNT3 = CNT3 + 1; f1hz = 1b0; end else begin CNT3 = 0; f1hz = 1b1; end endendmodule图 3-3 分频模块仿真波形图3.2 时钟主控制模块(maincontrol)该模块实现对各个功能模块的整

16、体控制,包括对时间显示与调整、日期显示与调整、闹钟显示与调整、秒表操作等的控制。主控制电路模块的逻辑框图如图3-4所示。仿真波形图如图3-5所示。图3-4 时钟主控制电路模块逻辑框图图3-5 时钟主控制模块仿真波形图该模块的VerilogHDL程序如下:modconule maintrol(SW3, 功能号选择 Timepiece_EN, 时间自动显示使能 TimeSet_EN, 时间调整与设置使能 Stopwatch_EN, 跑表功能使能 Alarmclock_EN, 闹钟功能使能 Date_EN, 日期显示使能 DateSet_EN); 日期调整与设置使能output Timepiece_

17、EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN;input SW3;reg Timepiece_EN,TimeSet_EN,Stopwatch_EN,Alarmclock_EN,Date_EN,DateSet_EN;reg 2:0 Function; 存放功能号always (posedge SW3)begin if(Function 3b101) Function = Function + 3b1; else Function = 3b0; case(Function) 时间自动显示 3b000: begin Timep

18、iece_EN = 1b1; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end 时间调整与设置 3b001: begin Timepiece_EN = 1b0; TimeSet_EN = 1b1; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end 跑表 3b010: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0

19、; Stopwatch_EN = 1b1; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b0; end 闹钟设置 3b011: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b1; Date_EN = 1b0; DateSet_EN = 1b0; end 日期显示 3b100: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock

20、_EN = 1b0; Date_EN = 1b1; DateSet_EN = 1b0; end 日期调整与设置 3b101: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSet_EN = 1b1; end default: begin Timepiece_EN = 1b0; TimeSet_EN = 1b0; Stopwatch_EN = 1b0; Alarmclock_EN = 1b0; Date_EN = 1b0; DateSe

21、t_EN = 1b0; end endcaseendendmodule3.3 时间及其设置模块(time_auto_and_set)该模块主要完成时间的自动正常运行与显示,以及在相应的功能号下,实现时间的调整与设置。该模块分为三个小模块:时间计数模块、时间设置模块和时间数据多路选择模块。该模块顶层电路如图3-6所示:图3-6 时间及其设置模块顶层电路图该模块逻辑框图如图3-7所示:图3-7 时间及其设置模块逻辑框图3.3.1 时间计数模块(timepiece_main)该模块主要完成时间的自动增加与显示功能,即为正常的自动模式运行。该模块分为三个小模块:秒计数子模块、分计数子模块和时计数子模块

22、。该模块电路图如图3-8所示:图3-8 时间计数模块电路图该模块逻辑框图如图3-9所示。仿真波形图如图3-10所示。图3-9 时间计数模块逻辑框图图3-10 时间计数模块仿真波形图秒计数子模块逻辑框图如图3-11所示。图3-11 秒计数子模块框图 EN是时间显示信号,当Timepiece_En=1时有效;clk是秒脉冲输入端口;输出端口second_data03.0是秒时钟的低位,second_data13.0是高位;EO端口是进位输出端口,当秒计数到59时输出高电平,其它时候输出低电平。分计数子模块的设计原理与秒模块的类似。逻辑框图如图3-12所示。图3-12 分计数子模块框图时计数子模块逻

23、辑框图如图3-13所示。图3-13 时计数模块框图3.3.2 时间设置模块(timeset)该模块主要完成对时间的设置相关的闪烁显示控制以及时间中的小时、分钟、秒等数据的改变,流程图如图3-14所示,逻辑框图如3-15所示,波形仿真图如3-16所示。图3-14 时间设置模块流程图图3-15 时间设置模块框图图3-16 时间设置模块波形仿真图表3-1 时间设置模块的端口说明输入端口功能TimeSet_EN时间设置使能,当其电平为高时,时间设置有效SW1,SW2调整键1与调整键2输入信号hour1,hour0当前时间的小时数输入minute1,minute0当前时间的分钟数输入second0,se

24、cond1当前时间的秒数输入输出端口功能hour_set1,hour_set0设置时间后的小时数minute_set1,minute_set0设置时间后的分钟数second_set1,second_set0设置时间后的秒数disp_drive设置中的闪烁显示设置当Timeset_EN为1时,即实现时间设置功能。SW1实现时间格式中小时高、低位,分钟高、低位,秒高、低位的位选,即每出现一个SW1上升沿,disp_drive的相应数值加1(选择具体的需要调整的位置)。SW2实现相应得位的数值的调整,即每出现一个SW2上升沿,相应位的数值增加1。3.3.3 时间数据多路选择模块(time_mux)该

25、模块用来选择向显示单元传输所要显示的数据,流程图如图3-17所示,逻辑框图如图3-18所示,波形仿真如图3-19所示。图3-17 多路选择模块的流程图表3-2 多路选择模块的端口说明输入端口功能TimeSet_EN时间设置使能信号hour1,hour0自动模式中当前时间的小时数输入minute1,minute0自动模式中当前时间的分钟数输入second0,second1自动模式中当前时间的秒数输入hour_set1,hour_set0时间设置后的小时数输入minute_set1,minute_set0时间设置后的分钟数输入second_set1,second_set0时间设置后的秒数输入输出端

26、口功能hour_1,hour_0当前需要显示的小时输出minute_1,minute_0当前需要显示的分钟输出second_0,second_1当前需要显示的秒输出图3-18 时间数据多路选择模块框图图3-19 时间数据多路选择模块波形仿真图3.4 时间显示动态位选模块(time_disp_select)该模块用来分时显示时间数据,TimeSet_EN表示时间设置使能,Time_EN表示时间自动显示使能,clk_1kHz用于动态显示时,clk_200Hz用于闪烁显示时间,timeset_disp_drive表示时间设置数据显示的同步信号,time_disp_select表示显示动态位选输出信号

27、。当TimeSet_EN为0,Time_EN为1时,以clk_1kHz为时钟信号,输出自动显示的时间,按位依次显示;当TimeSet_EN为1,Time_EN为0时,则以clk_200Hz为时钟信号,输出以timeset_disp_drive对应的位置。逻辑框图如图3-20所示,波形仿真如图3-21所示。图3-20 时间显示动态位选模块框图图3-21(a)时间显示动态位选模仿真波形图图3-21(b)时间显示动态位选模仿真波形图该模块的VerilogHDL程序如下:module time_disp_select(clk_1khz,clk_200hz,Time_EN,TimeSet_EN,time

28、set_disp_drive,time_disp_select); output 5:0 time_disp_select;input clk_1khz;input clk_200hz;input Time_EN;input TimeSet_EN;input 2:0 timeset_disp_drive;reg 5:0 time_disp_select;reg 2:0 auto_disp_drive;reg clk;reg 2:0 disp_drive;always (posedge clk_1khz) *实现自动运行模式中的动态显示“位选的驱动”*begin if(auto_disp_dri

29、ve 3b101) auto_disp_drive = auto_disp_drive + 3b1; else auto_disp_drive = 3b0;endalwaysbegin *实现自动运行模式中时间动态显示位选驱动与时间设置中的时间动态显示位选驱动的二选一* if(Time_EN = 1b1) begin clk= clk_1khz; disp_drive = auto_disp_drive; end else if(TimeSet_EN = 1b1) begin clk= clk_200hz; disp_drive = timeset_disp_drive; endendalways (posedge clk)begin case(disp_drive) 3b000: time_disp_select = 6b100000; 3b001: time_disp_select = 6b010000; 3b010: time_disp_select = 6b001000; 3b011: time_disp_select = 6b000100; 3b100: time_disp_select = 6b000010; 3b101: time_disp_select = 6b00

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1