基于FPGA的数字时钟的设计1.(精选)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于FPGA的数字时钟的设计课题:基于FPGA的数字时钟的设计
学院:电气信息工程学院
专业:测量控制与仪器
班级: 08测控(2)班
**:***
学号: ********
合作者姓名:颜志林
2010 年12 月12 日
综述
近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。
本次课程设计的目的在于培养学生对基本电路的应用和掌握,使学生在实验原理的指导下,初步具备基本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障、分析和处理实验结果及撰写实验报告的能力。综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。
本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固和掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识和了解。
1、课题要求
1.1课程设计的性质与任务
本课程是电子与信息类专业的专业的专业基础必修课——“数字电路”的配套实验课程。目的在于培养学生的理论联系实际,分析和解决问题的能力。通过本课程设计,使学生在理论设计、计算机仿真、指标调测、故障排除等方面得到进一步的训练,加强学生的实践能力。学生通过设计、仿真、调试、撰写设计报告等过程,培养学生的动手能力和严谨的工作作风。
1.2课程设计的基本技术要求
1)根据课题要求,复习巩固数字电路有关专业基础知识;
2)掌握数字电路的设计方法,特别是熟悉模块化的设计思想;
3) 掌握QUARTUS-2软件的使用方法;
4) 熟练掌握EDA工具的使用,特别是原理图输入,波形仿真,能对仿真波形进行分析;
5) 具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法;
6) 掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法;
7) 能根据设计要求对设计电路进行仿真和测试;
8) 掌握将所设计软件下载到FPGA芯片的下载步骤等等。
9) 将硬件与软件连接起来,调试电路的功能。
1.3课程设计的功能要求
基本功能:能进行正常的时、分、秒计时功能,分别由6个数码管显示24小时,60分钟,60秒钟的计数器显示。
附加功能:1)能利用硬件部分按键实现“校时”“校分”“清零”功能;
2)能利用蜂鸣器做整点报时:当计时到达59’59’’时开始报时,鸣叫时间1秒钟;
3)定时闹铃:本设计中设置的是在七点时进行闹钟功能,鸣叫过程中,能够进行中断闹铃工作。
本人工作:负责软件的编程与波形的仿真分析。
2、方案设计与分析
1.1设计方案
1、时钟功能,具有显示时、分、秒的功能;
2、具有整点报时功能,在整点时使用蜂鸣器进行报时,具有闹钟功能,鸣叫过程中,具有中断闹铃功能。
1.2设计要点
数字钟一般是由振荡器、分频器、计数器、译码器、显示器等几部分组成。这些都是数字电路中应用最广泛的基本电路,本设计分模块设计实现各部分功能,采用软件编程控制FPGA芯片内部产生振动周期为1s的脉冲。并将信号送入计数器进行计算,并把累加的结果以“时”、“分”、“秒”的数字显示出来。“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现;“分”的显示电路“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制电路来实现。所有计时结果由六位数码管显示。
1.3工作原理
数字电子钟由振荡器、分频器计数器、译码显示、报时等电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示,计时出现误差时,可以用校时电路“校时”“校分”“清零”。秒脉冲可以通过分频电路得到。通过报时设计模块可以实现整点报时及定时闹铃,译码显示由七段译码器完成,显示由数码管构成,采用的是动态显示方式。数码管动态显示:动态扫描电路将计数器输出的8421BGD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和为选信号。所谓动态扫描显示方式是在显示某一位LED 显示块的数据的时候,让其它位不显示,然后再显示下一位的数据。只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象。一般每一位的显示时间为1~10ms。
3、单元电路的设计,仿真与分析
(1)分频模块(fenpin)
1)程序:
library ieee;
use ieee.std_logic_1164.all;
entity fenpin is
port(clk6:in std_logic;
q1000,q5,q1:out std_logic);
end fenpin;
architecture ccc_arc of fenpin is
signal x:std_logic;
begin
process(clk6)
variable cnt:integer range 0 to 24999; begin
if clk6'event and clk6='1' then
if cnt<24999 then
cnt:=cnt+1;
else
cnt:=0;
x<=not x;
end if;
end if;
end process;
q1000<=x;
process(x)
variable cnt2:integer range 0 to 999; variable y:std_logic;
begin
if x'event and x='1' then