EDA课程设计——多功能数字钟
- 格式:doc
- 大小:118.50 KB
- 文档页数:17
用EDA技术设计多功能数字钟摘要近年来,随着电子技术和通信技术的飞速发展,要求设计研究方面运用电子设计自动化(Electronic Design Automation,简称EDA)工具进行开发。
在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可靠性,减轻了设计者的劳动强度。
本设计为通过EDA仿真软件MAX+PLUSII设计一个多功能数字钟,并下载到硬件中实现。
本系统的设计电路由计时电路、动态显示电路、闹钟电路、控制电路、显示电路等部分组成。
本系统采用动态显示的原理在数码管上显示12小时计时的时刻,具有清零、保持、校时、报时的功能,并在此基础上增加了闹铃、秒表、12小时制计时、A/P显示等功能。
在设计过程中,将各部分均模块化,各模块间相互独立,又相互联系。
本实验吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。
本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。
关键词数字钟、计数器、多功能、动态显示、原理图、仿真、模块化AbstractRecently, with the rapid development of electronic and communication technology, it is required to use Electronic Design Automation (EDA) as a tool in designing systems. EDA derives from the concepts of Computer Aided Design, Computer Aided Manufacture, Computer Aided Test and Computer Aided Engineering in the 1990s. Designers use Hardware Describe Language to accomplish designing files on the platform of software. Then, computer will finish the work of logical compiling, simplification, division, synthesis, optimizing, layout, tracking and simulating automatically, and it can also accomplish the work of proper compiling, logical projecting and downloading of the target chip. As a result, it evidently improves the efficiency and reliability of the circuit design, and it also lighten designer’s workload.This experiment has designed a multifunctional digital clock via using the MAX+PLUSII, and the basic and extended performances and functions are successfully realized in the hardware. This system includes time circuit, alarm circuit, dynamic display circuit, control circuit, display circuit. In the system, the segment display can display time in the 24-hour format, it includes such functions as clear, hold, check the time and so on. We can also add alarm, stopwatch, 12-hour format display and other functions on that basic. In the designing process, many parts are modularized, they are not only independent but also related. Many functions are finished by the software. So it simples the circuit and enhances the stability of the system. Not only all the basic and extended performances and functions are successfully realized, but also accomplish some innovation functions.KeywordsDigital clock, arithmometer, multifunctional, dynamic display,schematic diagram, simulate, modularization目录摘要 1ABSTRACT 11、前言62、EDA技术的介绍及发展 73、总体方案设计 93.1 设计内容 93.2 方案比较 (9)3.3 方案论证 (10)3.4 方案选择 104、多功能数字中的设计 124.1 课题要求 124.2 课题分析 12 4.3 功能实现 134.3.1 秒计时模块 144.3.2 分计时模块 164.3.3 小时计时模块 17 4.3.4 校时校分模块 194.3.5 整点报时模块 194.3.6 时段控制模块 204.3.7 连接各模块 214.4 下载过程 234.5 总结报告 265、设计总结 285.1 设计小结 28 5.2 设计收获 285.3 设计改进 286、致谢 287、参考文献 301、前言本课题研究的背景和目的:二十一世纪是信息化高速发展的世纪,产业的信息化离不开硬件芯片的支持。
江汉大学文理学院EDA课程设计报告课程设计题目多功能数字钟部(系)信息技术学部专业姓名学号指导教师2014年 12 月 29 日目录一、设计目的 (1)二、设计要求 (1)三、硬件方案 (1)3.1 设计思路 (1)3.2 设计框图 (2)3.3 数字钟主控电路状态表 (3)四、软件方案 (4)4.1 按键消抖模块 (4)4.2 时钟计数器模块 (5)4.3 显示译码模块 (13)4.4 分频器模块 (15)4.5 主控制电路模块 (16)4.5.1 计数器控制模块 (16)4.5.2 闹钟计数器模块 (19)4.5.3 闹钟控制模块 (21)4.5.4 显示输出控制模块 (25)4.5.5 led控制模块 (26)4.5.6 主控模块 (29)4.6 电子钟系统原理图 (29)五、实现过程中遇到的问题及措施 (30)六、设计心得体会 (30)七、参考文献 (31)一、设计目的本课程设计的目的是熟练掌握相关软件的使用和操作。
能对VHDL语言程序进行编译,调试,以及通过计算机仿真,得到正确的仿真波形图,并根据所得仿真波形图分析判断并改进所设计的电路。
在成功掌握软件操作基础上,将所数字电路的基础课知识与VHDL语言的应用型知识结合起来并与实际设计,操作了解起来,即“理论了解实际”。
深入了解VHDL语言的作用与价值,对用硬件语言设计一个电路系统开始具备一个较完整的思路与较专业的经验。
对EDA技术有初步的认识,并开始对EDA 技术的开发创新有初步的理解。
二、设计要求设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进行手动调节以校时间,每逢整点,产生报时音报时。
三、硬件方案3.1 设计思路根据设计要求进行分析,数字钟应当有计数器,分频器,按键消抖,闹钟,显示及主控模块构成。
分频器用来提供时钟,计数器用于计时,按键消抖为系统提供准确的按键控制信号输入,闹钟用于提供闹钟功能,显示模块显示时间,主控模块根据按键输入控制各个模块以实现所需求功能。
EDA课程设计数字闹钟一、教学目标本课程旨在通过数字闹钟的设计与实现,让学生掌握EDA(电子设计自动化)的基本原理和方法,培养学生的实践能力和创新精神。
具体目标如下:知识目标:使学生了解数字闹钟的原理和结构,理解时钟芯片的工作原理,掌握EDA工具的使用方法。
技能目标:培养学生使用EDA工具进行数字电路设计的能力,提升学生的编程和调试技能,训练学生的团队协作和沟通能力。
情感态度价值观目标:培养学生对电子科技的兴趣和热情,增强学生解决实际问题的信心和勇气,培养学生负责任的工作态度和良好的团队合作精神。
二、教学内容本课程的教学内容主要包括数字闹钟的原理与设计、时钟芯片的工作原理、EDA工具的使用等。
1.数字闹钟的原理与设计:介绍数字闹钟的工作原理,包括时钟发生器、分频器、计数器等基本组成部分,以及如何实现闹钟功能。
2.时钟芯片的工作原理:讲解时钟芯片的内部结构和工作原理,使学生了解时钟芯片在数字电路中的应用。
3.EDA工具的使用:介绍常用的EDA工具,如Cadence、Altera等,讲解如何使用这些工具进行数字电路设计。
三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、案例分析法、实验法等。
1.讲授法:通过讲解数字闹钟的原理、时钟芯片的工作原理以及EDA工具的使用方法,使学生掌握相关知识。
2.案例分析法:分析实际案例,让学生了解数字闹钟设计的过程和注意事项。
3.实验法:让学生动手实践,使用EDA工具设计数字闹钟,提高学生的实践能力。
四、教学资源为了支持教学内容的实施,我们将准备以下教学资源:1.教材:选择合适的教材,如《数字电路与EDA技术》等,为学生提供理论支持。
2.多媒体资料:制作课件、视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。
3.实验设备:准备实验设备,如计算机、EDA工具软件、开发板等,为学生提供实践平台。
4.网络资源:利用网络资源,为学生提供更多的学习资料和实践案例,拓宽学生的视野。
E D A课程设计学院:电气信息学院专业年级:通信工程2013级姓名:学号课题: EDA课程设计指导老师:日期:2016年7月6日第一章多功能数字钟的设计1、设计任务了解数字钟的工作原理,进一步熟悉VHDL语言编写驱动七段数码管显示代码,并且掌握用多进程的方式实现一个综合性的程序。
最终实现硬件和软件多功能数字钟的设计。
(1)显示的格式为小时-分钟-秒钟,是24小时制,整点报时时间为5秒,级从整点前5秒钟开始进行报时提示,LED灯开始闪烁,过整点后,停止闪烁。
(2)系统时钟选择时钟模块的10KHz,要得到1Hz时钟信号,必须对系统时钟进行10000次分频。
(3)调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时,S2调节分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00-00-00。
2、方案设计2.1软件设计方案用VHDL语言编写程序实现设计内容中需要实现的功能。
将编写好的VHDL的程序加载到硬件电路中,从而驱动七段数码管时间,并用按键控制时间的变化,用软件仿真验证实验结果。
2.2硬件设计方案在软件方案实现的基础上,将已经运行成功的程序,将结果烧制到硬件电路中,最后生成顶层电路原理图。
3、设计的具体实现3.1设计步骤3.1.1打开QUARTUSII软件,新建一个工程3.1.2建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框;3.1.3按照自己设计方案,在VHDL编辑窗口编写VHDL程序;(程序见附录) 3.1.4编写完VHDL程序后,保存在自己新建的文件夹在D盘的目录下;3.1.5对自己编写的VHDL程序进行编译仿真,对程序的错误进行修改,直到完全通过编译和仿真;3.1.6仿真无误后,依照按键开关、数码管、LED灯与FPGA的管脚连接表进行管脚分配。
分配完成后,在进行编译一次,以使管脚分配生效;3.1.7用下载电缆通过JTAG口将对应的sof文件加载到FPGA中,观察设计结果是否和自己的编程思想一致。
课程设计说明书课程名称EDA课程设计题目多功能数字钟课程设计任务书设计题目多功能数字钟设计一、课程设计目的1、综合运用EDA技术,独立完成一个课题的设计,考察运用所学知识,解决实际问题的能力;2、结合理论知识,考察阅读参考资料、文献、手册的能力;3、进一步熟悉EDA技术的开发流程,掌握文件编辑、编译、仿真、下载验证等环节的实现方法和应用技巧;4、锻炼撰写研究报告、研究论文的能力;5、通过本实践环节,培养科学和严谨的工作作风。
二、设计内容、技术条件和要求l、能进行正常的时、分、秒计时功能,分别由6个数码显示24小时、60分钟的计数器显示。
2、能利用实验系统上的按钮实现“校时”、“校分”功能;(1)按下“SA”键时,计时器迅速递增,并按24小时循环;(2)按下“SB”键时,计时器迅速递增,并按59分钟循环,并向“时”进位;(3)按下“SC”键时,秒清零;抖动的,必须对其消抖处理。
3、能利用扬声器做整点报时:(1)当计时到达59’50”时开始报时,频率可为500Hz;计满23小时后回零;计满59分钟后回零。
(2)到达59’59”时为最后一声整点报时,整点报时的频率可定为lKHz。
4定时闹钟功能5、用层次化设计方法设计该电路,用硬件描述语言编写各个功能模块。
6、报时功能。
报时功能用功能仿真的仿真验证,可通过观察有关波形确认电路设计是否正确。
三、时间进度安排1周:(1) 完成设计准备,确定实施方案;(2) 完成电路文件的输入和编译;(4) 完成功能仿真。
2周:(1) 完成文件至器件的下载,并进行硬件验证;(2) 撰写设计说明书。
四、主要参考文献(1)谭会生、瞿遂春,《EDA技术综合应用实例与分析》,西安电子科技大学出版社,2004(2)曹昕燕、周凤臣等,《EDA技术实验与课程设计》,清华大学出版社,2006指导教师签字:2010年9月5日引言:人类社会已进入到高度发达的信息化社会。
信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步。
eda课程设计 数字钟。
一、课程目标知识目标:1. 让学生理解数字时钟的基本原理,掌握数字时钟电路的设计方法。
2. 使学生掌握EDA工具的使用,学会利用工具进行电路设计、仿真和调试。
3. 帮助学生了解数字时钟中各个模块的功能和相互关系。
技能目标:1. 培养学生运用EDA工具进行数字电路设计的能力。
2. 培养学生分析问题、解决问题的能力,能够根据实际需求设计简单的数字时钟电路。
3. 提高学生的动手实践能力,学会使用相关仪器设备进行电路调试。
情感态度价值观目标:1. 激发学生对电子设计的兴趣,培养创新意识和探索精神。
2. 培养学生良好的团队协作精神,学会与他人共同解决问题。
3. 培养学生严谨的科学态度和勤奋刻苦的学习精神。
课程性质:本课程为实践性课程,旨在通过数字时钟电路设计,提高学生的电子设计能力。
学生特点:学生具备一定的电子基础知识,对EDA工具感兴趣,但动手实践能力有待提高。
教学要求:注重理论与实践相结合,充分调动学生的积极性,引导学生主动参与教学活动,提高学生的实践能力。
教学过程中,注重培养学生的团队合作精神和创新能力,为学生的未来发展奠定基础。
通过本课程的学习,使学生能够具备独立设计、制作和调试数字时钟电路的能力。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本原理,分析数字时钟的各个模块功能,如秒脉冲发生器、计数器、显示驱动等。
2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等,使学生掌握使用EDA工具进行数字电路设计的方法。
3. 数字时钟电路设计:根据实际需求,制定数字时钟设计方案,包括选择合适的元器件、绘制原理图、编写程序等。
4. 电路仿真与调试:指导学生利用EDA工具进行电路仿真,分析电路性能,优化设计方案;并进行实际电路搭建与调试,培养学生的动手实践能力。
教学大纲安排如下:1. 第一周:数字时钟原理学习,熟悉各个模块功能。
EDA课程设计报告一·设计任务使用硬件描述语言,在CPLD/FPGA上实现一个多功能数字钟。
二·设计要求除按键、LED、扬声器、时钟信号外,整个数字钟的功能要求在一块芯片上实现。
a)具有时,分,秒,计数显示功能,以24小时循环计时;b)具有时间清零功能;c)具有小时、分钟和秒钟调整功能(个位和十位分开调或合起来调)。
d)具有闹钟功能,能预设闹钟时间,精确到秒。
整个数字钟只设一个时钟输入端口,所需不同频率信号在内部分频实现。
(LED扫描频率设为50Hz以上)。
三·设计方案设计采用模块方式,分别为分频模块:产生1Hz的脉冲作为秒的输入,和产生1kHz的脉冲作为数码管显示的动态扫描。
计时模块:秒模块,分模块,时模块。
闹钟模块,显示模块,控制模块。
四·模块端口设置1. 分频模块输入:clkin : 本实验输入为50MHz晶振输出:clk : 为显示模块及始终调节提供1KHz脉冲clkt: 为计数器模块提供1Hz脉冲2. 计时模块m 是模式按键,当m=0 时,进入计时模式,在计时模式下可以进行时间调整。
num3,num4 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。
counta,count1 是手动调节时间。
Turn 接按键,可以改变当前调节的是小时还是分钟,长按turn 键还可以使秒钟信号清零。
sec1,min1,hour1 输出的是计时的秒,分,时。
3.闹钟模块原理:num1,num2 产生加速调整时间,当其值为1 时,可以快速调整时间,该调整时间的频率由clk 提供。
countb,count2 是手动调节闹钟时间。
amin,ahour 是输出的闹钟的分钟和小时4. 控制模块m 是模式按键,当m=0 时,指当前输出的是计时功能;当m=1 时,指当前调整的是闹钟时间;当m=2 时,指当前调整的是计时时间;当m=3 时,此时turn 按键可用于跑表的暂停与开始。
多功能数字钟的设计.E D A课程设计(总13页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--EDA 课程设计报告书课题名称 多功能数字钟的设计 姓 名王兴俊学 号 0 院 系 物理与电信工程系 专 业 电子信息工程 指导教师周来秀讲师2011年 6月13日※※※※※※※※※※※※※ ※※※※※※※※※※※2008级学生EDA 课程设计多功能数字钟的设计王兴俊(湖南城市学院物理与电信工程系电子信息工程专业,湖南益阳,41300)1设计目的EDA是电子设计自动化的缩写,在20世纪如年代初从计算机辅助设计、计算机辅助制造、计算机辅助测试和计算机辅助工程的概念发展而来的。
传统意义上或者狭义上的EDA技术是指可编程技术,是以计算机为工具,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子EDA通用软件包,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
利用EDA技术进行电子系统的设计,具有以下几个特征:①用软件的方式设计硬件;②用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的;③设计过程中可用有关软件进行各种仿真;④系统可现场编程,在线升级;⑤整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。
因此,EDA技术是现代电子设计的发展趋。
利用EDA设计电子产品已经是势在必得了。
2设计的主要内容和要求a.数字钟能够显示年、月、天、小时、分钟、秒。
在数字钟正常工作时可以对数字钟进行快速校正,即拨动开关可对其进行校正,在数字钟正常工作情况下,可以对其进行不断电复位,以使时、分、秒显示回零。
b.对数字钟采用层次化的方法进行设计,要求设计层次清晰、合理,构成整个设计的功能模块既可采用原理图输入法实现,也可采用文本输入法实现。
多功能数字时钟设计说明:1.系统顶层框图:各模块电路功能如下:1.秒计数器、分计数器、时计数器组成最基本的数字钟,其计数输出送7段译码电路由数码管显示.2.基准频率分频器可分频出标准的1HZ频率信号,用于秒计数的时钟信号;分频出4HZ频率信号,用于校时、校分的快速递增信号;分频出64HZ频率信号,用于对按动“校时”,“校分”按键的消除抖动.2.多功能数字钟结构框图:一、系统功能概述已完成功能1.完成时/分/秒的依次显示并正确计数,利用六位数码管显示;2.时/分/秒各段个位满10正确进位,秒/分能做到满60向前进位,有系统时间清零功能;3.定时器:实现整点报时,通过扬声器发出高低报时声音;4.时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;5.闹钟:实现分/时闹钟设置,在时钟到达设定时间时通过扬声器响铃.有静音模式.待改进功能:1. 系统没有万年历功能,正在思考设计方法.2. 应添加秒表功能.二、系统组成以及系统各部分的设计1.时计数模块时计数模块就是一个2位10进制计数器,记数到23清零.VHDL的RTL描述如下:----cnt_h.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_h isport(en,clk,clr:in std_logic;dout:out std_logic_vector(7 downto 0);c:out std_logic);end cnt_h;architecture rtl of cnt_h issignal t:std_logic_vector(7 downto 0);beginprocess(en,clk,clr)variable t:std_logic_vector(7 downto 0);beginif en='1' then --异步使能if clk 'event and clk='1' thent:=t+1;if t(3 downto 0)=X"A" then --个位等于10则十位加1t(7 downto 4):=t(7 downto 4)+1;t(3 downto 0):=X"0"; --个位清零end if;if t>X"23" then --大于23清零t:=X"00";end if;end if;if clr='1' then --异步清零t:=X"00";end if;end if;dout<=t;end process;end rtl;时计数器模块仿真波形如下从仿真波形可知,当计数到23时,下一个时钟上升沿到来时就清零了,符合设计要求.时计数模块框图如下2.分及秒计数模块分及秒计数模块也是一个2位10进制计数器,记数到59清零.VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end cnt_s;architecture rtl of cnt_s isbeginprocess(en,clk,clr)beginif en='1' thenif clr='1' then --异步清零dout<=X"00";elsif clk 'event and clk='1' thenif dout(3 downto 0)<9 thendout(3 downto 0)<=dout(3 downto 0)+1;c<='0';elsif dout(7 downto 4)<5 thendout(3 downto 0)<=X"0";dout(7 downto 4)<=dout(7 downto 4)+1;elsedout<=X"00";c<='1';end if;end if;else dout<="ZZZZZZZZ";end if;end process;end rtl;分和秒计数器模块仿真波形如下从仿真波形可知,当计数到59时,下一个时钟上升沿到来时就清零了,并且产生进位信号,符合设计要求.分和秒计数模块框图如下3.按键消抖动模块按键消抖动有很多方案,这里选择的是计数消抖,即只当有效电平到来后开始计数,当计数值大于一定值后再输出该有效电平,否则不输出,从而达到消抖目的. VHDL的RTL描述如下:library ieee;use ieee.std_logic_1164.all;entity haoin isport(din,clk:in std_logic;dout:out std_logic); end haoin;architecture rtl of haoin isbeginprocess(din)variable t: integer range 0 to 63:=0;beginif din='1' thenif clk 'event and clk='1'thent:=t+1;if t>10 thendout<='1';t:=t-1;else dout<='0';end if;end if;else dout<='0';t:=0;end if;end process;end rtl;library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ring isport(clk: in std_logic;clk500: in std_logic;clk1k:in std_logic;beep:out std_logic);end ring;architecture rtl of ring isbeginprocess(clk)variable t: std_logic;variable n: integer range 0 to 15:=0;beginif clk 'event and clk='1' thent:=not t;n:=n+1;end if;if t='1' and n<11 thenbeep<=clk500;elsif n=11 thenbeep<=clk1k;else beep<='Z';end if;end process;end rtl;library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_arith.all;use IEEE.std_logic_unsigned.all;entity clock isport(SA: in std_logic;SB: in std_logic;SC: in std_logic;SD: in std_logic;clk1: in std_logic;dout: buffer std_logic_vector(23 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0);beep: out std_logic--led:out std_logic_vector(3 downto 0));end entity clock;architecture rtl of clock isco米ponent cnt_s isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0);c:out std_logic);end co米ponent;co米ponent cnt_h isport(en,clk,clr:in std_logic;dout:buffer std_logic_vector(7 downto 0));end co米ponent;--co米ponent seg米ain is--port(clk,reset_n:in std_logic;--datain:in std_logic_vector(15 downto 0);--seg_data:out std_logic_vector(7 downto 0);--seg_co米:out std_logic_vector(3 downto 0));--end co米ponent;--co米ponent ring is--port( en: in std_logic;-- clk: in std_logic;--clk500: in std_logic;--clk1k:in std_logic;--beep:out std_logic);--end co米ponent;co米ponent haoin isport(din,clk:in std_logic;dout:out std_logic);end co米ponent;co米ponent naoling isport (h,米:in std_logic_vector(7 downto 0);clk4hzh,clk4hz米:in std_logic;sys_en,sys_rst:in std_logic;h_o,米_o: out std_logic_vector(7 downto 0);beep:out std_logic);end co米ponent;signal reg_h:std_logic_vector(7 downto 0);signal reg_米:std_logic_vector(7 downto 0);signal reg_s:std_logic_vector(7 downto 0);signal reg_米_s:std_logic_vector(7 downto 0):=X"59"; signal reg_米_米:std_logic_vector(7 downto 0):=X"59";signal reg_米_h:std_logic_vector(7 downto 0):=X"59";signal clk_h:std_logic;signal clk_米:std_logic;signal clk_s:std_logic;signal c_s :std_logic;signal c_米:std_logic;signal c_h :std_logic;signal sys_clk1:std_logic;signal sys_clk4:std_logic;signal sys_clk64:std_logic;signal sys_clk500:std_logic;signal sys_clk1k:std_logic;signal clki:integer:=750000;signal sys_rst:std_logic:='0';signal sys_en:std_logic:='1';signal clk_ring,米h:std_logic;signal SAc,SBc,SCc,SDc:std_logic;signal en_r:std_logic;signal NL_reg_h,NL_reg_米:std_logic_vector(7 downto 0);signal NL_ring:std_logic;signal sys_clk4_NL_h,sys_clk4_NL_米:std_logic;beginh:cnt_h port 米ap(en=>sys_en,clk=>clk_h,clr=>sys_rst,dout=>reg_h);米:cnt_s port 米ap(en=>sys_en,clk=>clk_米,clr=>sys_rst,dout=>reg_米,c=>c_米);s:cnt_s port 米ap(en=>sys_en,clk=>sys_clk1,clr=>SCc,dout=>reg_s,c=>c_s);--sled:seg米ain port 米ap(clk=>clk1,reset_n=>SCc,seg_data=>seg_data,seg_co 米=>seg_co米,datain=>dout(15 downto 0));--ring0:ring port 米ap(en=>en_r,clk=>clk_ring,clk500=>sys_clk500,clk1k=>sys_clk1k,beep=>beep); haoin1:haoin port 米ap( SA,sys_clk64,SAc);haoin2:haoin port 米ap( SB,sys_clk64,SBc);haoin3:haoin port 米ap( SC,sys_clk64,SCc);haoin4:haoin port 米ap( SD,sys_clk64,SDc);NL:naoling port 米ap(beep=>NL_ring,h=>reg_h,米=>reg_米,clk4hzh=>sys_clk4_NL_h,clk4hz米=>sys_clk4_NL_米,sys_en=>sys_en,sys_rst=>sys_rst,h_o=>NL_reg_h,米_o=>NL_reg_米);beep<=clk_ring and 米h;--led<=reg_s(3 downto 0);p_sys_clk:process(clk1)variable t1,t4,t64,t500,t1k:integer range 0 to 50000000;beginif clk1 'event and clk1='1' thent1:=t1+1;t4:=t4+1;t64:=t64+1;t500:=t500+1;t1k:=t1k+1;if t1=clki/2 thent1:=0;sys_clk1<=not sys_clk1;end if;if t4=clki/8 thent4:=0;sys_clk4<=not sys_clk4;end if;if t64=clki/128 thent64:=0;sys_clk64<=not sys_clk64;end if;if t500=clki/1000 thent500:=0;sys_clk500<=not sys_clk500;end if;if t1k=clki/2000 thent1k:=0;sys_clk1k<=not sys_clk1k;end if;end if;end process p_sys_clk;p_c:process(SAc,SBc,SCc,SDc)beginif SAc='1' and SDc='0' thenclk_h<=sys_clk4;elseclk_h<=c_米;end if;if SAc='1' and SDc='1' thensys_clk4_NL_h<=sys_clk4;elsesys_clk4_NL_h<='0';end if;if SBc='1' and SDc='0'thenclk_米<=sys_clk4;elseclk_米<=c_s;end if;if SBc='1' and SDc='1'thensys_clk4_NL_米<=sys_clk4;elsesys_clk4_NL_米<='0';end if;if SDc='0' thendout(7 downto 0)<=reg_s;dout(15 downto 8)<=reg_米;dout(23 downto 16)<=reg_h;elsedout(7 downto 0)<="ZZZZZZZZ";dout(15 downto 8)<=NL_reg_米;dout(23 downto 16)<=NL_reg_h;end if;end process p_c;P_ring:process(reg_米,reg_s,sys_clk1k)variable clk_ring_t:std_logic;variable t:std_logic_vector(3 downto 0);beginif reg_米=X"59" and (reg_s=X"50" or reg_s=X"52" or reg_s=X"54" or reg_s=X"56" or reg_s=X"58") thenclk_ring_t:=sys_clk500;elsif reg_米=X"00" and reg_s=X"00" thenclk_ring_t:=sys_clk1k;else clk_ring_t:='Z';end if;if NL_ring='1' thenclk_ring_t:=sys_clk1k;end if;if sys_clk1k 'event and sys_clk1k='1' thent:=t+1;end if;if t>1 then 米h<='1';end if;clk_ring<=clk_ring_t;end process p_ring;end rtl;。
设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
具体实现方法为:首先利用一个模48和两个模1000的计数器将原始的48MHZ转换成数字计时器所需的1HZ。
然后利用1HZ作为时钟,用两个模60和一个模24计数器形成基本数字钟。
快速校时和校分只需利用适当的与门和或门添加到相应计时模块的时钟即可。
至于整点报时,利用相应的判别条件,再连入相应的的频率,最后送到蜂鸣器端口即可完成功能。
对于附加功能闹钟和星期。
闹钟的具体功能为可设置时间,可先清零后再重新设置,到点后以1KHZ鸣叫10秒,期间可关掉闹钟。
具体实现方法为:将开关K5作为闹钟的小时设定,开关K6作为闹钟的分钟设定,均作为计数器的时钟。
当这两个开关上下一次,小时和分钟均增加1。
然后再将闹钟的时间与数字钟的时间相比较,当两者完全相同时,蜂鸣器响起。
对于星期的设置比较简单,只需在数字钟小时模块后添加一个模8计数器,并在显示模块添加星期的相应输出即可。
对于实验调试所需注意的是:要对开关进行消颤,利用D触发器,且添加的频率不能太大。
关键字:分频、计数器、D触发器AbstractDesign a digital timer, which has the timing function counting from 00:00:00 to23:59:59, and can also maintain time 、clear time、rapidly adjust the minutes 、rapidly adjust the hours and timekeeping. The realizing specific methods are as follows .First, use a mold 48 and two mode 1000 counters to turn the original 48 MHz into a digital timer required 1HZ. Second , take the 1HZ as the clock to the basic digital clock formation of two mold 60 and a modulo 24 counters . Use the appropriate AND and OR gates added to the appropriate timing module can realize rapidly adjusting the minutes . As for timekeeping , using the corresponding discriminant conditions, connecting them with the corresponding frequency, and sending to the buzzer port can complete the function.Additional features include alarm clock and counting days of the week. The alarm clock can set the time, can be first cleared and then reseted, can sound for 10 seconds, and in the period can turn off the alarm. The specific method is: take K5 as the switch setting hour and take K6 as the switch setting minute, both as counters’ clock. Once these two switches up and down, hour and minute are both increase 1. Then compare the alarm time with the time of the digital clock . When they are the same, the buzzer start sounding . Setting the week is relatively simple, just adding a modulo 8 counter behind digital clock hour module and adding the corresponding output to the display module.For the debug experiments , use the D flip-flop to eliminate chatter and the frequency added can not be too much.Keywords:frequency converteion、counter、D flip-flop一.设计要求 (3)二.方案论证 (4)三.各子模块设计原理 (6)3.1 脉冲发生电路 (6)3.2 计时电路 (8)3.3 译码显示电路 (11)3.4整点报时电路 (12)3.5保持电路 (13)3.6清零电路 (14)3.7校分、校时电路 (14)3.8闹钟电路 (15)3.9星期电路 (20)四.下载调试 (20)五.结论 (21)六.实验感想 (21)参考文献 (24)附录 (24)多功能数字钟一、设计要求设计一个数字计时器,可以完成00:00:00到23:59:59的计时功能,并在控制电路的作用下具有保持、清零、快速校时、快速校分、整点报时等功能。
eda多功能数字时钟课程设计一、课程目标知识目标:1. 学生能理解数字时钟的基本原理,掌握EDA工具的使用方法,并运用相关电路知识设计多功能数字时钟。
2. 学生能够运用所学知识,分析并解释数字时钟电路中各个部分的功能及其相互关系。
3. 学生了解数字时钟在实际生活中的应用,理解其重要性。
技能目标:1. 学生能够运用EDA工具进行电路设计,具备实际操作能力。
2. 学生通过动手实践,培养解决实际问题的能力,提高创新意识和团队协作能力。
3. 学生能够运用所学知识,对数字时钟电路进行调试和优化。
情感态度价值观目标:1. 学生在学习过程中,培养对电子技术的兴趣,激发创新精神。
2. 学生通过团队合作,学会尊重他人,培养良好的沟通能力和团队精神。
3. 学生认识到科技发展对社会进步的重要性,树立正确的价值观。
课程性质:本课程为实践性较强的课程,结合理论教学,注重培养学生的动手能力和实际操作技能。
学生特点:学生具备一定的电子技术基础知识,对实践操作有较高的兴趣。
教学要求:教师需结合理论教学,指导学生进行实践操作,注重启发式教学,引导学生主动探究,提高学生的综合能力。
在教学过程中,关注学生的学习进度,及时调整教学策略,确保课程目标的实现。
通过课程学习,使学生能够将所学知识应用于实际生活中,提高学生的创新意识和实践能力。
二、教学内容本课程教学内容主要包括以下几部分:1. 数字时钟原理:讲解数字时钟的基本工作原理,包括时钟信号、计数器、显示驱动等组成部分。
2. EDA工具使用:介绍EDA工具的基本操作,如原理图绘制、电路仿真、PCB设计等。
3. 电路设计与实现:指导学生运用EDA工具设计多功能数字时钟电路,包括时钟信号电路、分频器、计数器、显示驱动和按键控制等模块。
4. 电路调试与优化:教授学生如何对设计的数字时钟电路进行调试,找出问题并进行优化。
教学内容与教材关联性如下:1. 《电子技术基础》中关于数字电路的基础知识,为理解数字时钟原理提供理论支持。
EDA课程设计时钟EDA课程设计姓名:学号:班级:自动化设计题目多功能数字钟电路设计设计任务及要求多功能数字钟应该具有的功能有:显示时—分—秒、小时和分钟可调等基本功能。
整个钟表的工作应该是在1Hz信号的作用下进行,这样每来一个时钟信号,秒增加1秒,当秒从59秒跳转到00秒时,分钟增加1分,同时当分钟从59分跳转到00分时,小时增加1小时,小时的范围为0~23时。
在实验中为了显示的方便,由于分钟和秒钟显示的范围都是从0~59,所以可以用一个3位的二进制码显示十位,用一个四位的二进制码(BCD码)显示个位,对于小时因为他的范围是从0~23,所以可以用一个2位的二进制码显示十位,用一个4位的二进制码(BCD 码)显示个位。
实验中由于七段码管是扫描的方式显示,所以虽然时钟需要的是1Hz时钟信号,但是扫描需要一个比较高频率的信号,因此为了得到准确的1Hz信号,必须对输入的系统时钟50Mhz 进行分频。
调整时间的按键用按键模块的S1和S2,S1调节小时,每按下一次,小时增加一个小时;S2调整分钟,每按下一次,分钟增加一分钟。
另外用S8按键作为系统时钟复位,复位后全部显示00—00—00。
三.基于VerilogHDL语言的电路设计、仿真与综合(一)顶层模块本程序采用结构化设计方法,将其分为彼此独立又有一定联系的三个模块,如图1所示:图1:顶层结构框图(二)子模块1.分频器分频器的作用是对50Mhz的系统时钟信号进行分频,得到频率为1000hz的信号,作为显示器的输入信号。
源程序如下:modulefenpin(inputCP,outputCPout);regCPout;reg[31:0]Cout;regCP_En;always@(posedg eCP)//将50MHz分频为1kHzbeginCout=(Cout==32'd50000)32'd0:(Cout+32'd1);CP_En=(Cout==32'd50000)1'd1:1'd0;CPout=CP_En;endendmodule功能仿真波形如图2所示(以五分频为例):2.控制器和计数器控制器的作用是,调整小时和分钟的值,并能实现清零功能。
eda课程设计 数字时钟一、课程目标知识目标:1. 学生能理解数字时钟的基本概念和原理,掌握数字时钟的组成、功能及使用方法。
2. 学生能够运用所学知识,分析并设计简单的数字时钟电路。
3. 学生了解EDA(电子设计自动化)软件在数字时钟设计中的应用。
技能目标:1. 学生能够运用EDA软件完成数字时钟电路的绘制、仿真和调试。
2. 学生能够运用逻辑电路知识,设计并实现数字时钟的基本功能,如时、分、秒显示。
3. 学生能够通过团队合作,解决数字时钟设计过程中遇到的问题。
情感态度价值观目标:1. 学生培养对电子设计技术的兴趣,提高创新意识和动手能力。
2. 学生在学习过程中,养成积极思考、主动探究的良好习惯。
3. 学生通过团队合作,培养沟通协作能力和集体荣誉感。
课程性质:本课程为实践性课程,以学生动手实践为主,注重培养学生的实际操作能力和创新能力。
学生特点:本课程面向初中生,学生对电子技术有一定了解,具备基本的逻辑思维能力,但实际操作能力有待提高。
教学要求:教师应结合学生特点,采用任务驱动法、分组合作法等教学方法,引导学生主动参与,确保课程目标的实现。
同时,注重过程评价和成果评价,全面评估学生的学习成果。
二、教学内容本章节教学内容依据课程目标,紧密结合教材,确保科学性和系统性。
具体内容包括:1. 数字时钟基础知识:介绍数字时钟的原理、组成及功能,对应教材第3章“数字电路基础”。
- 时钟信号产生- 计数器原理- 显示技术2. EDA软件应用:学习EDA软件的使用方法,绘制数字时钟电路图,对应教材第5章“EDA技术及其应用”。
- EDA软件操作- 电路图绘制- 电路仿真与调试3. 数字时钟电路设计:运用逻辑电路知识,设计数字时钟电路,对应教材第4章“组合逻辑电路”。
- 逻辑门电路- 时钟分频器设计- 计数器设计- 显示控制电路4. 数字时钟制作与调试:分组合作,动手实践,完成数字时钟的制作与调试,对应教材第6章“数字电路实践”。
EDA数字钟的设计指导老师:谭雪琴姜萍姓名:张羊学院:电子工程与光电技术学院专业:真空电子技术学号:0804620127完成时间:2011年4月目录:一.设计要求………………………………………………………………二.方案论证………………………………………………………………三.子模块设计……………………………………………………………1.频率源设计……………………………………………………………①模48计数器的设计………………………………………………②模1000计数器的设计……………………………………………③模2计数器的设计………………………………………………④ 1KHZ脉冲的设计…………………………………………………⑤ 500HZ脉冲的设计………………………………………………⑥ 1HZ脉冲的设计…………………………………………………2.计数部分电路设计……………………………………………………①模60计数器的设计………………………………………………②模24计数器的设计………………………………………………③计数器的设计……………………………………………………3.清零和保持电路的设计………………………………………………4.校分和校时电路的设计………………………………………………5.报时电路的设计………………………………………………………6.显示电路的设计………………………………………………………①模6计数器的设计………………………………………………② 24选4(或六选一)数据选择器的设计…………………………③动态显示设计……………………………………………………7.最终总体电路…………………………………………………………四.附加闹铃功能…………………………………………………………①频率源的设计……………………………………………………②闹铃的设计………………………………………………………五.编程下载………………………………………………………………六.实验总结和感受………………………………………………………七.参考文献………………………………………………………………中文摘要本实验利用QuartusII软件,结合所学的数字电路的知识设计一个24时多功能数字钟,具有正常计数、快速校分校时、整点报时功能。
多功能数字电子钟一、设计要求1、具有以二十四小时计时、显示、整点报时、时间设置和闹钟的功能。
2、设计精度要求为1S。
二.系统功能描述1 . 系统输入:系统状态及校时、定时转换的控制信号为k、mode、set;时钟信号clk,采用1024Hz;系统复位信号为reset。
输入信号均由按键产生。
系统输出:LED显示输出,蜂鸣器声音信号输出。
多功能数字钟系统功能的具体描述如下:2. 计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。
3. 校时:在计时状态显示下,按下“set键”,进入“小时”校准状态,之后按下“k键”则进入“分”校准状态,继续按下“k键”则进入“秒复零”状态,第三次按下“k 键”又恢复到正常计时显示状态。
1)“小时”校准状态:在“小时”校准状态下,显示“小时”数码管以1Hz的频率递增计数。
2)“分”校准状态:在“分”校准状态下,显示“分”的数码管以1Hz的频率递增计数。
3)“秒”复零状态:在“秒复零”状态下,显示“秒”的数码管复零。
4. 整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57‘秒发频率为512Hz的低音,在“59”分钟的第“59”秒发频率为1024Hz的高音,结束时为整点。
5. 显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。
闹钟:闹钟定时时间到,蜂鸣器发出周期为1s的“滴”、“滴”声,持续时间为10s;闹钟定时显示。
6. 闹钟定时设置:在闹钟定时显示状态下,按下“set键”,进入闹钟的“时”设置状态,之后按下“k键”进入闹钟的“分”设置状态,继续按下“k 键”则进入“秒”设置状态,第三次按下“k键”又恢复到闹钟定时显示状态。
1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管以1Hz的频率递增计数。
2)闹钟:“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管以1Hz的频率递增计数。
三、控制器的MDS图及多功能数字系统结构逻辑框图1、控制器的MDS图S0:显示计时时间s1:调计时的时s2:调计时的分s3:调计时的秒S4:显示闹铃时间s5:调闹铃的时s6:调闹铃的分s7:调闹铃的秒2、多功能数字系统结构逻辑框图四、各功能模块设计说明及源程序1、控制器:设计说明:根据外部的输入控制信号,完成各个状态之间的转换,并在相应状态输出相应的控制信号,从而对整个系统的工作进行控制。
目录一、实验任务 (1)二、关键词 (1)三、内容摘要 (1)四、数字钟电路系统组成框图 (2)五、各个功能模块的实现 (3)(1)小时计时 (3)(2)分钟计时 (3)(3)秒钟计时 (4)(4)校时校分 (5)(5)整点报时 (6)(6)时段控制 (6)六、数字钟的顶层文件 (7)七、下载 (8)(1)添加译码模块后的原理图 (8)(2)选用芯片 (8)(3)分配引脚号 (9)(4)器件下载 (9)(5)效果显示 (9)八、遇到的问题及解决办法 (12)九、《课程设计》中设计项目完成最终结论 (13)十、结束语 (13)十一、附录 (14)一、实验任务:用FPGA器件和EDA技术实现多功能数字钟的设计已知条件:1、QuartusП软件2、FPGA实验开发装置基本功能:1、以数字形式显示时、分、秒的时间;2、小时计数器为24进制;3、分、秒计数器为60进制。
拓展功能:1、校时、校分(有两个使能端构成,分别为校时、校分功能,同时按无效)2、仿电台报时(每个小时的59分51、53、55、57、59分别以四长声一短声进行报时)3、时段控制(让信号显示灯在晚上19点至早上5点灭。
之后亮)二、关键词小时、分钟计时模块、顶层文件、整点报时、时段控制、下载模块三、内容摘要1、设计要求:(1)小时计数器为8421BCD码24制;分和秒计数器为8421BCD 码60进制计数器;(2)拓展功能:①校正“时”和“分”;②整点报时;③时段控制。
2、硬件描述语言设计(Verilog HDL语言)方法在QuartusП软件系统平台上建立数字电子钟电路的顶层文件并完成编译和仿真。
3、输入变量:时钟CPS,直接清零RD;输出变量:小时计时H[7..4]、H[3..0]为8421BCD码输出,其时钟为CPH;之后的分计时、秒计时均为8421BCD码输出,其时钟为CPS等。
4、在顶层文件中,由若干低层模块“打包”组成整个多功能数字钟,分别对各模块作设计及仿真,最后级联各模块,统调、仿真及下载,从而实现各项功能。
湖北大学物电学院EDA课程设计报告(论文)题目:多功能数字钟设计专业班级: 14微电子科学与工程*名:**时间:2016年12月20日指导教师:万美琳卢仕完成日期:2015年12月20日多功能数字钟设计任务书1.设计目的与要求了解多功能数字钟的工作原理,加深利用EDA技术实现数字系统的理解2.设计内容1,能正常走时,时分秒各占2个数码管,时分秒之间用小时个位和分钟个位所在数码管的小数点隔开;2,能用按键调时调分;3,能整点报时,到达整点时,蜂鸣器响一秒;4,拓展功能:秒表,闹钟,闹钟可调3.编写设计报告写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩在规定时间内,完成叙述并回答问题。
目录(四号仿宋_GB2312加粗居中)(空一行)1 引言 (1)2 总体设计方案 (1)2.1 设计思路 (1)2.2总体设计框图 (2)3设计原理分析 (3)3.1分频器 (4)3.2计时器和时间调节 (4)3.3秒表模块 (5)3.4状态机模块 (6)3.5数码管显示模块 (7)3.6顶层模块 (8)3.7管脚绑定和顶层原理图 (9)4 总结与体会 (11)多功能电子表摘要:本EDA课程主要利用QuartusII软件Verilog语言的基本运用设计一个多功能数字钟,进行试验设计和软件仿真调试,分别实现时分秒计时,闹钟闹铃,时分手动较时,时分秒清零,时间保持和整点报时等多种基本功能关键词:Verilog语言,多功能数字钟,数码管显示;1 引言QuartusII是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,解决了传统硬件电路连线麻烦,出错率高且不易修改,很难控制成本的缺点。
利用软件电路设计连线方便,修改容易;电路结构清楚,功能一目了然2 总体设计方案2.1 设计思路根据系统设计的要求,系统设计采用自顶层向下的设计方法,由时钟分频部分,计时部分,按键调时部分,数码管显示部分,蜂鸣器四部分组成。
哈尔滨工业大学(威海)电子学课程设计报告带有整点报时的数字钟设计与制作**: ***班级: 0802503学号: *************: **目录一、课程设计的性质、目的和任务 (3)二、课程设计基本要求 (3)三、设计课题要求 (3)四、课程设计所需要仪器 (4)五、设计步骤 (4)1、整体设计框图 (4)2、各个模块的设计与仿真 (4)2.1分频模块 (4)2.2计数器模块 (6)2.3控制模块 (10)2.4数码管分配 (13)2.5显示模块 (14)2.6报时模块 (16)六、调试中遇到的问题及解决的方法 (18)七、心得体会 (18)一、课程设计的性质、目的和任务创新精神和实践能力二者之中,实践能力是基础和根本。
这是由于创新基于实践、源于实践,实践出真知,实践检验真理。
实践活动是创新的源泉,也是人才成长的必由之路。
通过课程设计的锻炼,要求学生掌握电路的一般设计方法,具备初步的独立设计能力,提高综合运用所学的理论知识独立分析和解决问题的能力,培养学生的创新精神。
二、课程设计基本要求掌握现代大规模集成数字逻辑电路的应用设计方法,进一步掌握电子仪器的正确使用方法,以及掌握利用计算机进行电子设计自动化(EDA)的基本方法。
三、设计课题要求(1)构造一个24小时制的数字钟。
要求能显示时、分、秒。
(2)要求时、分、秒能各自独立的进行调整。
(3)能利用喇叭作整点报时。
从59分50秒时开始报时,每隔一秒报时一秒,到达00分00秒时,整点报时。
整点报时声的频率应与其它的报时声频有明显区别。
#设计提示(仅供参考):(1)对频率输入的考虑数字钟内所需的时钟频率有:基准时钟应为周期一秒的标准信号。
报时频率可选用1KHz和2KHz左右(两种频率相差八度音,即频率相差一倍)。
另外,为防止按键反跳、抖动,微动开关输入应采用寄存器输入形式,其时钟应为几十赫兹。
(2)计时部分计数器设计的考虑分、秒计数器均为模60计数器。
小时计数为模24计数器,同理可建一个24进制计数器的模块。
(3)校时设计的考虑数字钟校准有3个控制键:时校准、分校准和秒校准。
微动开关不工作,计数器正常工作。
按下微动开关后,计数器以8Hz频率连续计数(若只按一下,则计数器增加一位),可调用元件库中的逻辑门建一个控制按键的模块,即建立开关去抖动电路(见书70页)。
(4)报时设计的考虑可以将高频时钟分频得到约2KHz和1KHz的音频,作为数字钟的报时频率。
当电子钟显示XX:59:50时,数字钟开始报时“DO",持续一秒,而且每隔一秒报一下,直至显示XX:00:00时报“DI",持续一秒后停止。
最后输出至喇叭。
应调用元件库中的逻辑门建一个控制报时的模块。
(5)建一个七段译码的模块因在系统可编程器件实验箱上的数码管没有经过译码,故要用AHDL语言写一个七段译码的模块,且应考虑数码管为共阳极。
数码管上的点(D2、D4、D6)应置Vcc。
四、课程设计所需要仪器1、计算机一台2、quartusⅡ软件3、FPGA开发板五、设计步骤1、模块介绍(1)分频模块:产生1Hz、1KHz、2KHz频率(2)计数器模块:生成60进制、24进制计数器(3)控制模块:按键控制、按键消抖(4)显示模块:7段数码管显示器,分别显示小时、分钟、秒(5)报时模块:进行整点报时2、各个模块的设计与仿真2.1分频模块CLK晶振频率50MHZ,分成2KHZ,1KHZ,1HZ的信号。
基准1HZ信号作为时钟计时的秒计数时钟信号;分频的1KHZ,2KHZ信号用于报时电路的不同声讯。
程序代码:library ieee;use ieee.std_logic_1164.all;entity fre isport(clk ,sel: in std_logic;clk1hz,clk1khz,clk2khz:out std_logic);end fre;architecture beh of fre issignal data1khz,data2khz,data1hz : std_logic := '0';beginclk1hz <= data1hz;clk1khz <= data1khz;clk2khz <= data2khz;clk1khz_pro : process(clk) --产生1khz信号 variable cnt : integer range 0 to 24999;beginif clk'event and clk='1' thenif cnt = 24999 thencnt := 0 ; data1khz <= not data1khz;elsecnt := cnt + 1;end if;end if;end process clk1khz_pro;clk2khz_pro : process(clk) --产生2khz信号 variable cnt : integer range 0 to 12499;beginif clk'event and clk='1' thenif cnt = 12499 thencnt := 0 ; data2khz <= not data2khz;elsecnt := cnt + 1;end if;end if;end process clk2khz_pro;clk1hz_pro : process(data1khz) --产生1hz 信号 variable cnt : integer range 0 to 499;beginif data1khz'event and data1khz='1' thenif sel='0' then cnt:=0;else if cnt = 499 thencnt := 0 ;data1hz <= not data1hz ;elsecnt := cnt + 1;end if;end if;end if;end process clk1hz_pro;end beh;输入模块电路图:f reinst clk sel clk1hzclk1khzclk2khz2.2计数器模块由秒计数器,分计数器,时计数器组成了最基本的数字钟计时电路,两个六十进制计数器与二十四进制计数器组合构成。
程序代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use IEEE.STD_LOGIC_ARITH.ALL;entity shuzizhong isport(clk_change : in std_logic;s_en,m_en,h_en:in std_logic;sel:in std_logic;secout,minout,hourout :out std_logic;sl,sh,ml,mh,hl,hh:out std_logic_vector(3 downto 0);a:out std_logic_vector(15downto 0));end shuzizhong;architecture behav of shuzizhong issignallow_rega,high_rega,low_regb,high_regb,low_regc,high_regc :std_log ic_vector(3 downto 0):="0000";signal sout,mout,hout :std_logic :='0';begin--秒的60进制进制 counter_sec_l : process(clk_change,s_en)beginsl<=low_rega;sh<=high_rega;ml<=low_regb;mh<=high_regb;hl<=low_reg c;hh<=high_regc;if clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenlow_rega <= "0000";elselow_rega <= low_rega+'1';end if;end if;end if;end process counter_sec_l;counter_sec_h : process(clk_change,s_en,low_rega)beginif clk_change'event and clk_change='1' thenif s_en='1' thenif low_rega="1001" thenif high_rega ="0101"thenhigh_rega <= "0000";elsehigh_rega <= high_rega+'1'; end if;end if;end if;end if;end process counter_sec_h;sout <= '1' when low_rega="1001" and high_rega="0101" else '0';----分钟的60进制设置counter_min_l : process(clk_change,m_en)beginif clk_change'event and clk_change='1' thenif m_en='1' thenif sout='1'or sel='0' thenif low_regb="1001" thenlow_regb <= "0000";elselow_regb <= low_regb+'1';end if;end if;end if;end if;end process counter_min_l;counter_min_h : process(clk_change,m_en,low_regb)beginif clk_change'event and clk_change='1' thenif sout='1'or sel='0' thenif m_en='1' thenif low_regb="1001" thenif high_regb ="0101"thenhigh_regb <= "0000";elsehigh_regb <= high_regb+'1'; end if;end if;end if;end if;end if;end process counter_min_h;mout <= '1' when low_regb="1001" and high_regb="0101"and sout='1' else '0';--小时的24进制设置counter_hour_l : process(clk_change,h_en)beginif clk_change'event and clk_change='1' thenif h_en='1' thenif mout='1'or sel='0' thenif low_regc="1001"or hout='1' thenlow_regc <= "0000";elselow_regc <= low_regc+'1';end if;end if;end if;end if;end process counter_hour_l;counter_hour_h : process(clk_change,h_en,hout)beginif clk_change'event and clk_change='1' then if mout='1'or sel='0' thenif h_en='1' thenif hout='1' thenhigh_regc<="0000";else if low_regc="1001" thenhigh_regc <= high_regc+'1'; end if;end if;end if;end if;end if;end process counter_hour_h;hout <= '1' when low_regc="0011" and high_regc="0010" else '0'; secout<=sout;minout<=mout;hourout<=hout;a<=high_regb&low_regb&high_rega&low_rega ;end behav;输入模块电路图:shuzizhonginst clk_changes_enm_enh_ensel secout minout hourout sl[3..0]sh[3..0]ml[3..0]mh[3..0]hl[3..0]hh[3..0]a[15..0]2.3控制模块分五个状态0状态正常计时,按下按键进入下一状态开始调时模式1,按下按键进入调秒模式2,按下按键进入调分模式3,按下按键进入调小时模式4.按下按键恢复正常计时模式。