数电课程设计 - 基于FPGA的数字时钟的设计 - 图文
更新时间:2023-09-11 23:58:01 阅读量: 教育文库 文档下载
- 数电课程设计推荐度:
- 相关推荐
基于FPGA的数字时钟的设计
课 题: 基于FPGA的数字时钟的设计
学 院: 电气信息工程学院
专 业 : 测量控制与仪器
班 级 : 08测控(2)班
姓 名 : 潘 志 东
学 号 : 08314239
合作者姓名: 颜志林
2010 年 12 月 12 日
数 字 电 路 课 程 设 计
综述
近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。
本次课程设计的目的在于培养学生对基本电路的应用和掌握,使学生在实验原理的指导下,初步具备基本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障 、分析和处理实验结果及撰写实验报告的能力。综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。
本次设计我查阅了大量的文献资料,学到了很多关于数字电路方面的知识,并且更加巩固和掌握了课堂上所学的课本知识,使自己对数字电子技术有了更进一步的认识和了解。
- 2 -
数 字 电 路 课 程 设 计
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、方案设计与分析
- 3 -
数 字 电 路 课 程 设 计
1.1设计方案
1、时钟功能,具有显示时、分、秒的功能;
2、具有整点报时功能,在整点时使用蜂鸣器进行报时,具有闹钟功能,鸣叫过程中,具有中断闹铃功能。 1.2设计要点
数字钟一般是由振荡器、分频器、计数器、译码器、显示器等几部分组成。这些都是数字电路中应用最广泛的基本电路,本设计分模块设计实现各部分功能,采用软件编程控制FPGA芯片内部产生振动周期为1s的脉冲。并将信号送入计数器进行计算,并把累加的结果以“时”、“分”、“秒”的数字显示出来。“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现;“分”的显示电路“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制电路来实现。所有计时结果由六位数码管显示。 1.3工作原理
数字电子钟由振荡器、分频器 计数器、译码显示、报时等电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示,计时出现误差时,可以用校时电路“校时”“校分”“清零”。秒脉冲可以通过分频电路得到。通过报时设计模块可以实现整点报时及定时闹铃,译码显示由七段译码器完成,显示由数码管构成,采用的是动态显示方式。数码管动态显示:动态扫描电路将计数器输出的8421BGD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和为选信号。所谓动态扫描显示方式是在显示某一位LED 显示块的数据的时候,让其它位不显示,然后再显示下一位的数据。只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象。一般每一位的显示时间为1~10ms。
3、单元电路的设计,仿真与分析
- 4 -
数 字 电 路 课 程 设 计
(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
- 5 -
数 字 电 路 课 程 设 计
if cnt2<999 then cnt2:=cnt2+1; q1<='0'; else cnt2:=0; q1<='1'; end if; end if;
if x'event and x='1' then y:=not y; end if; q5<=y; end process; end ccc_arc; 2)仿真波形:
3)仿真结果分析:产生用于计时,扫描输入,扫描显示,以及蜂鸣器所需的各个频率的信号。
(2)秒模块(second) 1)程序: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity second is
port (clk1,en1:in std_logic;
- 6 -
数 字 电 路 课 程 设 计
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 is
signal cout2,cout1:std_logic_vector(3 downto 0); signal mm: std_logic; begin
process(clk1,en1) begin
if en1='1' then
cout2<=\elsif (clk1'event and clk1='1')then
if (cout2=5 and cout1=8) then cout2<=cout2;cout1<=cout1+1;mm<='1'; elsif (cout2=5 and cout1=9) then cout2<=\else if (cout1=9) then cout2<=cout2+1;cout1<=\ else cout2<=cout2;cout1<=cout1+1;mm<='0'; end if; end if; end if; end process; co1<=mm; qa<=cout2; qb<=cout1; end cc; 2)仿真波形:
- 7 -
数 字 电 路 课 程 设 计
3)仿真结果分析:该模块实际是一个六十进制计数器,而六十秒为一分钟,故用此模块可以作为秒部分设计,通过观察可知,仿真波形是正确可行的。
(3)分模块(minute) 1)程序: 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);
- 8 -
数 字 电 路 课 程 设 计
co2:out std_logic;
qd:out std_logic_vector(3 downto 0)); end minute;
architecture bb of minute is
signal cout2,cout1:std_logic_vector(3 downto 0); signal cc:std_logic; begin
process(clk2,en2) begin
if en2='1' then
if (clk2'event and clk2='1')then
if (cout2=5 and cout1=8) then cout2<=cout2;cout1<=cout1+1;cc<='1'; elsif (cout2=5 and cout1=9) then cout2<=\else if (cout1=9) then cout2<=cout2+1;cout1<=\ 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 bb 2)仿真波形:
- 9 -
数 字 电 路 课 程 设 计
3)仿真结果分析:此模块实际也是一个六十进制的计数器模块,六十分钟即为一个小时,用此模块就成功解决了分设计模块这个难题。从仿真波形可知,该设计时正确的。
(4)时模块(hour) 1)程序: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour is
- 10 -
数 字 电 路 课 程 设 计
(8)报时模块(alart) 1) 程序: library ieee;
use ieee.std_logic_1164.all; entity sst is
port(h1,h0,m1,m0,s1,s0:in std_logic_vector(3 downto 0); clk4:in std_logic; q500:out std_logic); end sst;
architecture sss of sst is begin
process(clk4,m1,m0,s1,s0) begin
if (clk4'event and clk4='1') then
if ((h1=\
or (m1=\ q500<='1'; else q500<='0'; end if; end if; end process; end sss; 2) 仿真波形:
- 16 -
数 字 电 路 课 程 设 计
3) 仿真结果分析:通过观察波形可知,当时钟时间与整点或闹铃预设时间相同时,给出一个脉冲信号,使蜂鸣器鸣叫,实现整点报时和定时闹铃功能。
(9)六进制计数器模块(cnt6) 1)程序: library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity cnt6 is
port (clk5:in std_logic;
n:out std_logic_vector(2 downto 0)); end cnt6;
architecture behav of cnt6 is
signal q1:std_logic_vector(2 downto 0); begin
process(clk5) begin
if clk5'event and clk5='1' then if q1<5 then q1<=q1+1;
else q1<=(others=>'0'); end if; end if;
- 17 -
数 字 电 路 课 程 设 计
end process; n<=q1; end behav; 2)仿真波形:
3) 仿真结果分析:很明显可以看出这是一个简单的六进制计数器。它与3-6译码器配合作用产生片选信号。
(10)两输入与模块(and2a) 1)程序: library ieee;
use ieee.std_logic_1164.all; entity anda is
port (a1,b1:in std_logic; y:out std_logic); end anda;
architecture an of anda is begin
y<=a1 and b1; end an; 2)仿真波形:
- 18 -
数 字 电 路 课 程 设 计
3) 仿真结果分析:经观察波形,程序正确。该与门的两个输入端分别为秒模块和分模块的进位输出信号,当它们均为高电平时,时模块使能端即为高电平,时模块工作。
(11)两输入或模块(or2a) 1)程序: library ieee;
use ieee.std_logic_1164.all; entity or_1 is
port (a1,b1:in std_logic; y:out std_logic); end or_1;
architecture oo of or_1 is begin y<=a1 or b1; end oo; 2)仿真波形:
3) 仿真结果分析:在整个数字钟程序设计中,两处用到两输入或门。一处是分模块,或门两输入分别是秒模块的进位输出信号和外部校分信号,任一一个信号为高电平,分模块使能端就为高电平,分模块工作。另一处是在时模块的使能端,它受分模块进位输出和外部校时信号输入的控制,只要其一位高电平,时模块都将工作。
4、顶层电路设计及仿真结果与分析
1)
程序:
library ieee;
- 19 -
数 字 电 路 课 程 设 计
use ieee.std_logic_1164.all; entity digital_clock is
port(clk,sa,sb,sc:in std_logic; q1:out std_logic;
r:out std_logic_vector(5 downto 0); q0:out std_logic_vector(6 downto 0)); end digital_clock;
architecture main of digital_clock is component anda
port(a1,b1:in std_logic; y:out std_logic); end component; component or_1
port(a1,b1:in std_logic; y:out std_logic); end component; component fenpin port(clk6:in std_logic; q1000,q1,q5:out std_logic); end component; component hour
port (clk3,en3:in std_logic;
qe:out std_logic_vector(3 downto 0); qf:out std_logic_vector(3 downto 0)); end component; component minute
port (clk2,en2:in std_logic;
qc:out std_logic_vector(3 downto 0); co2:out std_logic;
- 20 -
正在阅读:
数电课程设计 - 基于FPGA的数字时钟的设计 - 图文09-11
微型高清摄像机D88终极版教程04-27
江苏省淮安市淮海中学2016届高三上学期11月月考化学试题 Word版含答案04-30
2011学年第二学期期中考试高一政治试卷12-31
人力资源实习报告03-09
2016年高考二轮复习专题--专题一 离子反应和氧化还原反应05-01
最自豪的一件事作文300字07-03
浅谈工程造价管理-题目:我国工程造价管理现存的问题 - 图文05-24
肥西县上派镇丽景小学5.12方案03-21
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 设计
- 时钟
- 基于
- 课程
- 图文
- 数字
- FPGA
- 九年级历史上册第五单元资本主义的兴起第13课文艺复兴运动提高练习川教版2018101714
- 液化石油气二甲醚液化气储配站项目可行性研究报告
- 螺旋千斤顶设计说明书
- 李龙:文件测试:文件保存打开打印输出测试导入导出测试
- 激光双光栅法测量微小位移
- 沟渠、池塘水土地治理清理方案
- 毕业论文:浅析餐饮行业服务营销策略文献综述
- 插接式母线槽安装施工工法
- 宝宝一周岁感言
- MFS文件系统
- 2012年小学语文教师专业考试试题及答案(共七套)
- 学生会成立领导讲话3篇 -
- (三天)大数据时代的O2O实战课程大纲-详细版
- 2014山东公务员考试申论热点:做好环保工作 实现生态惠民
- 人民币升值对我国纺织品服装出口的影响 外文文献1
- 蒋勋 全集 音频 视频 文字 图片 全网最全
- 高中数学第一章三角函数1.1.1任意角课时提升作业2新人教A版必修4
- 中国烹饪概论
- 2017学业水平测试主观题答题模板
- 临电设计方案