基于FPGA的数字时钟的设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于FPGA的数字时钟的设计.doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字时钟的设计.doc(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、. .基于FPGA的数字时钟的设计课 题: 基于FPGA的数字时钟的设计 学 院: 电气信息工程学院 专 业: 测量控制与仪器 班 级 : 08测控2班 姓 名 : 志 东 学 号 : 08314239 合作者XX: 颜志林 2021 年 12 月 12 日综述近年来随着数字技术的迅速开展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的根本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等根本电路的根本实验技能外,还必须培养大学生工程设
2、计和组织实验能力。本次课程设计的目的在于培养学生对根本电路的应用和掌握,使学生在实验原理的指导下,初步具备根本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障 、分析和处理实验结果及撰写实验报告的能力。综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进展电路设计、安装、调试等环节,运用所学知识进展工程设计、提高实验技能的实践。数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加稳固和掌握了课堂上所学的课本知识,使自己对数字电子技术有了更
3、进一步的认识和了解。1、 课题要求1.1课程设计的性质与任务本课程是电子与信息类专业的专业的专业根底必修课“数字电路的配套实验课程。目的在于培养学生的理论联系实际,分析和解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力和严谨的工作作风。1.2课程设计的根本技术要求1根据课题要求,复习稳固数字电路有关专业根底知识;2掌握数字电路的设计方法,特别是熟悉模块化的设计思想;3) 掌握QUARTUS-2软件的使用方法;4) 熟练掌握EDA工具的使用,特别是原理图输入
4、,波形仿真,能对仿真波形进展分析;5) 具备EDA技术根底,能够熟练使用VHDL语言进展编程,掌握层次化设计方法;6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法;7) 能根据设计要求对设计电路进展仿真和测试;8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。9) 将硬件与软件连接起来,调试电路的功能。1.3课程设计的功能要求根本功能:能进展正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。附加功能:1能利用硬件局部按键实现“校时“校分“清零功能; 2能利用蜂鸣器做整点报时:当计时到达5959时开场报时,鸣叫时间1秒钟;
5、3定时闹铃:本设计中设置的是在七点时进展闹钟功能,鸣叫过程中,能够进展中断闹铃工作。本人工作:负责软件的编程与波形的仿真分析。2、 方案设计与分析1.1设计方案 1、时钟功能,具有显示时、分、秒的功能; 2、具有整点报时功能,在整点时使用蜂鸣器进展报时,具有闹钟功能,鸣叫过程中,具有中断闹铃功能。1.2设计要点数字钟一般是由振荡器、分频器、计数器、译码器、显示器等几局部组成。这些都是数字电路中应用最广泛的根本电路,本设计分模块设计实现各局部功能,采用软件编程控制FPGA芯片内部产生振动周期为1s的脉冲。并将信号送入计数器进展计算,并把累加的结果以“时、“分、“秒的数字显示出来。“秒的显示由两级
6、计数器和译码器组成的六十进制计数电路实现;“分的显示电路“秒一样,“时的显示由两级计数器和译码器组成的二十四进制电路来实现。所有计时结果由六位数码管显示。1.3工作原理数字电子钟由振荡器、分频器 计数器、译码显示、报时等电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1规律计数。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示,计时出现误差时,可以用校时电路“校时“校分“清零。秒脉冲可以通过分频电路得到。通过报时设计模块可以实现整点报时及定时闹铃
7、,译码显示由七段译码器完成,显示由数码管构成,采用的是动态显示方式。数码管动态显示:动态扫描电路将计数器输出的8421BGD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和为选信号。所谓动态扫描显示方式是在显示某一位LED显示块的数据的时候,让其它位不显示,然后再显示下一位的数据。只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象。一般每一位的显示时间为110ms。3、 单元电路的设计,仿真与分析1分频模块fenpin1程序:library ieee;use ieee.std_logic_1164.all;entity fenpin is
8、port(clk6:in std_logic; q1000,q5,q1:out std_logic);end fenpin;architecture ccc_arc of fenpin issignal x:std_logic;begin process(clk6) variablet:integer range 0 to 24999; begin if clk6event and clk6=1 then ift24999 then t:=t+1; else t:=0; x=not x; end if; end if;end process;q1000=x;process(x)variable
9、t2:integer range 0 to 999;variable y:std_logic;begin if xevent and x=1 then ift2999 then t2:=t2+1; q1=0; else t2:=0; q1=1; end if; end if;if xevent and x=1 theny:=not y;end if;q5=y;end process;end ccc_arc;2仿真波形:3) 仿真结果分析:产生用于计时,扫描输入,扫描显示,以及蜂鸣器所需的各个频率的信号。2秒模块second1程序:library ieee;use ieee.std_logic_
10、1164.all;use ieee.std_logic_unsigned.all;entity second is port (clk1,en1:in std_logic; qa:out std_logic_vector(3 downto 0); co1:out std_logic; qb:out std_logic_vector(3 downto 0);end second;architecture cc of second issignal cout2,cout1:std_logic_vector(3 downto 0);signal mm: std_logic;beginprocess(
11、clk1,en1)beginif en1=1 thencout2=0000;cout1=0000;elsif (clk1event and clk1=1)thenif (cout2=1 and cout1=8) then cout2=cout2;cout1=cout1+1;mm=1;elsif (cout2=1 and cout1=9) then cout2=0000;cout1=0000;mm=0;else if (cout1=9) then cout2=cout2+1;cout1=0000;mm=0; else cout2=cout2;cout1=cout1+1;mm=0; end if;
12、end if; end if;end process;co1=mm;qa=cout2;qb=cout1;end cc;2仿真波形:3) 仿真结果分析:该模块实际是一个六十进制计数器,而六十秒为一分钟,故用此模块可以作为秒局部设计,通过观察可知,仿真波形是正确可行的。3分模块minute1程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity minute is port (clk2,en2:in std_logic; qc:out std_logic_vector(3 downto 0
13、);co2:out std_logic; qd:out std_logic_vector(3 downto 0);end minute;architecture bb of minute issignal cout2,cout1:std_logic_vector(3 downto 0);signal cc:std_logic;beginprocess(clk2,en2)beginif en2=1 thenif (clk2event and clk2=1)thenif (cout2=1 and cout1=8) then cout2=cout2;cout1=cout1+1;cc=1;elsif
14、(cout2=1 and cout1=9) then cout2=0000;cout1=0000;cc=0;else if (cout1=9) then cout2=cout2+1;cout1=0000;cc=0; else cout2=cout2;cout1=cout1+1;cc=0; end if;end if;end if; end if;end process;co2=cc;qc=cout2;qd=cout1;end bb2仿真波形:3) 仿真结果分析:此模块实际也是一个六十进制的计数器模块,六十分钟即为一个小时,用此模块就成功解决了分设计模块这个难题。从仿真波形可知,该设计时正确的。
15、4时模块hour1程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity hour is port (clk3,en3:in std_logic; qe:out std_logic_vector(3 downto 0); qf:out std_logic_vector(3 downto 0);end hour;architecture aa of hour issignal cout2,cout1:std_logic_vector(3 downto 0);beginprocess(cl
16、k3,en3)beginif en3=1 thenif (clk3event and clk3=1)thenif (cout2=4 and cout1=0) then cout2=0000;cout1=0000;else if (cout1=9) then cout2=cout2+1;cout1=0000; else cout2=cout2;cout1=cout1+1; end if;end if;end if; end if;end process;qe=cout2;qf=cout1;end aa;2仿真波形:3) 仿真结果分析:这是一个24计数器,用来表示24小时,通过波形可知,程序设计正
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 数字 时钟 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内