数电课程设计基于FPGA的数字时钟的设计图文.docx

上传人:b****4 文档编号:4267305 上传时间:2023-05-06 格式:DOCX 页数:8 大小:17.68KB
下载 相关 举报
数电课程设计基于FPGA的数字时钟的设计图文.docx_第1页
第1页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第2页
第2页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第3页
第3页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第4页
第4页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第5页
第5页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第6页
第6页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第7页
第7页 / 共8页
数电课程设计基于FPGA的数字时钟的设计图文.docx_第8页
第8页 / 共8页
亲,该文档总共8页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数电课程设计基于FPGA的数字时钟的设计图文.docx

《数电课程设计基于FPGA的数字时钟的设计图文.docx》由会员分享,可在线阅读,更多相关《数电课程设计基于FPGA的数字时钟的设计图文.docx(8页珍藏版)》请在冰点文库上搜索。

数电课程设计基于FPGA的数字时钟的设计图文.docx

数电课程设计基于FPGA的数字时钟的设计图文

数电课程设计-基于FPGA的数字时钟的设计-图文

基于FPGA的数字时钟的设计

课题:

基于FPGA的数字时钟的设计

学院:

电气信息工程学院

专业:

测量控制与仪器

班级:

08测控

(2)班

姓名:

潘志东

学号:

08314239

2022年12月12日

数字电路课程设计

综述

近年来随着数字技术的迅速发展,各种中、大规模集成电路在数字系统、控制系统、信号处理等方面都得到了广泛的应用。

这就迫切要求理工科大学生熟悉和掌握常用中、大规模集成电路功能及其在实际中的应用方法,除通过实验教学培养数字电路的基本实验方法、分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等基本电路的基本实验技能外,还必须培养大学生工程设计和组织实验能力。

本次课程设计的目的在于培养学生对基本电路的应用和掌握,使学生在实验原理的指导下,初步具备基本电路的分析和设计能力,并掌握其应用方法;自行拟定实验步骤,检查和排除故障、分析和处理实验结果及撰写实验报告的能力。

综合实验的设计目的是培养学生初步掌握小型数字系统的设计能力,包括选择设计方案,进行电路设计、安装、调试等环节,运用所学知识进行工程设计、提高实验技能的实践。

数字电子钟是一种计时装置,它具有时、分、秒计时功能和显示时间功能;具有整点报时功能。

-2-

数字电路课程设计

1、课题要求

1.1课程设计的性质与任务

1)根据课题要求,复习巩固数字电路有关专业基础知识;2)掌握数字电路的设计方法,特别是熟悉模块化的设计思想;3)掌握QUARTUS-2软件的使用方法;

4)熟练掌握EDA工具的使用,特别是原理图输入,波形仿真,能对仿真波形进行分析;

5)具备EDA技术基础,能够熟练使用VHDL语言进行编程,掌握层次化设计方法;6)掌握多功能数字钟的工作原理,学会不同进制计数器及时钟控制电路的设计方法;

7)能根据设计要求对设计电路进行仿真和测试;

基本功能:

能进行正常的时、分、秒计时功能,分别由6个数码管显示24

小时,60分钟,60秒钟的计数器显示。

附加功能:

1)能利用硬件部分按键实现“校时”“校分”“清零”功能;2)能利用蜂鸣器做整点报时:

当计时到达59’59’’时开始报

时,鸣叫时间1秒钟;

3)定时闹铃:

本设计中设置的是在七点时进行闹钟功能,鸣叫

过程中,能够进行中断闹铃工作。

本人工作:

负责软件的编程与波形的仿真分析。

2、方案设计与分析

-3-

数字电路课程设计

1.1设计方案

1、时钟功能,具有显示时、分、秒的功能;

2、具有整点报时功能,在整点时使用蜂鸣器进行报时,具有闹钟功能,鸣叫过程中,具有中断闹铃功能。

1.2设计要点

数字钟一般是由振荡器、分频器、计数器、译码器、显示器等几部分组成。

这些都是数字电路中应用最广泛的基本电路,本设计分模块设计实现各部分功能,采用软件编程控制FPGA芯片内部产生振动周期为1的脉冲。

并将信号送入计数器进行计算,并把累加的结果以“时”、“分”、“秒”的数字显示出来。

“秒”的显示由两级计数器和译码器组成的六十进制计数电路实现;“分”的显示电路“秒”相同,“时”的显示由两级计数器和译码器组成的二十四进制电路来实现。

所有计时结果由六位数码管显示。

1.3工作原理

数字电子钟由振荡器、分频器计数器、译码显示、报时等电路组成。

振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。

秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。

计满后各计数器清零,重新计数。

计数器的输出分别经译码器送数码管显示,计时出现误差时,可以用校时电路“校时”“校分”“清零”。

秒脉冲可以通过分频电路得到。

通过报时设计模块可以实现整点报时及定时闹铃,译码显示由七段译码器完成,显示由数码管构成,采用的是动态显示方式。

数码管动态显示:

动态扫描电路将计数器输出的8421BGD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和为选信号。

所谓动态扫描显示方式是在显示某一位LED显示块的数据的时候,让其它位不显示,然后再显示下一位的数据。

只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象。

一般每一位的显示时间为1~10m。

3、单元电路的设计,仿真与分析

-4-

数字电路课程设计

(1)分频模块(fenpin)1)程序:

libraryieee;

ueieee.td_logic_1164.all;entityfenpiniport(clk6:

intd_logic;

q1000,q5,q1:

outtd_logic);endfenpin;

architectureccc_arcoffenpiniignal某:

td_logic;begin

proce(clk6)

variablecnt:

integerrange0to24999;begin

ifclk6'eventandclk6='1'thenifcnt<24999thencnt:

=cnt+1;elecnt:

=0;某<=not某;endif;endif;endproce;q1000<=某;proce(某)

variablecnt2:

integerrange0to999;variabley:

td_logic;begin

if某'eventand某='1'then

-5-

数字电路课程设计

ifcnt2<999thencnt2:

=cnt2+1;q1<='0';elecnt2:

=0;q1<='1';endif;endif;

if某'eventand某='1'theny:

=noty;endif;q5<=y;endproce;endccc_arc;2)仿真波形:

3)仿真结果分析:

产生用于计时,扫描输入,扫描显示,以及蜂鸣器所需的各个频率的信号。

(2)秒模块(econd)1)程序:

libraryieee;

ueieee.td_logic_1164.all;ueieee.td_logic_unigned.all;entityecondi

port(clk1,en1:

intd_logic;

-6-

数字电路课程设计

qa:

outtd_logic_vector(3downto0);co1:

outtd_logic;

qb:

outtd_logic_vector(3downto0));endecond;

architectureccofecondi

ignalcout2,cout1:

td_logic_vector(3downto0);ignalmm:

td_logic;begin

proce(clk1,en1)begin

ifen1='1'then

cout2<=\elif(clk1'eventandclk1='1')then

if(cout2=5andcout1=8)thencout2<=cout2;cout1<=cout1+1;mm<='1';elif(cout2=5andcout1=9)thencout2<=\eleif(cout1=9)thencout2<=cout2+1;cout1<=\elecout2<=cout2;cout1<=cout1+1;mm<='0';endif;endif;endif;endproce;co1<=mm;qa<=cout2;qb<=cout1;endcc;2)仿真波形:

-7-

数字电路课程设计

3)仿真结果分析:

该模块实际是一个六十进制计数器,而六十秒为一分钟,故用此模块可以作为秒部分设计,通过观察可知,仿真波形是正确可行的。

(3)分模块(minute)1)程序:

libraryieee;

ueieee.td_logic_1164.all;ueieee.td_logic_unigned.all;entityminutei

port(clk2,en2:

intd_logic;

qc:

outtd_logic_vector(3downto0);

-8-

数字电路课程设计

co2:

outtd_logic;

qd:

outtd_logic_vector(3downto0));endminute;

architecturebbofminutei

ignalcout2,cout1:

td_logic_vector(3downto0);ignalcc:

td_logic;begin

proce(clk2,en2)begin

ifen2='1'then

if(clk2'eventandclk2='1')then

if(cout2=5andcout1=8)thencout2<=cout2;cout1<=cout1+1;cc<='1';elif(cout2=5andcout1=9)thencout2<=\eleif(cout1=9)thencout2<=cout2+1;cout1<=\elecout2<=cout2;cout1<=cout1+1;cc<='0';endif;endif;endif;endif;endproce;co2<=cc;qc<=cout2;qd<=cout1;endbb2)仿真波形:

-9-

数字电路课程设计

3)仿真结果分析:

此模块实际也是一个六十进制的计数器模块,六十分钟即为一个小时,用此模块就成功解决了分设计模块这个难题。

从仿真波形可知,该设计时正确的。

(4)时模块(hour)1)程序:

libraryieee;

ueieee.td_logic_1164.all;ueieee.td_logic_unigned.all;entityhouri

-10-

数字电路课程设计

(8)报时模块(alart)1)程序:

libraryieee;

ueieee.td_logic_1164.all;entityti

port(h1,h0,m1,m0,1,0:

intd_logic_vector(3downto0);clk4:

intd_logic;q500:

outtd_logic);endt;

architectureoftibegin

proce(clk4,m1,m0,1,0)begin

if(clk4'eventandclk4='1')then

if((h1=\

or(m1=\q500<='1';eleq500<='0';endif;endif;endproce;end;2)仿真波形:

-16-

数字电路课程设计

3)仿真结果分析:

通过观察波形可知,当时钟时间与整点或闹铃预设时间相同时,给出一个脉冲信号,使蜂鸣器鸣叫,实现整点报时和定时闹铃功能。

(9)六进制计数器模块(cnt6)1)程序:

libraryieee;

ueieee.td_logic_1164.all;ueieee.td_logic_unigned.all;entitycnt6i

port(clk5:

intd_logic;

n:

outtd_logic_vector(2downto0));endcnt6;

architecturebehavofcnt6i

ignalq1:

td_logic_vector(2downto0);begin

proce(clk5)begin

ifclk5'eventandclk5='1'thenifq1<5thenq1<=q1+1;

eleq1<=(other=>'0');endif;endif;

-17-

数字电路课程设计

endproce;n<=q1;endbehav;2)仿真波形:

3)仿真结果分析:

很明显可以看出这是一个简单的六进制计数器。

它与3-6译码器配合作用产生片选信号。

(10)两输入与模块(and2a)1)程序:

libraryieee;

ueieee.td_logic_1164.all;entityandai

port(a1,b1:

intd_logic;y:

outtd_logic);endanda;

architectureanofandaibegin

y<=a1andb1;endan;2)仿真波形:

-18-

数字电路课程设计

3)仿真结果分析:

经观察波形,程序正确。

该与门的两个输入端分别为秒模块和分模块的进位输出信号,当它们均为高电平时,时模块使能端即为高电平,时模块工作。

(11)两输入或模块(or2a)1)程序:

libraryieee;

ueieee.td_logic_1164.all;entityor_1i

port(a1,b1:

intd_logic;y:

outtd_logic);endor_1;

architectureooofor_1ibeginy<=a1orb1;endoo;2)仿真波形:

3)仿真结果分析:

在整个数字钟程序设计中,两处用到两输入或门。

一处是分模块,或门两输入分别是秒模块的进位输出信号和外部校分信号,任一一个信号为高电平,分模块使能端就为高电平,分模块工作。

另一处是在时模块的使能端,它受分模块进位输出和外部校时信号输入的控制,只要其一位高电平,时模块都将工作。

4、顶层电路设计及仿真结果与分析

1)

程序:

libraryieee;

-19-

数字电路课程设计

ueieee.td_logic_1164.all;entitydigital_clocki

port(clk,a,b,c:

intd_logic;q1:

outtd_logic;

r:

outtd_logic_vector(5downto0);q0:

outtd_logic_vector(6downto0));enddigital_clock;

port(clk3,en3:

intd_logic;

port(clk2,en2:

intd_logic;

qc:

outtd_logic_vector(3downto0);co2:

outtd_logic;

-20-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2