课程设计报告---实时时钟电路设计.docx_第1页
课程设计报告---实时时钟电路设计.docx_第2页
课程设计报告---实时时钟电路设计.docx_第3页
课程设计报告---实时时钟电路设计.docx_第4页
课程设计报告---实时时钟电路设计.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

河海大学计算机与信息学院课程设计报告题 目 实时时钟电路设计 专业、学号 授课班号 学生姓名 指导教师 完成时间 课程设计(报告)任务书(理 工 科 类)、课程设计(报告)题目: 实时时钟电路设计 、课程设计(论文)工作内容一、 课程设计目标 硬件描述语言是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。不论理论学习还是实际应用,都离不开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。hdl项目设计的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。二、任务要求及研究方法1.任务及要求题目:实时时钟电路设计要求:(1)设计一个数码管实时显示时、分、秒的数字时钟(24小时显示模式);(2)为了演示方便,应具有分钟、小时快进功能;(3)时、分、秒设置功能(选作)。2.研究方法(1)首先得查看试验箱的硬件结构和已有的硬件设备,在试验箱上,用到的配件有2排数码管,2个led灯,和四个按键。(2)软件部分大概有分频,计数,调速,设置,和动态显示部分。这里需要了解晶振后在编分频程序。整个部分会有一些算法需要查找相关的文件和理解课本上的语法。(3)分部调试,分频是整个程序的基础,首先计数要一秒计数一次,显示扫描时是1khz左右扫描一次,还有就是去抖也是需要不同的频率的。接下来在按照编的步骤一步一步的调试。三、课程设计预期效果1、一个按键控制复位。2、一个按键控制“设置”或“时钟”功能。3、一个按键控制加速。4、一个按键在设置“时”与“分”间切换。5、数码管能够显示预期的结果。学生姓名: 专业年级: 自动化 摘 要实时时钟(rtc)作为系统同步或时间标志已被广泛应用于各种电子产品,利用dallas semiconductor提供的多种类型的rtc芯片,用户在设计中可方便地针对具体应用来选择相应的芯片。文中讨论了一些与实时时钟晶振分频以及电路设计相关的问题。在电路设计中使用的时钟格式主要有三种:bcd码、二进制码、未格式化的二进制计数值。其中bcd码比较通用,因为它的时间和日期可以直接显示,且不需要进行数据转换,每8位寄存器表示一个二位数,对于某些特殊的时间和日期,由于不占用全部8位数据,因此,不用位可以充当一些特殊功能(如用作读/写位),也可以在硬件读取时时终保持固定状态(1或0)。本设计要求就是用vhdl语言实现实时时钟的时,分,秒显示及设置功能。在多番努力下,实现了实时时钟时,分,秒显示,时,分设置,及加速的功能,并添加了两个led灯以显示当下操作的功能。晶体振荡器输出经过分频后会产生1hz的基准来刷新时间。实际运行时遇到了诸多问题,如语法错误,文件名不一致,逻辑错误。但终得以解决。 【关键词】实时时钟 晶振 分频abstractreal-time clock (rtc) as synchronization or time symbol has been widely applied in all kinds of electronic products, using the dallas semiconductor provide various types of rtc chip in design, user can easily in specific application will choose corresponding chips. this paper discusses some and real-time clock crystals and separate frequency circuit design related problems. in a circuit design uses clock format basically has 3 kinds: bcd, binary code, not the formatting of binary count value. one bcd compare general, because its the time and date can directly display, and need for every 8 bits of data transfer, said a register double-digit, for some special time and date, because do not occupy all 8 bits of data, therefore, need not bits can act as some special function (such as used to read/write digits), also can be in hardware read always always maintain fixed state (1 or 0). this design requirement is with vhdl language realize real-time clock, points, seconds display and setting function. in repeated efforts, realizes real-time clock, points, seconds, points, according to the function, and accelerate setting, and add two led lamp with display current operation function. crystal oscillator frequency output after points after 1hz benchmarks can produce to refresh time. actual operation have met with many problems, such as grammar mistakes, filename inconsistencies, logic errors. but eventually settled.【key words】 real-time clock (rtc),crystal oscillator,frequency第一章 系统设计第一节 课题目标 硬件描述语言hdl是一种用形式化方法描述数字电路和系统的语言。利用这种语言,数字电路系统的设计可以从上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(eda)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接下去,再用专用集成电路asic或现场可编程门阵列fpga自动布局布线工具,把网表转换为要实现的具体电路布线结构。 第二节 设计方案1、时钟计数模块有分频得到的1hz作为秒钟的计数时钟,在计数达到59秒时置minclk作为秒钟的计时时钟,同时秒钟置0,在计数达到59分时置hourclk作为时钟的计时时钟,同时分钟置0。各个时间寄存器串行连接的方法,首先对1hz的时钟加1计数,输出作为下一个寄存器的输入时钟,依次得到分、小时。当对时钟写入数据时,直接将各个寄存器置数,输出作为写入的数据,然后在此基础上正常计数。每个时钟寄存器采用二进制计数方式,直观的显示时间。assign ct1=(num3&clk)|(!num3&m_clk); /ct1 用于计时、校时中的分钟计数assign cta=(num4&clk)|(!num4&h_clk); /cta 用于计时、校时中的小时计数2、计数和设置调整模块always (posedge clk_1hz) /秒计时和秒调整进程 if(!(sec18h59)|(!hm)&(!m) begin sec1=0; if(!(!hm)&(!m) minclk=1; end else begin if(sec13:0=4b1001) begin sec13:0=4b0000; sec17:4=sec17:4+1; end else sec13:0=sec13:0+1; minclk=0; endassign m_clk=minclk|count1;always (posedge ct1) /分计时和分调整进程 begin if(min1=8h59) begin min1=0; hclk=1; end else begin if(min13:0=9) begin min13:0=0; min17:4=min17:4+1; end else min13:0=min13:0+1; hclk=10000000) begin z=0; clk_1hz=1; end else begin z=z+1; clk_1hz=0; end end4、数码管显示模块 在硬件上有8个数码管,当需要显示时间时,需要动态扫描,在本程序中,利用的是1khz扫描。首先,选择好要显示的数码管,在把要显示的数据代码给它。显示时钟时,需要按顺序把每位的代码赋值给数码管。见下例: always (posedge clk_1k) begin case(i) 0 :begin ledcom=6b111110;end 1 :begin ledcom=6b111101;end 2 :begin ledcom=6b111011;end 3 :begin ledcom=6b110111;end 4 :begin ledcom=6b101111;end 5 :begin ledcom=6b011111;end endcase if(i=0) data_in=sec13:0; if(i=1) data_in=sec17:4; if(i=2) data_in=min13:0; if(i=3) data_in=min17:4; if(i=4) data_in1=hour13:0; if(i=5) data_in1=hour17:4; i=i+1; if(i=6) i=0; end always ( data_in) case(data_in) 4b0000 : data_out = 7b1000000; /0 4b0001 : data_out = 7b1111001; /1 4b0010 : data_out = 7b0100100; /2 4b0011 : data_out = 7b0110000; /3 4b0100 : data_out = 7b0011001; /4 4b0101 : data_out = 7b0010010; /5 4b0110 : data_out = 7b0000011; /6 4b0111 : data_out = 7b1111000; /7 4b1000 : data_out = 7b0000000; /8 4b1001 : data_out = 7b0011000; /9 endcase always ( data_in1) case(data_in1) 4b0000 : data_out1 = 7b1000000; /0 4b0001 : data_out1 = 7b1111001; /1 4b0010 : data_out1 = 7b0100100; /2 4b0011 : data_out1 = 7b0110000; /3 4b0100 : data_out1 = 7b0011001; /4 4b0101 : data_out1 = 7b0010010; /5 4b0110 : data_out1 = 7b0000011; /6 4b0111 : data_out1 = 7b1111000; /7 4b1000 : data_out1 = 7b0000000; /8 4b1001 : data_out1 = 7b0011000; /9 endcase 第三节 硬件语言软件应用quartus® ii design 是最高级和复杂的,用于system-on-a-programmable-chip (sopc)的设计环境。 quartusii design 提供完善的 timing closure 和 logiclock 基于块的设计流程。quartusii design是唯一一个包括以timing closure 和 基于块的设计流为基本特征的programmable logic device (pld)的软件。 quartus ii 设计软件改进了性能、提升了功能性、解决了潜在的设计延迟等,在工业领域率先提供fpga与mask-programmed devices开发的统一工作流程。 altera quartus ii 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字设计系统者的欢迎。 altera quartus ii (3.0和更高版本)设计软件是业界唯一提供fpga和固定功能hardcopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对 stratix fpga进行功能验证和原型设计,又可以设计hardcopy stratix器件用于批量成品。系统设计者现在能够用quartus ii软件评估hardcopy stratix器件的性能和功耗,相应地进行最大吞吐量设计。 altera的quartus ii可编程逻辑软件属于第四代pld开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于internet的协作设计。quartus平台与cadence、exemplarlogic、 mentorgraphics、synopsys和synplicity等eda供应商的开发工具相兼容。改进了软件的logiclock模块设计功能,增添 了fastfit编译选项,推进了网络编辑性能,而且提升了调试能力。 支持max7000/max3000等乘积项器件 2.0版quartus ii设计软件现在除了支持altera的apex 20ke,apex 20kc, apex ii,arm的excalibur嵌入处理器方案,mercury,flex10ke和acex1k之外,还支持max3000a,max7000系列乘积项器件。max3000a和max7000设计者现在可 以使用quartusii设计软件中才有的所有强大的功能。 第三节 系统框图复位ret选择choose转换hm设置 set加速space hllll时钟显示led1灭,led2 灭计时系统框图hhlhl复位ret选择choose转换hm设置 set加速space设置时led1灭,led2 亮设置时系统框图hhhhh复位ret选择choose转换hm设置 set加速space设置分led1亮,led2 灭led1亮,led2 灭设置分系统框图第二章 结果与讨论第一节 程序功能本系统简单的完成了对实时时钟的一个模拟,可以完成简单的时、分、秒显示及设置功能。在必要时,可以加速以便可以直观的看到时钟的正确计数。第二节 调试和解决方案在运行调试时我们确实遇到了不少问题,但最终在我们的努力以及同学的帮助下都得以解决。1、没有正确的理解语法 在hdl中,所有aways和 assign语句是并行执行的,这是和学的其他语言最大区别。在aways中,所有的被赋值的变量都要是reg类型变量。在assign中,就应是wire型变量了。和c语言比较,它还特有的非阻塞赋值和不能有类似i+的语句。2、数码管有时乱码有时是几个一起变化在调试时,数码管是乱码的,自己在程序上按照自己写的流程走了一遍,感觉是没问题的,最后同学指出我的代码是共阳极用的,后来我改正过来在调试,这时出现的的没有乱码了,但是新的问题出现了,几个数码管同时变化,这种问题自己有束手无策了,自己把能想到的问题在电脑上试一下,这时发现如果把公端给低电平时就解决了。3、按键的抖动问题在此程序中,如果有抖动就不太方便按键了,比如设置时需要加一时,如没有去抖动,按一下就会加好几个数。所以如果有去抖动的话就更方便操作了,在此我是上网

温馨提示

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

评论

0/150

提交评论