fpga数字钟课程设计报告_第1页
fpga数字钟课程设计报告_第2页
fpga数字钟课程设计报告_第3页
fpga数字钟课程设计报告_第4页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、fpga数字钟课程设计报告f pg a数字钟课程设计报告company document number:wtut-wt88y-w8bbgb-bwytt-19998 课程设计报告 设计题目:基于fpga的数字钟设计班级:电子信息工程1301姓名:王一丁指导教师:李世平设计时间:2016年1月摘要eda(electronic design automation)电子设计自动化,是以大规模可编程器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,通过相关的软件,自动完成软件方式设计得电子系统到硬件系统,最终形成集成电子系统或专用集成芯片。本次课程设计利用quartus ii 为设计软件,vh

2、dl为硬件描述语言,结合所学知识设计一个多功能时钟,具有显示年、月、日、时、分、秒显示,计时,整点报时,设定时间等功能。利用硬件描述语言vhdl 对设计系统的各个子模块进行逻辑描述,采用模块化的思想完成顶层模块的设计,通过软件编译、逻辑化简、逻辑综合优化、逻辑仿真、最终完成本次课程设计的任务。关键词:eda vhdl语言数字钟目录摘要1 课程设计目的2 课程设计内容及要求 设计任务 设计要求3 vhdl程序设计方案论证系统结构框图设计思路与方法状态控制模块时分秒模块年月日模块显示模块扬声器与闹钟模块rtl整体电路4 系统仿真与分析5 课程设计总结,包括.收获、体会和建议6 参考文献1 课程设计

3、目的(1)通过设计数字钟熟练掌握eda软件(quartus ii)的使用方法,熟练进行设计、编译,为以后实际工程问题打下设计基础。(2)熟悉vhdl 硬件描述语言,提升分析、寻找和排除电子设计中常见故障的能力。(3)通过课程设计,锻炼书写有理论根据的、实事求是的、文理通顺的课程设计报告。 2 课程设计内容及要求 设计任务(1)6个数字显示器显示时分秒,setpin按键产生一个脉冲,显示切换为年月日。(2)第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、五、六、七个脉冲到来时分别可以预置时期、时、分、秒,第八个脉冲到来后预置结束正常从左显示时分秒。(3)up为高时,upclk有脉冲到达时

4、,预置位加一,否则减一。设计要求(1)在基本功能的基础上,闹钟在整点进行报时,产生一定时长的高电平。(2)实现闹钟功能,可对闹钟时间进行预置,当达到预置时间时进行报时。3 vhdl程序设计方案论证该数字钟可以实现:计时功能、整点报时、闹钟和预置时间功能,因此时钟系统可分为5个模块:功能选择模块、时分秒计数模块、年月日计数模块、显示模块、扬声器模块、脉冲产生模块。(1)功能选择模块是有状态机构成的,功能为依次进行、设置时间、设置闹钟时间。调整工作状态:数字钟的初始状态显示时分秒,在setpin按键产生一个脉冲,显示切换为年月日。 设置时间:第二个脉冲可预置年份,第三个脉冲可以预置月份,依次第四、

5、五、六、七个脉冲到来时分别可以预置时期、时、分、秒。第八个脉冲到来后,预置结束恢复初始状态,正常显示时分秒。 设置闹钟时间:闹钟在setpin1按键产生第一个脉冲时设定闹钟的时,第二个脉冲设定分,第三个脉冲设定秒,第四个脉冲恢复显示时分秒。(2)时分秒计数模块包括正常计时、闹钟、整点报时三个功能。正常计时功能通过软件编写,60进制的秒计数器,60进制的分计数器,24进制的时计数器。时分秒的计数器具有清0、置数、进位和计数功能。其中reset为清0信号,当reset为0时,时分秒的计数器清0。当set产生第四个脉冲后,连续产生的set信号使分秒计数器依次进行置数。以upclk为时钟,通过up对预

6、置位进行控制,当up为高时且upclk有脉冲到来时,预置位加一,否则减一。当set产生第八个脉冲时,数字钟恢复时分秒的显示。闹钟功能是在正常计数功能上拓展,分为闹钟时间预置和闹钟响应两个部分。闹钟时间预置功能:当set1连续产生脉冲时,依次对闹钟的时分秒位进行预置。以upclk为时钟,通过up对预置位进行控制,当up为高时且upclk有脉冲到来时,预置位加一,否则减一。当set1产生第四个脉冲时,数字钟恢复时分秒的显示。与此同时在程序中增添变量时计时功能可以持续运行。闹钟响应功能:通过预置后,储存的变量与计时器模块的时、分、秒进行比对,当 时、分、秒相同时,模块产生一个一段时间的高电平,传输给

7、闹钟响应模块。 整点报时功能:当计数器中的分位等于59,秒位等于59时,模块产生一段高电平,输出给扬声器模块进行报时。(3)年月日计数模块分为年月日计数功能,年月日预置数功能。年月日计数功能:以时位的进位脉冲为计时脉冲,闰年二月份为29天,普通年二月份为28天。一月、三月、五月、七月、八月、十月、十二月为31天,四月、六月、九月、十一月为30天。年月日预置数功能:当set产生第一个脉冲后,依次进行年月日数器置数。以upclk为时钟,通过up对预置位进行控制,当up为高时且upclk有脉冲到来时,预置位加一,否则减一。(4) 显示模块:以时分秒,年月日模块的输出、状态标志为输入信号,通过状态控制

8、模块产生的状态标志对显示模块进行控制,显示计时、预置时的不同状态。(5)扬声器模块:输入信号为分位、秒位和状态信号,当计时时钟到达整点是输出高电平,其他时刻输出低电平。(6)脉冲产生模块:对输入的信号进行1000分频,产生周期为一秒的时钟信号,用于数字钟的时钟输入。系统结构框图设计思路与方法状态控制模块 状态控制模块实现对各个功能模块的整体设计,包括对时间与日期的显示与调整,闹钟的显示与调整等控制操作。状态机的输入为setpin,setpin1,upclk。状态机的状态有11种状态。 g:闹钟设 置时位;g:闹钟设置分位;2g:闹钟设置秒位;1s:时钟显示时分秒;1s:时钟显示年月日;2s:钟

9、设置年; s:时钟设置月;4s:时钟设置日;5s:时钟设置时;3s:时钟设置分;7s:设置秒6在产生如上状态的同时产生tlock,flag状态标志,此标志用来进行时钟设置、闹钟设置与显示控制。rtl 电路图实现代码如下:process(upclk)beginif (upclk=1 and upclklast_value=0)thenstateend if;end process;process(state,setpin,setpin1)beginnext_statecase(state) iswhen s0 = tlockflagif(setpin1=1 and setpin1last_val

10、ue=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen s1=tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen s2=tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then

11、 next_statewhen s3=tlock flagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen s4= tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) thennext_statewhen s5=tlockflagif(setpin1=1 and setpin1last_va

12、lue=0)then next_stateif(setpin=1 and setpinlast_value=0) thennext_statewhen s6=tlockflag if(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen s7= tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) th

13、en next_statewhen g0=tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen g1=tlockflag if(setpin1=1 and setpin1last_value=0)then next_stateif(setpin=1 and setpinlast_value=0) then next_statewhen g2= tlockflagif(setpin1=1 and setpin1last_value=0)then next_stateif(setpin

温馨提示

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

评论

0/150

提交评论