《基于VHDL语言的数字电子钟课程设计.doc》由会员分享,可在线阅读,更多相关《基于VHDL语言的数字电子钟课程设计.doc(25页珍藏版)》请在金锄头文库上搜索。
1、基于VHDL语言的简易电子钟设计摘要 VHDL是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD结构,成为设计专用集成电路和其他集成电路的主流。通过应用VHDL对数字时钟的设计,达到对VHDL的理解,同时对CPLD器件加深了解。该系统在开发软件Quartus 环境中设计完成,本文给出了设计该数字时钟系统的流程和方法,最后通过CPLD实现预定功能。关键词:电子钟;硬件描述语言;VHDL;Quartus ;CPLD目录引言1第一章 设计任务及功能要求11.1设计课题内容11.2功能要求说明1第二章 系统设计方案
2、22.1电子钟工作原理22.2总体方案设计2第三章 电子钟顶层设计23.1顶层设计分析23.2 顶层电路图3第四章 各功能模块的设计44.1正常计时模块44.1.1分频模块设计44.1.2 60进制计数器设计54.1.3 24进制计数器设计54.2整点报时模块64.2.1整点报时设计思路及原理图64.2.2整点报时仿真波形74.3分时校对模块74.3.1分时校对设计思路及原理图74.3.2分时校对仿真波形74.4扫描输出模块84.4.1扫描输出设计思路及原理图84.4.2扫描输出仿真波形84.5译码显示模块94.5.1译码显示设计思路及原理图94.5.2译码显示仿真波形10第五章 系统硬件实现
3、分析105.1 引脚分配105.2 系统硬件测试及分析11第六章 结束语11参考文献11附录1顶层电路图12附录2程序代码12引言数字时钟是一种用数字电路技术实现时、分、秒计时的装置,数字时钟走时精度高,稳定性好,使用方便,不需要经常调校,数字式时钟用秒脉冲发生器的精度稳定保证了数字钟的质量。电子设计自动化(EDA)技术发展越来越迅速,利用计算机辅助设计已成为发展趋势。VHDL语言具有强大的电路描述和建模能力,用VHDL开发的数字电路与开发平台以及硬件实现芯片无关,可移植性、可重用性好。VHDL语言能够在系统级、行为级、寄存器传输级、门级等各个层次对数字电路进行描述,并可以在不同层次进行不同级
4、别的仿真,能极大得保证设计的正确性和设计指标的实现。Quartus 设计软件提供了一个完整的、多平台的设计环境,它可以轻易满足特定设计项目的要求。第一章 设计任务及功能要求1.1设计课题内容1学习ALTERA公司的FPGA/CPLD的结构、特点和性能。2学习集成开发软件MAX+plus II/Quartus II的使用及设计过程。3熟悉EDA工具设计数字电路设计方法,掌握VHDL硬件描述语言设计方法。4根据给定题目设计数字电路,来加深对可编程逻辑器件的理解和掌握。1.2功能要求说明1在所选择器件内完成简易时钟的设计,要求设计完成后芯片具有时、分、秒的计时;译码;输出七段码;最大计时23时59分
5、59秒;秒闪功能。2简易时钟要求具有对时功能,具体对时的实现方式自行决定,要求设计合理,以操作简单为原则(根具具体的工作进度,可以考虑增加整点报时等附加功能)。3在相应的器件平台上完成设计的输入、编译、综合或适配通过。第二章 系统设计方案2.1电子钟工作原理系统主要由振荡器、分频器、计数器、译码显示电路和校时电路组成。振荡器产生稳定的分频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60分向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照二十四进制计数。计数器的输出分别由译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分。2.2总体方案设计数字
6、电子钟由振荡器、分频器、计数器、译码显示电路和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分。1)时钟产生电路。将开发板上的时钟信号经过分频得到不同频率的时钟,分别作用于定时计数、LED扫描。2)控制逻辑电路。完成电子钟的系统逻辑控制,包括计时控制、时间校对、显示扫描的逻辑控制,可完成系统复位、调整时间的功能。3)计时电路。主要按照时钟模式完成计时功能。4)译码电路。
7、根据计时模块的状态输出值来确定对应位的数据,从而驱动显示电路。5)显示控制电路。主要执行选择所对应位的数据功能,显示正确的时间。为了节省6个七段显示器显示所需的电流消耗,本文利用视觉暂留原理来让七段显示器轮流来显示。第三章 电子钟顶层设计3.1顶层设计分析对于电子钟的设计,这里将采用自顶向下的设计方法进行设计,因此首先需要进行电子钟的顶层设计。这里首先介绍电子钟的系统结构和模块划分,然后设计出顶层VHDL设计程序。根据前边所述的电子钟的设计要求、工作原理和设计方案,这里给出设计系统结构框图和外部管脚图分别如图3.1和图3.2所示。译码显示模块扫描输出模块正常计时模块电子钟系统整点报时模块分时校
8、对模块图3.1 系统结构框图图3.2 系统外部管脚图由电子钟的外部管脚图可知,系统的输入输出信号包括:(1)复位开关信号reset:输入信号;(2)外部输入的晶振信号clk_in:输入信号;(3)分/时调整信号setmin,sethour:输入信号;(4)报时触发信号speak:输出信号;(5)数码管输出选通信号sel5.0:输出信号;(6)LED七段数码管的输出信号led6.0,dp:输出信号。由图3.1知,系统划分了五个模块,划分的这五个模块,每个模块都包含若干个组件,因此首先建立一个程序包把所有的组件包含在一起,以便于主程序模块的调用,然后再对每个组件进行编程设计。3.2 顶层电路图顶层
9、电路图见附录1。第四章 各功能模块的设计4.1正常计时模块系统必须维持一个持续不断计数的时钟,从时间00:00:00到23:59:59不断循环。首先将50MHZ的系统输入脉冲分频5000000得到1HZ的基本秒输入,秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。这些功能的实现要用到三种组件:分频组件,60进制计时组件,24进制计时组件。4.1.1分频模块设计本设计采用CPLD芯片EP2C20,内部晶振为50MHz,而数码管位扫描信号clk1=1000Hz,计时时钟信号clk=1Hz。所以要用分频模块来对输入时钟进行分频。下图4.1是生成的
10、分频组件元器件图形。接口:clks:时钟输入,输入信号50MHzclk:1Hz输出信号 clk1:扫描频率信号图4.1分频模块器件图在Quartus软件中进行仿真后,仿真时设置3000分频得到clk,500分频得到clk1。仿真时序图如图4.2。图4.2 分频模块仿真波形图由图4.2知,输入信号clks= 10ns,输出信号clk1= 5us,clk= 30us,证明分频是正确的。4.1.2 60进制计数器设计秒数的计数以1Hz的输入clk为触发信号,分数的计数以秒数的进位输出 enmin 作为触发。下图4.3是60进制计数器器件图形。接口: clk:1hz时钟信号 clk1:校时时钟信号 r
11、eset:复位信号daout:输出十进制信号setmin,sethour:校分控制信号enmin,enhour:进位信号 图4.3 60进制秒计数器器件图 图4.3 60进制分计数器器件图在Quartus软件中进行仿真后,得到仿真时序图如图4.4。图4.4 60进制计数器仿真波形图由图4.4知,每来一个clk上升沿,计数器就加1,当计数器当到达第60个上升沿时,enmin=1,daout由59归零,仿真符合60进制计数器的要求。4.1.3 24进制计数器设计24进制计数器的结构和原理与60进制计数器相类似,只是将除以60改为除以24。个位数的进位归零在十进制为2时,必须在one等于3时进位,同
12、时送出进位指针full=1,1小时后将指针归零。下图4.5是生成的24进制计数器器件图形。接口: clk:分的进位信号 reset:复位信号daout:输出十进制的小时数图4.5 24进制计数器器件图在Quartus软件中进行仿真后,得到仿真时序图如图4.6。图4.6 24进制计数器仿真波形由上图4.6知,每来一个clk上升沿,计数器就加1,当计数器当到达第24个上升沿时,daout由59归零,仿真符合24进制计数器的要求。4.2整点报时模块4.2.1整点报时设计思路及原理图当计数时间在59分59秒时,报时模块输出报时控制信号。输出speak=clk1=1000Hz驱动蜂鸣器报时。下图4.7是
13、生成的整点报时器件图形。接口: clk1:驱动信号 reset:复位信号dainm,dains:输入秒数、分数 speak:输出信号图4.7整点报时器件图4.2.2整点报时仿真波形在Quartus软件中进行仿真后,得到仿真时序图如图4.8。图4.8整点报时仿真波形由上图4.8知,当dainm、dains都为0时,speak输出为clk1,仿真符合整点报时的要求。4.3分时校对模块4.3.1分时校对设计思路及原理图当电子钟正常计时,校对信号setmin,sethour都为1。当需要分校对时,setmin=0,秒信号送入分计数器时钟信号,进行时校对,sethour=0,秒信号送入时计数器时钟信号。
14、通过setmin,sethour能够很方便的校对成功。下图4.9是生成的分时校对器件图形。接口: clk:1hz时钟信号 reset:复位信号 setmin:校分控制信号 enmin:进位信号图4.9校分器件图4.3.2分时校对仿真波形在Quartus软件中进行仿真后,得到仿真时序图如图4.10。图4.10校分仿真波形由上图4.10知,当校分控制信号为setmin = 0时,分的时钟信号enmin = clk,实现分钟快速计数校对到正确时间。仿真结果符合设计要求。校时仿真波形与校分基本类似。4.4扫描输出模块4.4.1扫描输出设计思路及原理图为了节省IC的输出引脚及耗电量,可以将6组数字输出作为多路输出;另外使用八合一型七段显示器与视觉暂留效应可降低显示耗电量。首先将6个数值通过扫描模块分时选通七段数码管,依次将秒、分、时的数据扫描输出。下面图4.11是生成的扫描输出器件图形。接口: clk1:扫描信号 reset:复位信号sec,min,hour:输入信号 sel:选通信号 daout:输出信号 dp:小数点信号图4.1扫描输出器件图形4.4.2扫描输出仿真波形在Quartus软件中进行仿真后,得到仿真时序图如图4.12。图4.12扫描输出器件仿真波形由上图4.12知,每来一个clk上升沿,daout就输出一位,当6个上升沿后,已依次将秒、分、时输出。下一个上升沿重新分