基于FPGA的数字时钟
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
xxxx大学
电子设计自动化技术与应用
设计报告
设计题目:基于FPGA的数字时钟
学院:通信学院
姓名:
学号:
目录
一、设计任务 (3)
二、总体设计方案 (3)
1、设计思想 (3)
2、总体设计框图 (3)
三、单元电路设计 (4)
1、秒计数器模块设计与实现 (4)
2、分计数器模块设计与实现 (5)
3、时计数器模块设计与实现 (6)
4、2选1选择器模块设计与实现 (7)
5、译码器模块的设计与实现 (8)
6、3-8线译码器模块设计与实现 (9)
7、分频器的设计与实现 (9)
8、顶层原理设计图 (10)
四、硬件测试与结果分析 (11)
1、硬件测试: (11)
2、测试过程及结果分析 (12)
五、收获与体会 (12)
一、设计任务
1、能进行正常的时、分、秒计时功能,由LED数码管显示时间,最大计时
为23:59:59。
2、小时显示采用24进制,分显示和秒显示都采用60进制。
3、具有调时和调分功能。
二、总体设计方案
1、设计思想
本设计是基于Altera公司的Cyclone III 系列的EP3C16Q240C8芯片设计的,采用层次化设计方式,先设计数字时钟的底层器件:秒计数器、分计数器、时计数器、2选1选择器、译码器、分频器。顶层采用原理图设计方式,将所设计的底层器件连接起来构成一个具有计时和调时功能的数字时钟。
2、总体设计框图
完整的数字时钟设计硬件框图如图所示。
三、单元电路设计
1、秒计数器模块设计与实现
1.1秒计数器流程图如下:
1.2秒计数器生成模块如图1所示:
图1
其中,clk 是时钟信号,daout 是60计数输出,enmin 是向分进位的高电平。 1.3 波形仿真图
波形分析:由波形图知秒计数器是由60进制计数器完成的00到59的循环计数功能,当计数到59时,再来一个计数脉冲则产生进位输出,即enmin=1,作为分计数器的计数脉冲。
2、分计数器模块设计与实现
2.1分计数器流程图如下:
2.2分计数器生成模块如图2所示:
其中,clk是时钟信号,daout是60计数输出,enhour是向时进位的高电平。
2.3波形仿真图
波形分析:由波形图可知,该模块实现了分计数的功能,计数循环从00到59,计数脉冲为秒计数器的进位输出,即enmin。当计数到59时,再来一个计数脉冲则产生进位输出,即enhour=1,作为时计数器的计数脉冲。
3、时计数器模块设计与实现
3.1时计数器流程图如下:
3.2时计数器生成模块如图3所示:
其中,clk 是时钟信号,daout 是24计数输出。 3.3波形仿真图
波形分析:小时计数模块由24进制计数器完成的从00到23之间的循环计数,计数脉冲为分计数器的进位输出,即enhour 。
4、2选1选择器模块设计与实现
4.1 2选1选择器流程图如下:
4.2 2选1选择器生成模块如图4所示:
图4
其中,sel 是按键信号,b 是时钟信号,a 是来自秒向分进位(分向时进位)的信号,y 是所选信号。
5、译码器模块的设计与实现
5.1译码器流程如下:
5.2译码器生成模块如图5所示:
图5
其中,clk是时钟信号,second是秒计数数据,minute是分计数数据,hour是时计数数据,seg_dp 是显示“点”,sel是数码管的位选通信号,seg是数码管显示信号。
5.3波形仿真图
波形分析:译码器模块完成了将时、分、秒的二进制码转换为能在LED数码管上显示的7端BCD码,同时产生了数码管的位选通信号,即sel,位选通信号是将
时、分、秒的7端BCD码分别显示在对应的数码管上。
6、3-8线译码器模块设计与实现
6.1 3-8线译码器流程图如下:
6.2 3-8线译码器生成模块如图6所示:
图6
其中,sel是时、分、秒选择信号,y是8位译码信号。
6.3波形仿真图
波形分析:由波形图分析可知,3-8线译码器完成了3位信号的输入到8位译码的输出功能。
7、分频器的设计与实现
7.1 分频器流程图如下:
由于要为秒计数器提供1hz的脉冲和数码显示提供1000hz的脉冲,所
以要把50Mhz的时钟信号进行分频。
这是产生1hz脉冲这是产生1000hz脉冲
7.2分频器生成模块如图7所示。
图7
8、顶层原理设计图
将分频器、2选1选择器、秒计数器、分计数器、时计数器、译码器、3-8线译码器按照要求连接起来就组成了整个数字时钟的原理图,如图8所示。
图8
四、硬件测试与结果分析
1、硬件测试:
测试方式:clk选用clk1。KS[0]控制调分,KS[1]控制调时。数码管数码管
8、7用作小时显示,高位是小时的十位,低位是小时的个位。数码管5、4用作
分钟显示,高位是分钟的十位,低位是分钟的个位。数码管2、1用作秒钟显示,高位是秒钟的十位,低位是秒钟的个位。管脚分配如图9所示。
图9
2、测试过程及结果分析
将文件下载到FPGA中,数码管上显示00-00-00,并开始计时,秒钟计到59向分钟进1,分钟计到59向小时进1。闭合KS[0]键分钟以1HZ的频率加1,加到59向小时进1,分钟清0。闭合KS[1]键小时以1HZ的频率加1,加到59小时清0。
本数字时钟能够满足正常计时和调分调时功能,达到预期的设计效果。
五、收获与体会
经过这次的数字时钟的综合设计,我对FPGA的知识从一窍不通开始有点了解了。对QUTARTUS软件也是从零基础开始的,通过查阅各种资料,学习
其用法。程序也是参考别人或者书上的,自己进行了调试,也修改了一些,
从中学到不少知识。在进行波形仿真时不能仿真正确,请教过别人,学到了
很多有用的方法。
在此次设计中自己亲自参与了设计,这是很宝贵的。对于我们搞理论研究的人来说,这次张毅老师的电子设计自动化实验课程弥补了我们动手能力
不强这方面的不足,这是难能可贵的,也正是达到了我学这门实验课的目地。
在设计中,我们还培养了自己独立分析问题和解决问题的能力。
总的来说,通过这门实验课,我们不仅对理论知识有了更深刻的理解,实际操作能力也得到了很好的锻炼,所以,我们不仅学到了知识,同时也得
到了很好的锻炼,衷心的感谢老师及这门课程。