基于VHDL的电子秒表的设计.docx
《基于VHDL的电子秒表的设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL的电子秒表的设计.docx(26页珍藏版)》请在冰豆网上搜索。
基于VHDL的电子秒表的设计
《EDA技术及应用》
课程设计报告
题目:
基于VHDL的电子秒表的设计
院(系):
电气工程及其自动化
专业班级:
电气1203
学生姓名:
季佳璐
学号:
20121131131
指导教师:
姚裕安
2014年12月05日至2014年12月09日
华中科技大学武昌分校制
EDA技术及应用课程设计任务书
一、设计(调查报告/论文)题目
基于VHDL的电子秒表的设计
二、设计(调查报告/论文)主要内容
设计一个电子秒表,给定时钟信号为512HZ,要求系统达到以下功能:
(1)用6个数码管分别显示时、分、秒,计时范围为:
00:
00:
00~23:
59:
59。
(2)计时精度是1s。
(3)具有启/停开关,复位开关,可以在任何情况下使用。
三、原始资料
电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。
1、系统总体框图
根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。
系统顶层设计图如图1所示
图1系统顶层设计图
图1中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。
中间从上至下依次为count24,count60,count60,fenpinqi。
右边是clock1和输出信号wei[3..0],led[6.0]。
2、模块功能设计
本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。
(1)六十进制计数器模块
设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。
图2六十进制计数器示意图
(2)二十四进制计数器模块
设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。
图3二十四进制计数器示意图
(3)分频器模块
设计一个分频器,要求将输入256HZ的时钟信号分频为1HZ的时钟信号作为秒表的秒输入。
输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。
图4分频器示意图
(4)LED显示模块
LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。
图5LED数码管结构图
数码管的接口有静态接口和动态接口。
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2…0]和LED[6…0],分别为位选信号和段码输出。
图6LED显示示意图
四、要求的设计(调查/论文)成果
答辩时需调通各个模块的程序;各部分模块完成后,用Quartus对程序编译、仿真;得出系统仿真波形,包括各模块仿真波形及顶层仿真波形。
课程设计报告中需完成系统的设计要求,软件部分需要给出具体的代码,调试的部分要求撰写心得体会。
五、进程安排
序号
课程设计内容
学时分配
集中学生学习课程设计关键理论、明确设计任务及设计要求、指导学生分组、安排设计进度
0.5天
2
查阅、收集资料,拟定控制方案
0.5天
3
计数器程序编写及仿真调试
0.5天
4
分频器程序编写及仿真调试
0.5天
5
系统整体仿真调试
0.5天
6
按规范要求撰写课程设计说明书
2天
7
提交设计作品及设计说明书、答辩
0.5天
合计
5天
六、主要参考资料
[1]杨晖.大规模可编程逻辑器件与数字系统设计.北京:
北京航空航天大学出版社,2010.
[2]任爱锋.基于FPGA的嵌入式系统设计.西安:
西安电子科技大学出版社,2011.
[3]杨恒.FPGA/CPLD最新实用技术指南.北京:
清华大学出版社,2010.
[4]王锁萍.电子设计自动化(EDA)教程.成都:
电子科技大学出版社,2009.
[5]路而红.电子设计自动化应用技术.北京:
北京希望电子出版社,2009.
[6]潘松.VHDL实用教程.成都:
电子科技大学出版社,2010.
指导教师(签名):
20年月日
目录
摘要………………………………………………………………………………1
1.课程设计的任务和基本要求…………………………………………………2
1.1设计目的……………………………………………………………………2
1.2设计要求……………………………………………………………………2
1.3设计方案………………………………………………………………………2
2.数字钟的设计…………………………………………………………………3
2.1数字钟的原理…………………………………………………………………3
2.2自顶向下设计分割图…………………………………………………………4
2.3数字钟主要模块设计…………………………………………………………4
2.3.1系统总体框图………………………………………………………………5
2.3.2模块功能设计………………………………………………………………5
3.系统仿真………………………………………………………………………8
3.1整体仿真………………………………………………………………………8
3.2六十进制模块仿真……………………………………………………………8
3.3二十四进制模块仿真…………………………………………………………9
3.4分频器模块仿真………………………………………………………………9
3.5led显示模块仿真……………………………………………………………9
3.6引脚分配………………………………………………………………………10
4.硬件仿真………………………………………………………………………11
5.结论……………………………………………………………………………12
6.课程设计心得…………………………………………………………………13
7.参考文献………………………………………………………………………14
8.课程设计评定表………………………………………………………………15
附录(各个模块的源程序)……………………………………………………16
摘要
随着当代电子信息技术的发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑期间CPLD/FPGA的出现,给设计人员带来了很多方便,利用它进行产品开发,可以降低研发成本缩短研发周期。
数字钟的设计是数字电路的一个典型应用,其设计方法很多,本设计采用VHDL语言在FPGA/CPLD上实现它的功能。
通过本设计,掌握多位计数器相连的设计方法、多位共阴极显示数码管的驱动和编码以及FPGA的层次化结构化设计方法。
关键词:
FPGACPLDQuartusII数字钟
1课程设计的任务和基本要求
1.1设计目的
(1)运用数字系统的设计方法进行数字系统设计;
(2)能进行较复杂的数字系统设计;
(3)数字钟的工作原理,数字钟的工作流程图与原理方框图,自顶向下的数字系统设计方法。
1.2设计要求
设计一个电子秒表,给定始终信号为512HZ,要求系统达到以下功能;
(1)用6个数码管分别显示时、分、秒,计时范围为:
00:
00:
00~23:
59:
59。
(2)计时精度是1s。
(3)具有启/停开关,复位开关,可以在任何情况下使用。
1.3设计方案
数字钟的逻辑结构主要包括有分频器、六十进制计数器、二十四进制计数器、动态显示译码器、LED数码管显示环节几个环节,图1-1为数字中的逻辑结构图。
其中计数器包括六十进制计数器和二十四进制计数器,分频器提供一个比较精准的1HZ的计时脉冲,时间设置环节提供时间的初始设置,动态显示译码器提供将BCD代码译成数码管所需要的驱动信号,使LED数码管用十进制数字显示出BCD代码所代表的数值。
图1-1数字钟的逻辑结构图
2、数字钟的设计
2.1数字钟的工作原理
数字钟的显示格式如图2-1所示:
图2-1显示格式
数字钟以其显示时间的直观性、走时准确性而受到了人们的欢迎并很快走进了千家万户。
作为一种计时工具,数字钟的基本组成部分离不开计数器,在控制逻辑电路的控制下完成预定的各项功能。
数字钟的基本原理方框图如下:
图2-2数字钟实现原理框图
(1)时基T产生电路:
由晶振产生的频率非常稳定的脉冲,经整形、稳定电路后,产生一个频率为1Hz的、非常稳定的计数时钟脉冲。
(2)控制逻辑电路:
产生调时、调分信号及位选信号。
调时、调分信号的产生:
由计数器的计数过程可知,正常计数时,当秒计数器(60进制)计数到59时,再来一个脉冲,则秒计数器清零,重新开始新一轮的计数,而进位则作为分计数器的计数脉冲,使分计数器计数加1。
现在我们把电路稍做变动:
把秒计数器的进位脉冲和一个频率为2Hz的脉冲信号同时接到一个2选1数据选择器的两个数据输入端,而位选信号则接一个脉冲按键开关,当按键开关不按下去时(即为0),则数据选择器将秒计数器的进位脉冲送到分计数器,此时,数字钟正常工作;当按键开关按下去时(即为1),则数据选择器将另外一个2Hz的信号作为分计数器的计数脉冲,使其计数频率加快,当达到正确时间时,松开按键开关,从而达到调时的目的。
调节小时的时间也一样的实现。
(3)计数显示电路:
由计数部分、数据选择器、译码器组成,是时钟的关键部分。
计数部分:
由两个60进制计数器和一个24进制计数器组成,其中60进制计数器可用6进制计数器和10进制计数器构成;24进制的小时计数同样可用6进制计数器和10进制计数器得到:
当计数器计数到24时,“2”和“4”同时进行清零,则可实现24进制计数。
数据选择器:
84输入14输出的多路数据选择器,因为本实验用到了8个数码管(有两个用来产生隔离符号‘—’)。
译码器:
七段译码器。
译码器必须能译出‘—’,由实验二中译码器真值表可得:
字母F的8421BCD码为“1111”,译码后为“1000111”,现在如果只译出‘—’,即字母F的中间一横,则译码后应为“0000001”,这样,在数码管上显示的就为‘—’。
2.2自顶向下设计分割图
图2-3 数字钟自顶向下设计分割图
(说明按下按键key0,完成复位功能,clk5选择1HZ的时钟,clk3选择的时钟频率尽量高。
)
2.3数字钟主要模块设计
图2-4数字钟总体框架
电子秒表的基本工作原理就是不断输出连续脉冲给加法计数器,加法计数器通过译码器来显示它所记忆的脉冲周期个数。
2.3.1系统总体框图
根据系统设计要求,系统的底层设计主要由六十进制计数器模块、二十四进制计数器模块、分频模块、LED显示模块组成。
系统顶层设计图如图2-3-1所示。
图2-4中左边为三个输入信号en,clk,reset,分别为启动/停止开关,时钟信号和复位开关。
中间从上至下依次为count24,count60,count60,fenpinqi。
右边是clock1和输出信号wei[3..0],led[7.0]。
2.3.2模块功能设计
本系统由六十进制计数器模块、二十四进制计数器模块、分频模块执行计时功能,输入信号是256Hz,通过分频后为1hz,时钟信号是1Hz作为秒表的秒输入,秒为60进制计数器,分也为60进制计数器,小时采用二十四进制计数器,各级进位作为高位的使能控制。
(1)六十进制计数器模块
设计一个八位的六十进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0]、rco,分别为低4位输出、高4位输出和进位位。
图2-5六十进制计数器示意图
(2)二十四进制计数器模块
设计一个八位的二十四进制计数器模块,输入信号为en、reset、clk,分别为使能、复位和时钟信号,输出信号为qa[3…0]、qb[3…0],分别为低4位输出、高4位输出。
图2-6二十四进制计数器示意图
(3)分频器模块
设计一个分频器,要求将输入256HZ的时钟信号分频为1HZ的时钟信号作为秒表的秒输入。
输入信号为clk和rst,分别为时钟信号和复位信号,输出信号为clk_out,为分频器1HZ的时钟信号输出。
图2-7分频器示意图
(4)LED显示模块
LED有着显示亮度高,响应速度快的特点,最常用的是七段式LED显示器,又称数码管。
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。
LED数码管的g~a七个发光二极管因加正电压而发亮,因加零电压而不能发亮,不同亮暗的组合就能形成不同的字形,这种组合称之为字形码(段码),如显示”0”,字形码为3fh。
图2-8LED数码管结构图
数码管的接口有静态接口和动态接口。
动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁显示现象,这种显示需要一个接口完成字形码的输出(字形选择),另一接口完成各数码管的轮流点亮(数位选择)。
(5)LED显示模块
将二十四进制计数器和2个六十进制计数器的输出作为LEDA显示模块的输入,在时钟信号的控制下通过此模块完成6个LED数码管的显示,输出信号为WEI[2…0]和LED[6…0],分别为位选信号和段码输出。
图2-9LED显示示意图
3系统仿真
3.1整体仿真
对于电路整体进行仿真,得出如下波形仿真图3-1。
图3-1整体仿真
图3-1中,当复位信号reset和使能信号en为高电平时,随着时钟clk的变换,led[7..0]高低电平控制数码管里面每一个的亮暗显示数字,wei[2..0]为位选信号。
3.2六十进制模块仿真
六十进制模块的仿真波形如图3-2。
图3-2六十进制模块仿真
该模块实现的是将标准的秒信号送入“秒计数器”,数字从0到59变换然后在回到0循环往复。
每累计60秒付出一个“分脉冲”信号,该信号作为“分计数器”的时钟脉冲。
该模块还是是一个“分计数器”,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。
clk为时钟信号,reset为复位信号(高电平有效)。
3.3二十四进制模块仿真
二十四进制模块的仿真波形如图3-3。
图3-3二十四进制模块的仿真
该模块控制的是数字钟小时,采用24进制计数器,可实现对一天24小时的累计,数字从0到24变换然后再回到0循环往复。
Clk为时钟信号,reset为复位信号(高电平有效)。
3.4分频器模块的仿真
分频器模块的仿真如图3-4所示。
图3-4分频器模块的仿真
本模块的功能是将clk端口输入的时钟信号分频后送给clk_out端口。
当RESET端口输入信号有效(高电平)时,clk_out端口输出信号清零。
3.5led显示模块的仿真
Led显示模块的仿真如图3-5所示。
图3-5led显示模块的仿真
本模块的功能是控制数码管数字的显示。
Clk为时钟信号,wei[2..0]为位选信号,led[7..0]段码输出。
3.6引脚分配
管脚标号led0到led7分别接到led8位段码中的七位上,wei0到wei3接到实验箱中74ls128的输入端;clk为LED显示时钟输入,接到频率源clk5上,en为使能端接一个开关sw1,reset为复位信号也是接了一个开关sw2。
管脚标号对应的I/O如下所示。
User
Assignmentsnodename
Set_location_assignmentPIN_CLK5-toCLK
Set_location_assignmentPIN_133-toled0
Set_location_assignmentPIN_135-toled1
Set_location_assignmentPIN_136-toled2
Set_location_assignmentPIN_137-toled3
Set_location_assignmentPIN_138-toled4
Set_location_assignmentPIN_141-toled5
Set_location_assignmentPIN_142-toled6
Set_location_assignmentPIN_128-toled7
Set_location_assignmentPIN_127-towei0
Set_location_assignmentPIN_126-towei1
Set_location_assignmentPIN_125-towei2
Set_location_assignmentPIN_32-toen
Set_location_assignmentPIN_33-toreset
4硬件仿真
将编译产生的SOF格式下载文件配置到FPGA中,进行硬件测试的步骤如下。
(1)按要求啊装好Quartus8.1软件,连接好下载电缆,将EP3C10适配板左下角的JTAG用十芯排线和万用下载区左下角的SOPCJTAG口连接起来,万用下载区右下角的电源开关拨到SOPC下载的一边,打开实验箱电源。
(2)在菜单“Tool”中选择“Programmer”,或直接单击工具栏上的快捷键。
(3)设置编程模式。
若是初次安装QuartusII,在下载编程前需要选择下载借口方式。
(4)在“Programmer”中“Mode”栏中有4中编程模式可以选择;JTAG,PassiveSerial,ActiveSerial和In-Socket。
为了直接对FPGA进行配置,在编程窗的编程模式“Mode”中选择“JTAG”。
并选中下载文件右侧的第一小方框Program/Configure。
核对下载路径与文件名,如果此文件没有出现或者有错,单击左侧的“AddFile”按钮,找到要下载的文件。
(5)单击“Start”按钮,即进入对目标器件FPGA的配置下载操作。
当“Progress”显示为100%时,编程成功,可以观察实验面板,进行硬件测试验证。
5结论
系统使用EDA技术设计了数字钟,采用硬件描述语言VHDL按模块化方式进行设计,然后进行编程,时序仿真,硬件仿真等。
利用VHDL语言完成了数字钟的设计。
该数字钟能实现时、分、秒技术的显示功能,并且以24小时循环计时。
整个系统结构简单,使用方便,功能齐全,精度高,具有一定的开发价值。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计的时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。
6课程心得
经过一个礼拜EDA课程设计,使我受益匪浅。
不仅使我们对EDA的课堂知识更加了解融会贯通,还让我们温习了之前做的EDA实验,对QuartusII软件更加熟悉。
通过本次课程设计的学习,我深深的体会到课程设计的重要性和目的性所在。
本次课程设计不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本只是,理论联系实际,独立自主的进行设计的能力。
它增强了我对EDA设计的兴趣,更掌握了基本的电路设计流程、方法以及技巧。
这不仅仅是一个学习新知识新方法的好机会,同时也是和我对所学只是的一次综合的检验和复习,使我明白了自己的权限所在,从而查漏补缺。
具备了这些基本只是,为今后的自主学习奠定了良好的基础。
我们研究了老师给的程序,去借了参考资料。
然后在机房对各个模块的进行仿真,验证是否正确,然后将各个模块连接,得到总的电路图,然后进行整体的仿真,整体仿真验证正确以后,就去机房做了硬件仿真。
开始的时候,引脚分配以后,发现6个数码管显示的时分秒顺序是混乱的,我们检查了电路、时钟、分频器都没有发现错误。
经过老师的帮忙,改了一些相关的数值,于是乎数码管的显示顺序正确了。
给老师检查,老师问为什么数码管上的点是亮着的,于是我们加了一个dp的输入引脚输入低电平,点就不亮了。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论只是是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的为社会服务,从而提高自己的实际动手能力和独立思考的能力,这毕竟是第一次做这方便的课程设计,难免会遇到各种各样没有遇到过的问题,同时在设计的过程中发现了自己许多的不足,对之前所学的只是理解的不够深刻,掌握的不够牢固。
总的来说,这次设计的数字钟还是比较成功的,在设计中遇到了很多问题,最后在老师的辛勤的指导下,终于解决问题获得成功,感觉非常有成就感。
觉得平时所学的只是有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少只是,而且锻炼了自己的能力,使自己对以后的路有了更加深入的了解,同时,对未来有了很多信心。
7参考文献
[1]黄科.EDA数字系统设计案例实践.北京:
清华大学出版社,2009.
[2]殷庆纵.EDA技术及应用.北京:
清华大学出版社,2013.
[3]李国洪.EDA技术与实验.北京:
机械工业出版社,2008.
[4]唐红莲.EDA技术与实践.北京:
清华大学出版社,2011.
[5]刘婷婷.电子设计自动化(EDA).北京:
北京师范大学出版社,2007.
课程设计成绩评定表
成
绩
评
定
项目
比例
得分
平时成绩(百分制记分)
30%
业务考核成绩(百分制记分)
70%
总评成绩(百分制记分)
100%
评定等级
优良中及格不及格
指导教师(签名):
20年月日
附录
六十进制计数器模块
该模块部分VHDL源程序如下:
LIBRARYieee;
USEieee.std_logic_1164.ALL;
USEi