基于FPGA的数字时钟设计.docx

上传人:b****6 文档编号:7125191 上传时间:2023-01-20 格式:DOCX 页数:39 大小:912.19KB
下载 相关 举报
基于FPGA的数字时钟设计.docx_第1页
第1页 / 共39页
基于FPGA的数字时钟设计.docx_第2页
第2页 / 共39页
基于FPGA的数字时钟设计.docx_第3页
第3页 / 共39页
基于FPGA的数字时钟设计.docx_第4页
第4页 / 共39页
基于FPGA的数字时钟设计.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

基于FPGA的数字时钟设计.docx

《基于FPGA的数字时钟设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字时钟设计.docx(39页珍藏版)》请在冰豆网上搜索。

基于FPGA的数字时钟设计.docx

基于FPGA的数字时钟设计

目  录

1  引言

随着电子技术的发展,电子电路的设计越来越来复杂,为了提高开发效率,缩短开发时间,可编程逻辑器件逐渐被开发与应用,随之,VHDL语言成为通用的硬件描述语言。

数字时钟是采用数字电路实现对小时、分钟、秒以数字显示的计时装置,广泛应用于个人家庭,办公室,车站等场所,成为生活中最常见的计时工具。

由于数字集成电路和石英振荡器的广泛应用,数字时钟的精度远远大于老式钟表,钟表的数字化给人们的日常生活提供了极大的方便,并且扩展了时钟原有的报时功能,如:

校时自动打铃,自动开关路灯,定时广播,通断动力设备等,以上功能的实现都是以钟表的数字化为基础的。

因此,研究数字时钟及扩展其应用有着非常重大的现实意义。

1.1 FPGA简介

1.1.1 FPGA概述

FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。

CPLD/FPGA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。

它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。

通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。

使用CPLD/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。

这些优点使得CPLD/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言VHDL的进步。

1.1.2 FPGA开发编程原理

硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。

CPLD/FPGA软件设计可分为两大块:

编程语言和编程工具。

编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件QuartusII以及第三方工具。

具体的设计输入方式有以下几种:

1.HDL语言方式。

HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。

用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。

2.图形方式。

可以分为电路原理图描述,状态机描述和波形描述3种形式。

电路原理图方式描述比较直观和高效,对综合软件的要求不高。

一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,其硬件工作速度和芯片利用率很高,但是当项目很大时,该方法就显得有些繁琐。

状态机描述主要用来设计基于状态机思想的时序电路。

在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。

由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件。

波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。

1.2 QuartusⅡ设计平台

本设计所用软件主要是QuartusII,在此对它做一些介绍。

QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。

QuartusII提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

Altera公司的QuartusII开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。

QuartusII软件完全支持VHDL设计流程,其内部嵌有VHDL逻辑综合器。

QuartusII也可以利用第三方的综合工具,如FPGACompilerII,并能直接调用这些工具。

同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具。

此外,QuartusII与MATLAB和DSPBuilder结合,可以进行基于FPGA的DSP系统开发,是实现DSP硬件系统的关键技术。

QuartusII包括模块化的编译器。

编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。

可以通过选择StartCompilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。

在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,或者打开其它相关窗口。

QuartusII图形用户界面的设计流程如下:

1.建立工作库文件夹和编辑设计文件

首先建立工作库目录,以便存储工程项目设计文件。

任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。

此文件夹将被EDA软件默认为工作库。

一般来说,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。

2.创建工程

使用NewProjectWizard可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA工具,以及目标器件系列和具体器件等。

3.编译前设置

在对工程进行编译处理前,必须做好必要的设置。

步骤如下:

(1)选择FPGA目标芯片

(2)选择配置器件的工作方式

(3)选择配置器件和编程方式

(4)选择输出设置

(5)选择目标器件闲置引脚的状态

4.全程编译

QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。

在这一过程中,将设计项目适配到FPGA目标器中,同时产生多种用途的输出文件。

编译器首先检查出工程设计文件中可能的错误信息,供设计者排除。

然后产生一个结构化的以网表文件表达的电路原理图文件。

图1-1  全编译后无报错信息

如果编译成功,可以见到如图1-1所示的工程管理窗口左上角显示了工程(例如工程div)的层次结构和其中结构模块耗用的逻辑宏单元数;在此栏下是编译处理流程,包括数据网表建立、逻辑综合、适配、配置文件装配和时序分析等;最下栏是编译处理信息;中栏式编译报告项目选择菜单,单击其中各项可以详细了解编译与分析结果。

5.时序仿真

工程编译通过后,必须建立VWF文件对其功能和时序性质进行仿真测试,以了解设计结果是否满足原设计要求。

2  数字时钟的总体设计方案

2.1 软件设计方案

数字时钟将实现如下功能:

1.具有星期、时、分、秒计时显示功能,以7天循环计时并显示。

分别由7只数码管显示1星期、24小时、60分、60秒。

2.具有清零及调节功能。

当清零按键使能信号有效时,7只数码管全部清零。

调节功能分为调星期、调小时、调分功能。

当调星期按键使能信号有效时,计时器计数迅速增加,并按7天循环。

当调小时按键使能信号有效时,计时器计数迅速增加,并按24小时循环,计到23小时后回到00。

当调分钟按键使能信号有效时,计时器计数迅速增加,并按60分钟循环,计到59分钟后回到00。

3.具有整点报时功能,当计时到达59分51秒、53秒、55秒、57秒、59秒时发出声音,完成整点报时。

根据系统的功能,采用自顶向下的设计方法,用VHDL语言实现各个功能模块,经过编译和仿真后,顶层文件采用原理图的方法实现。

数字时钟电路的方框图如图2-1所示。

报时模块

段码译码模块

位扫描模块

图2-1  数字时钟电路方框图

2.2 硬件设计方案

硬件主要采用E-PLAY-SOPC适配器,结合其他元件如七段LED数码管、蜂鸣器等,将各部分硬件焊接在一起,然后将调试好的程序烧制进适配器的芯片,制作成独立的数字时钟实体。

 

3  底层文件的设计与仿真

系统主要由六大模块组成,即计时模块、扫描显示控制模块、报时模块、段码译码模块、位扫描模块和分频模块。

用VHDL语言编写各个模块的源程序并创建实体,在QuartusⅡ平台中进行时序仿真。

3.1 时间计数器的设计与仿真

秒计时模块、分计时模块、小时计时模块和星期计时模块都属于时间计数器,将它们级联起来主要可以完成基本的计时功能。

其中,秒计时模块和分计时模块是两个60进制计数器,小时计时模块是一个24进制计数器,星期计时模块是一个7进制计数器。

3.1.1 60进制计数器

秒计时模块和分计时模块都是60进制计数器。

当数字时钟处于正常计数状态时,秒计时模块对时钟信号进行计数,当计数满60时进位输出端enmin产生进位,进位输出端enmin产生的信号又作为分计时模块的使能信号,使分计时模块进行计数。

秒计时模块和分计时模块具有清零端,当清零端reset为低电平时,计数器清零。

同时数字时钟除正常计时外,秒计时模块和分计时模块的两个按钮setmin和sethour还可以分别实现对分钟和小时的调整。

这两个按钮的作用就是用来产生分计时模块和小时计时模块的另一路使能信号,即分计时模块和小时计时模块除了进位使能信号,当有按键使能信号时,它们的计数会迅速增加,达到调整分计时和小时计时的目的。

两个60进制计数器的实体如图3-1、图3-2所示,时序仿真结果如图3-3、图3-4所示。

       

图3-1  秒计时模块实体          图3-2  分计时模块实体

图3-3  秒计时模块时序仿真图

图3-4  分计时模块时序仿真图

3.1.2 24进制计数器

小时计时模块是一个24进制计数器,它由分计时模块的进位输出信号驱动进行计数,当计数满24时enday会产生进位输出。

当清零端reset为低电平时,计数清零。

同时小时计时模块具有调节星期天数的功能,当有按键使能信号时,星期计时模块的计数会迅速增加,达到调节星期天数的目的。

24进制计数器的实体如图3-5所示,时序仿真结果如图3-6所示。

图3-5  小时计时模块实体

图3-6  小时计数模块时序仿真图

3.1.3 7进制计数器

星期计时模块是一个7进制计数器,它由小时计时模块的进位输出信号驱动进行计数,计数从1至7,周期为7。

当清零端reset为低电平时,计数清零。

7进制计数器的实体如图3-7,时序仿真结果如图3-8所示。

图3-7  星期计时模块实体

图3-8  星期计时模块时序仿真图

3.2 扫描显示控制模块的设计与仿真

该模块实现时间的动态扫描显示控制,模块中的clk1是动态扫描控制的脉冲输入,由内部脉冲发生电路提供。

将秒计时模块、分计时模块、小时计时模块和星期计时模块的输出信号送入扫描显示控制模块,由扫描显示控制模块将收到的数据转化为位扫描模块和段码译码的输入信号。

扫描显示控制模块具有清零的功能,当reset为低电平时,daout和sel的输出都为0。

扫描显示控制模块的实体图如图3-9所示,时序仿真图如图3-10所示。

图3-9  扫描显示控制模块实体

图3-10  扫描显示控制模块时序仿真图

3.3 报时模块的设计与仿真

当计时为59分50秒时即将到达整点,将分计时模块和秒计时模块的输出信号分别输入报时模块的dain2和dain1,为了实现高低音报时,设计两个报时模块。

低音报时模块接低频蜂鸣器,分别在59分51秒、53秒、55秒、57秒时报时;高音报时模块接高频蜂鸣器,在59分59秒时完成整点报时。

低音报时模块的实体图如图3-11所示,时序仿真图如图3-13所示。

高音报时模块实体图如图3-12所示,时序仿真图如图3-14所示。

图3-11  低音报时模块实体图3-12  高音报时模块实体

图3-13  低音报时模块时序仿真图

图3-14  高音报时模块时序仿真图

3.4 段码译码模块的设计与仿真

段码译码模块是将扫描显示控制模块输出的BCD码转化成驱动数码管所需要的信号。

由于显示器件采用七段共阴极数码管并且用反向驱动器驱动,所以显示译码真值表如表3-1所示。

段码译码模块实体图如图3-15所示,时序仿真图如图3-16所示。

 

表3-1  七段共阴极数码管显示译码真值表

a3a2a1a0

gfedcba

十六进制

显示字符

0000

1000000

40

0

0001

1111001

79

1

0010

0100100

24

2

0011

0110000

30

3

0100

0011001

19

4

0101

0010010

12

5

0110

0000010

02

6

0111

1111000

78

7

1000

0000000

00

8

1001

0010000

10

9

图3-15  段码译码模块实体

图3-16  段码译码模块时序仿真图

3.5 位扫描模块的设计与仿真

位扫描模块是一个3-8译码器,用来为秒计时模块、分计时模块、小时计时模块和星期计时模块选择某位七段数码管显示计时结果。

位扫描模块实体如图3-17所示,时序仿真图如图3-18所示。

图3-17  位扫描模块实体

图3-18  位扫描模块时序仿真图

3.6 分频模块的设计与仿真

分频模块的作用将内部石英晶振的信号转化成为稳定的脉冲信号,保证时钟走时的准确性。

它由三个分频器组成,第一个是将50MHz的信号分为250Hz的信号,为扫描显示控制模块提供扫描脉冲;第二个是将50MHz的信号分为1Hz的信号,为各个计时器提供标准秒脉冲;第三个是将50MHz的信号分为2Hz的信号,为调整时间提供快速计数脉冲。

图3-19为250Hz分频器的实体图,图3-20为1Hz分频器的实体图,图3-21为2Hz分频器的实体图(由于软件仿真功能有限暂不列举三个分频器的仿真图)。

图3-19  250Hz分频器实体图图3-120  1Hz分频器实体图

图3-21  2Hz分频器实体图

 

4  顶层文件的设计

在各个模块编译成功并且仿真结果正确的情况下,顶层文件采用原理图的方法将各个模块的实体连接起来,系统顶层电路如图4-1所示。

图4-1  数字时钟系统顶层电路图

5  硬件制作

5.1 元件准备

  数字时钟实体主要由承载软件程序的E-PLAY-SOPC适配器,承担显示任务的LED数码管和承担报时任务的蜂鸣器组成。

由于芯片自身输出电压低,数码管显示不够清晰明显,所以要给数码管加上一个驱动器,使其显示数字更加清晰明亮。

同时为了保护数码管限制流过数码管的电流,还要在每一位数码管上串联一个1KΩ的电阻。

5.1.1 E-PLAY-SOPC适配器

E-Play-SOPC适配器为符合E_Play总线标准的SOPC适配器,同时作为EDA-VI的标准适配器使用,通过E_Play总线插槽可以方便的外扩多种功能板,用户也可以自行制作开发适合自己功能板,通过E_Play总线插槽方便的与适配器及其它功能板进行连接组成一个小型应用系统。

5.1.2 4位LED数码管5461AH

  根据显示要求,数码管选用5461AH。

5461AH是将4个数码管级联在一起成为一个整体的数码管,在线路连接上省去了很多连线,使用简单方便。

5461AH的内部逻辑图如图5-1所示,管脚图如图5-2所示。

5461AH共有12个引脚,其中第6、8、9、12脚是位选端,其余引脚分别对应数码管的a、b、c、d、e、f、g、h各段。

本设计中需要7位数码管显示,所以需要两个5461AH。

图5-1  5461AH四位共阴数码管内部逻辑图图5-2  5461AH四位共阴数码管管脚图

表5-1  74Ls240输入输出真值表

5.1.3 驱动器74Ls240

输入

输出

1G,2G

D

0

0

1

0

1

0

1

X

高阻态

图5-3  74Ls240内部逻辑图

74Ls240是一种八单线反向驱动器,内部有八个反向放大器。

用一个74Ls240可以同时驱动八位数码管,使数码管的每段显示得更加明亮。

74Ls240的内部逻辑图如图5-3所示,输入输出真值表如表5-1所示。

5.2 硬件制作

将准备好的各部分元件按如图5-4所示的方法焊接在开发板上(图中电阻的大小均为1KΩ)。

图5-4  电路板焊接图

5.3 程序调试

图5-5  FPGA管脚封装图

1.在将仿真无误的程序烧制进芯片之前要进行管脚封装,管脚封装如图5-4所示。

2.将程序以AS方式下载进芯片,在“Mode”模式下拉列表里,选择“ActiveSerialProgrammer”,然后浏览添加相应的“.pof”文件,在相应的“Programmer/Configure”项和“Verify”项上打上打勾,点“Start”下载程序如图5-6所示。

选用AS模式下载,适配器掉电后程序仍存在于芯片中,上电可以再次运行不必重新进行下载。

图5-7  AS模式下载状态图

3.打开电源开关,运行程序,开发板上的按键开关PB0、PB1、PB2和Reset分别对应调星期、调小时、调分钟和复位按键。

数字时钟正常工作,进行7天24小时计时并显示,整点报时功能正常,校时功能正常,运行结果如图5-8所示。

图5-8  数字时钟运行状态图

5.4 结果分析

打开数字时钟的电源,调整时间,运行一段时间观察时钟计时是否准确。

经过48小时的运行时间,数字时钟各部分功能正常,走时基本准确,误差在几毫秒左右。

可以几乎不计。

计时过程中,调整分钟时秒计时模块会暂停计时,调整小时和星期时秒模块不受控制会继续计时,所以调整时间不易达到标准效果。

5.5 功能扩展

  本设计实现了数字时钟的基本功能,根据芯片资源还可以扩展出更多功能。

在计时功能上,可以扩展出显示农历和公历的万年历,世界时间,闹钟,秒表,语音报时,报时时分高低音播报,定时开关机,夜间免打扰等功能;在显示上,可以采用花样显示,液晶显示,点阵显示等。

本设计的电源采用交流电源,可以增加蓄电池以预防停电等情况发生,并增加启动功能在夜间停止显示器和蜂鸣器的运作以节约电能。

另外,利用温、湿度传感器,还可以做成带有温度计和湿度计的数字时钟。

 

6  结束语

本文提出了一种基于FPGA的数字钟设计方案,从硬件和软件两个方面详细地介绍了设计思想和过程,最终设计出了数字钟,将设计程序加载到开发板上运行调试后,星期、时、分、秒能够正常计数,并能由控制键分别校正星期、时、分的显示,整点报时功能正常。

最终结果与预期效果一致,完成了预期的设计任务。

论文取得了如下结果:

1.采用了FPGA芯片Cyclone系列EP1C12Q240C8作为核心器件。

设计的数字钟系统的硬件电路,能够完成数字钟的校时,计时,报时,显示等实时任务。

2.运用自顶向下的思想。

将整个系统分成几个模块分别设计,再用原理图设计方法将它们联系起来完成顶层设计,实现数字时钟整体的功能,降低了系统设计的难度。

3.采用了VHDL语言为主,图形输入为辅的编程方法。

优点是编程方法灵活,而且编写的程序具有很好的移植性,同样适用于其他FPGA芯片的数字时钟设计。

4.采用QuartusII软件进行编译和仿真,可以不管硬件而先进行软件的仿真,并能根据仿真结果分析设计存在的问题和缺陷,从而进行程序的调试和完善,这大大的提高了编程的成功率。

5.运用开发板将程序转化为实物,完成了一个数字时钟从软件到硬件的完整设计。

参考文献

[1]  潘松,黄继业.EDA技术实用教程——VHDL版(第四版)[M].北京:

科学出版社,2010:

1~128

[2]  徐大诏.基于FPGA实现的数字钟设计[J].信息技术,2009,(12):

101~104

[3]  崔葛.基于FPGA的数字电路系统设计[M].西安:

西安电子科技大学出版社,2008:

65~74

[4]  陈忠平.基于QuartusⅡ的FPGA/CPLD设计与实践[M].北京:

北京电子工业出版社,2010:

32~50

[5]  刘君,常明,秦娟.基于硬件描述语言(VHDL)的数字时钟设计[J].天津理工大学学报,2007,23(4):

40~41

[6]  王开军,姜宇柏.面向CPLD/FPGA的VHDL设计[M].北京:

机械工业出版社,2006:

62~76

[7]  阎石.数字电子技术基础(第四版)[M].北京:

高等教育出版社,1998:

20~25

[8]  康华光.电子技术基础[M].北京:

高等教育出版社,2002:

46~58

[9]  谭会生,张昌凡.EDA技术及应用[M].西安:

西安电子科技大学出版社,2004:

16~22

[10]  毕满.电子技术实验与课程设计[M].北京:

机械工业出版社,2005:

6~39

[11]  VinSkahill.VHDLforProgrammableLogic[M].北京:

科学出版社,2009:

76~78

致  谢

毕业设计,也许是我大学生涯交上的最后一个作业了。

想借此机会感谢四年以来给我帮助的所有老师、同学,你们的友谊是我人生的财富,是我生命中不可或缺的一部分。

感谢老师对我的教育培养,你们细心指导我的学习,在此,我要向诸位老师深深地鞠上一躬。

毕业论文的撰写过程是对所学的电子技术基本理论知识的综合运用,对四年专业知识的一次综合应用、扩充和深化,也是对我们理论运用于实际设计的一次锻炼。

通过毕业论文的撰写过程,我不仅温习了以前在课堂上学习的专业知识,同时我也得到了老师和同学的帮助,学习和体会到了电子技术的基本技能和思想。

此次设计过程中,各种系统的适用条件,各种程序的选用标准,各种元件的安装方式,我都是随着设计的不断深入而不断熟悉并学会应用的。

和老师的沟通交流更使我对设计有了新的认识也对自己提出了新的要求。

设计过程中我不怕失败,在失败中总结经验,为成功积累素材;学着自我超越,敢于尝试,在尝试中进步,这对我能力的提高大有好处。

设计中有太多的不懂和陌生,但是我会多看、多想、多问、多学,认真的对待每一次老师交代的任务,每一个任务都是一个锻炼的机会和成长的过程,我在规定的时间尽善尽美的完成,把自己的能力发挥到最大限度。

最后,我要特别感谢孙业歧老师。

是他在我毕业的最后关头给了我巨大的帮助与鼓励,使我能够顺利完成毕业设计,孙老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。

他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,在此表示衷心的感激。

这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。

希望这次的经历能让我在以后工作中激励我继续进步。

离开学校完成论文,是一个终点,又是另外一个起点!

在这个竞争激烈、物欲浮躁的社会,怀着一颗认真、平和的心,踏实的走好每一步,我相信我的未来就一定不是梦,也坚信这次毕业设计将成为我一辈子的财富,它所折射出的光芒将照亮我的前程,成为我人生中的一道亮丽风景。

附  录

TheDesignofequalprecisionfrequencyindicatorbasedonFPGA

Introductionofdigitalfr

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

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1