相关推荐recommended
FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设
作者:mmseoamin日期:2024-01-25

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps1,第1张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps2,第2张

专业:通信工程 学号:__姓名:龚易乾___指导老师:

电子与信息工程学院

2023年2月

有任何疑问可以联系邮箱:codealan@qq.com

项目仓库地址:https://github.com/CodeAlanqian/e-clock github仓库地址

综合设计实验

实验目的

熟练掌握Quartus等EDA设计与仿真工具,掌握多路选择器、N进制计数器、显示译码电路、开关电路、按键等电路的设计和调试方法。加深对《数字电子技术基础》课程内容的理解,逐步提高电路应用能力、设计能力、分析评价能力。

实验任务

设计一个多功能数字钟,要求如下:

1、准确计时,以数字形式显示时、分、秒;

2、12/24小时切换功能;

3、时、分、秒的校时功能;

4、秒表功能,显示分、秒、百分之一秒,暂停、复位功能;

5、时钟与秒表切换。

准备工作

1、了解FPGA开发板的资源。FPGA开发板上含有6位数码管,8个按键、8个LED灯

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps3,第3张

数码管

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps4,第4张

每位数码管的8段字符

分析电路图可知:数码管有6位片选信号和8位段选信号,因此要搭建片选扫描电路,利用视觉暂留现象,驱动数码管显示。共阳电路,采用7474译码器。7447的主要功能是输出低电平驱动的显示码,用以推动共阳极7段LED 数码管显示相应的数字。

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps5,第5张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps6,第6张

按键 LED灯

按键未按下时为高电平,按下时为低电平 LED灯为低电平使能,共阳电路

2、预想功能表

按键未按下时LED均不亮,按下某按键后,对应的LED点亮。默认为不亮

按键未按下(1)按下(0)功能
BUT124小时制12小时制切换12/24小时
BUT2停止校时时校时时针校时
BUT3停止校时分校时分针校时
BUT4停止校时秒校时秒针校时
BUT5时钟秒表切换时钟/秒表模式
BUT6秒表暂停秒表计时秒表暂停/计时
BUT7秒表复位秒表复位
BUT8

3、电路框图

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps7,第7张

设计原理、电路图与仿真

考虑到电路图会比较复杂,所以我基本使用总线的接线方法去画图

1、先搭建基本的分频器

100进制计数器(两个74160)、25进制计数器、2进制计数器

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps8,第8张

100进制

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps9,第9张

25进制

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps10,第10张

利用D触发器搭建T’触发器构成2进制计数器

2、搭建信号发生器

原始输入时钟信号为50MHz,利用计数器分频

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps11,第11张

1Hz信号50M/(100100100252) 用于产生秒信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps11,第12张

2Hz信号 用于产生校时信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps12,第13张

100Hz信号 50M/(10010025*2)

用于按键扫描频率和产生秒表信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps14,第14张

1250Hz 用于数码管片选扫描

3、时钟

秒针计时

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps15,第15张

输入信号:1Hz时钟信号,RD复位信号

输出信号: 秒信号高位(SH[3…0])显示到第5位数码管

秒信号低位(SL[3…0]) 显示到第6位数码管

SC为秒针进位信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps16,第16张

分针计时器仿真结果

分针计时

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps17,第17张

输入信号: 秒针计时器进位信号,RD复位信号

输出信号: 分信号高位(MH[3…0])显示到第3位数码管

分信号低位(ML[3…0]) 显示到第4位数码管

MC为分针进位信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps18,第18张

分钟计时器仿真结果

24进制时钟

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps19,第19张

输入信号:分针计时器进位信号,RD复位信号

输出信号: 时信号高位(HH[3…0])显示到第1位数码管

时信号低位(HL[3…0]) 显示到第2位数码管

HC为时针进位信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps20,第20张

24进制时针计时器仿真结果

12进制时钟

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps21,第21张

输入信号:分针计时器进位信号,RD复位信号

输出信号: 时信号高位(HH[3…0])显示到第1位数码管

时信号低位(HL[3…0]) 显示到第2位数码管

HC为时针进位信号

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps22,第22张

12进制时针计时器仿真结果

4、秒表

分秒信号(100Hz)

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps23,第23张

5、按键读取电路

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps24,第24张

消抖:以100Hz的频率扫描端口,如果0.03ms内采样结果均相同,则认为按下/松开按键,并保存到由JK触发器构成的T’触发器中。

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps25,第25张

按键仿真结果

按键扫描电路

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps26,第26张

将8个按键的扫描结果封装

6**、译码显示**

数码管片选电路(顺序脉冲)

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps27,第27张

由74161与74138译码模块构成,低电平使能,S为0时,被选中

不断重复扫描,达到连续显示的效果

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps28,第28张

顺序脉冲仿真结果

7447译码器(段选电路)

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps29,第29张

封装成总线的形式,方便输入输出

7、LED驱动电路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gcXWPzJ8-1684859853659)(null)]

当L为1时,LED点亮

8、模式转换器

二选一模式转换器(用于切换第3-6位数码管的时钟、秒表显示)

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps31,第30张

K为输入信号,当K为1时,H24输出,当K为0时,H12输出

三选一模式转换器(用于切换第1、2位数码管的12/24进制、秒表显示)

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps32,第31张

由4片74153芯片构成(每片都只使用了一个4选1数据选择器)

当K0=K4等于1时,输出H24;当K4=1,K0=0时,输出H12

其他情况均输出M60

显示片选

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps33,第32张

总电路:

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps34,第33张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps35,第34张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps36,第35张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps37,第36张 FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps38,第37张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps39,第38张

FPGA多功能数字时钟 基于Quartus实现设计与仿真 华南师范大学数电综设,wps40,第39张

调试、结论

设置引脚、编译、下载至FPGA开发板。测试结果符合预期。

实验过程的问题与思考

问题:

1、设计【12翻1】计时器时,从0开始或从13结束,解决方法:预置数为1,计数到12时复位;

2、Modelsim无法仿真,没有正确设置路径;

3、7447译码器6和9显示不全,最后发现是该译码器的特性,使用7448译码器更好;

4、做12/24进制时钟切换时没有考虑到秒表,只做了二选一模块,后来做四选一模块得以解决,实现12/24/秒表切换

5、有时时钟的频率不对,先不用管,后来随着新功能的加入便正常了;

6、刚开始时考虑不周,模块化低。

心得体会:

Quartus是一个十分重要的工具,它可以帮助我们完成诸如逻辑电路设计、仿真、验证、综合等一系列任务,提高了我们的设计效率和精度。

1、设计前的准备十分重要。在进行设计前,需要对所要设计的电路进行充分的思考和分析,确定各个模块的功能、输入输出等信息,为后续的设计奠定基础。

2、画电路图时需要仔细。注意电路的正确性和逻辑的完整性,以避免在后续的仿真和验证过程中出现问题。

3、仿真和验证非常重要。在完成设计后,需要进行仿真和验证,以检验电路的正确性和稳定性。通过仿真和验证可以发现并修正电路中的问题,提高电路的可靠性和鲁棒性。

4、熟练掌握Quartus的使用技巧可以提高设计的效率和精度。

5、这是一个较大的设计实验,能顺利完成我很有成就感。

6、采用模块化设计,结构清晰,便于画图、修改与阅读。在设计过程中,加深了我对《数字电子技术基础》课程内容的理解,逐步提高电路应用能力、设计能力、分析评价能力。

七、 参考文献

[1]《数字电子技术基础(第5版)》

[2]《EDA设计 基于Quartus的多功能数字时钟设计》

【后记】

验收时发现24小时制的12时在12小时制应该为12时,不该为0时

学长只能帮你们到这了