基于fpga的数字时钟.docx
《基于fpga的数字时钟.docx》由会员分享,可在线阅读,更多相关《基于fpga的数字时钟.docx(59页珍藏版)》请在冰点文库上搜索。
基于fpga的数字时钟
设计(论文)题目:
基于FPGA的数字时钟设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
随着科学技术的飞速发展,系统向着高速度、低功耗、低电压和网络化、移动化方向发展,各个领域对电路的要求越来越高,传统单一功能的电路很难满足发展的要求,而可编程逻辑器件(CPLD/FPGA)可以很方便地通过对逻辑结构的修改和配置,完成对系统和设备的升级。
VerilogHDL是一种应用广泛的硬件描述语言,可用于从算法级、门级到开关级的多种抽象层次的数字系统设计。
VerilogHDL语言最大的特点就是易学易用,通过学习和使用,可以在短时间内掌握该语言。
另外该语言的功能强大,可以满足各个层次设计人员的需要,从高层的系统描述到底层的版图设计,都能很好地支持。
本文就是用VerilogHDL语言来描述一个基于FPGA的多功能数字时钟的设计。
该数字时钟具备准确计时,时间校准,定时闹钟,报时,数字跑表等功能。
本文首先介绍了FPGA方面的基础知识,然后介绍了多功能数字时钟的设计以及源代码开发过程。
源代码首先在XilinxISE11软件上进行仿真、综合,通过后下载到Aquila系列开发板上,在FPGA器件上的试验结果表明上述功能全部正确,工作稳定良好。
【关键词】FPGA数字时钟VerilogHDL
ABSTRACT
Withtherapiddevelopmentofscienceandtechnology,thesystemtowardthehighspeed,lowpowerconsumption,lowvoltageandnetworking,mobilitymanagement,variousareasonthecircuitrequirementsgethigher,traditionalsingle-functionofthecircuitisveryhardtomeetdevelopmentrequirements,andprogrammablelogicdevices(CPLD/FPGA)canbeeasilypassedonthelogicalstructureofmodificationandconfiguration,thesystemandequipmentupgrades.
VerilogHDLisawidespreaduseofthehardwaredescriptionlanguagecanbeusedfromthealgorithmlevel,gate-leveltoswitch-levelofthevariousabstractionlevelsofsystemdesign.VerilogHDLgreatestfeatureiseasytouse,learnanduse,inashortperiodoftimecanmasterthelanguage.Meanwhile,thelanguageofthepowerful,alllevelsdesignedtomeettheneedsofthestaff,Thesystemfromthetoptobottomdescribingthelayout,canbettersupport.
ThispaperisusingVerilogHDLlanguagetodescribethedesignofanFPGA-basedmultifunctionaldigitaltimer.Thistimerhasthefunctionofaccuratetimeclock,timecalibration,regularalarmclock,timer,digitalstopwatchandsoon.ThispaperfirstintroducesthebasicknowledgeoftheFPGA,thenintroducesthedesignofthemultifunctionaldigitalclockandthedevelopmentofthesourcecode.Afterthesimulation、synthesisonXilinxISE11software,thesourcecodedownloadstotheAquliadevelopmentbox,testresultsontheFPGAdevicesshowsthatalloftheabovefunctionsarecorrectandstable.
【Keywords】FPGADigitalClockVerilogHDL
前言
现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。
支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。
前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronicdesignautomatic,EDA)技术。
本设计采用的VerilogHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。
ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。
而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。
在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。
因此,键信息输入是与软件结构密切相关的过程。
根据键盘的结构不同,采用不同的编码方法。
但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
第一章数字时钟概述
数字时钟在我们生活中其中非常重要的作用,了解数字时钟目前的发展状况是必需的,对于数字时钟的研究也是非常有必要的。
本章还讲述数字时钟的原理和基本的功能要求。
第一节数字时钟系统及其发展
近年来,随着电子产品的发展,人们对数字时钟的要求越来越高,对人们的这一需求,用基于FPGA设计的智数字时钟,功能强大,界面友好,更好的满足了人们对它的要求。
现在是一个知识爆炸的新时代。
新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人。
数字化的钟表给人们带来了极大的方便。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
FPGA在多功能数字钟中的应用已是非常普遍的,人们对数字钟的功能及工作顺序都非常熟悉。
但是却很少知道它的内部结构以及工作原理。
由FPGA作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经控制输出,利用显示器显示出来。
通过键盘可以进行定时、校时功能。
输出设备显示器可以用液晶显示技术和数码管显示技术。
第二节FPGA数字时钟的研究现状
一、课题相关技术的发展
当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。
它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。
EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。
美国Xilinx公司的可编程逻辑器件采用全新的结构和先进的技术,加上ISE开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。
EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。
最终形成集成电子系统或专用集成芯片的一门新技术。
本设计利用VerilogHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。
数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。
因此,本设计采用可编程逻辑器件实现。
二、课题研究的必要性
现在是一个知识爆炸的新时代。
新产品、新技术层出不穷,电子技术的发展更是日新月异。
可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人。
数字化的钟表给人们带来了极大的方便。
近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。
第三节数字时钟的原理介绍及功能要求
一、数字时钟的原理介绍
数字时钟使用4个两位的计数器来实现,即百分秒计数器、秒计数器、分计数器和小时计数器.每个计数器又分别使用高低位2个计数器来实现.其中百分秒数器是100进制计数器(高位l0进制计数器,低位10进制计数器),秒计数器和分计数器是60进制计数器(高位6进制计数器,低位10进制计数器),小时计数器是24迸制计数器(高位2进制计数器,低位10进制计数器)。
数字时钟首先是百分秒计数器按照系统时钟CLK_50进行计数,计数满100后向秒计数器进位.秒计数器以百分秒计数器的进位位cnl为时钟进行计数,计数满60后向分计数器进位.分计数器以秒计数器的进位位cn2为时钟进行计数,计数满60后向小时计数器进位.小时计数器以分计数器的进位位cn3为时钟进行计数,计数满24后整个系统从0开始重新进行计数。
二、数字时钟的功能要求
时钟功能:
完成分/时的正确计数并显示,秒由于数码管数目的限制,采取发光二极管做提示;
闹钟定时:
实现定时提醒及定时报时,利用蜂鸣器发出报时声音;
时钟校时:
当认为时钟不准确时,可以分别对分/时钟进行调整;
秒表功能:
利用4个数码管完成秒表显示:
其精度达100ms,可以暂停,并可随时记时、暂停后记录数据,最大计时为999.9s。
第四节本章小结
本章主要讲述了数字时钟系统及其发展情况,由于本设计主要是研究基于FPGA的数字时钟设计,所以本节也讲述了FPGA数字时钟的研究现状,包括课题相关技术的发展及研究的必要性。
本章最后也对数字时钟的原理及功能要求做了说明。
第二章FPGA数字系统的开发原理
FPGA的开发原理对于了解和掌握FPGA是非常重要的,首先必须了解FPGA的基本工作原理,再是设计流程和基本原则,最后是FPGA的基本结构和常见技术。
第一节FPGA技术及其工作原理
一、FPGA概述
FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。
CPLD/FPGA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。
它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。
通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。
使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。
这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。
二、FPGA的基本工作原理
目前,Xilinx公司生产的FPGA都采用基于SRAM工艺的查处表(Look-Up-Table)结构,通过烧写文件改变查找表内容的方法实现对FPGA的重复配置,在使用时需要外接一个片外存储器以保存程序。
上电时,FPGA将外部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复白片,内部逻辑消失。
由数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等,最多只可能存在2n种结果。
所以,如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。
FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成是一个4位地址线的RAM。
当用户通过原理图或HDL语言描述一个逻辑电路后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)写入RAM,这样,每输入有一个信号进行逻辑运算就等于输入一个地址去进行查找表,找出地址对应的内容,然后输出即可。
第二节FPGA的设计流程
FPGA的基本开发流程主要包括设计输入(designentry)、设计仿真(Simulation)、设计综合(Synthesize)、布局布线(Place&route)和配置(Configuration)这五个主要步骤。
集成综合环境(ISE)的功能涵盖了FPGA开发的全过程,从功能上讲,其工作流程无雪借助如何第三方EDA软件。
FPGA的一般开发流程如图2.1所示。
图2.1FPGA的一般开发流程
一、设计输入
设计输入是根据工程师的设计方法所设计的功能描述给EDA软件,常用的设计输入方法有硬件描述语言HDL和原理图设计方法。
原理图设计输入法在早期应用得比较广泛,它根据设计要求,选用器件,绘制原理图,完成输入过程。
这种方法的优点是直观、便于理解、元件库资料丰富。
但是在大型设计中,这种方法的可维护性较差,不利于模块建设与重用。
ISE提供的设计输入工具包括用于HDL代码输入和查看报告的文本编辑器(ISETextEditor)、用于原理图编辑的工具ECS(EnginerringCaptureSystem)、用于生成IPCore的CoreGenerator、用于状态机设计的StateCAD以及用于约束文件编辑的ConstraintEditor等
二、设计综合
综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与门、或门、非门、RAM、寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出edf和edn等文件,供FPGA厂家的布局线器进行实现。
综合工具有XilinxISE集成的XST(XilinxSynthesisTechnology),还有比较流行且高效的MentorGraphics公司的Synplify。
Synplify综合工具综合出的结果占用面积小,工作频率高,综合速度快。
ISE的综合工具不但包括了Xilinx自身提供的综合工具XST,同时还可以内嵌MentorGraphics公司的Leonardospectrum和Synplify公司的Synplify,实现无缝连接。
三、设计仿真
设计仿真主要有功能仿真和时序仿真两种。
功能仿真是验证电路功能是否符合设计要求,也叫做前仿真,此时的仿真没有延时消息,对于初步的功能检测非常方便。
仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可观察到各个节点的信号变化。
如果发现错误,则返回设计中修改逻辑设计。
时序仿真在布局布线之后,又称做后仿真后延时仿真。
由于不同器件的内部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在处理设计后,对系统和个模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等式非常必要的。
在时序仿真中,应该将布局布线的延时文件反标到设计中,使仿真既包含延时消息,又包含延时信息。
与功能仿真相比,这种后仿真包含的延时信息最为全面、准确,能较好地反映芯片的实际工作情况。
四、实现
综合结果的本质是一些由与门、或门、非门触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。
此时应该使用FPGA厂商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FPGA器件上,这个过程就叫做实现过程。
Xilinx的实现过程分为:
翻译(Translate)、映射(Map)和布局布线(Place&Route)等三个步骤。
因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的工具软件。
五、下载
下载功能包括了BitGen,用于将布局布线后的设计文件转化为位流文件,还包括IMPACT,其功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。
使用ISE进行FPGA设计的各个过程可能涉及到的设计工具如表2.1所示。
表2.1使用ISE进行FPGA设计的设计工具描述
设计输入
综合
仿真
实现
下载
HDL文本编辑器
ECS原理图编辑器
StateCAD状态机编辑器
CoreGenerator
ConstraintEditor
XST
FPGAExpress
(SynplifyLeonardo
Spectrum)
HDLBencher
(ModelSim)
Translate
MAP
PlaceandRoute
Xpower
Bigen
IMPACT
第三节FPGA设计的基本原则
一、硬件原则
首先,FPGA的逻辑设计所采用的硬件描述语言VHDL或Verilog与软件语言C和C++有本质区别,在使用硬件描述语言进行设计时,不应片面追求代码的简洁。
其次,要采用正确的编码方法。
要对所需实现的硬件电路的结构和相互连接有清晰的理解和构想,然后再用适当的HDL语言表达出来。
实际上综合软件对所写的代码在进行推论的时候,得到的硬件结果会因编码方式的不会而不同,直接影响硬件的实现。
二、面积和速度的平衡与互换原则
面积和速度是ASIC芯片设计中一对相互制约、影响成本和性能的指标,贯穿FPGA设计的始终。
在FPGA设计中,面积是指一个设计消耗的FPGA内部逻辑资源的数量,可以用消耗的触发器和查找表的个数或者是等效逻辑门数来衡量;速度是指一个设计在FPGA上稳定运行时所能达到的最高频率,由设计时序状态决定。
关于面积和速度的折衷,应在满足设计时序和工作频率要求的前提下,占用最小的芯片面积;或者在所规定的面积下,使得设计的时序余量最大,能够在更高的频率上稳定运行。
通常,在资源足够的情况下,更多是选择速度的最优,这也是FPGA的特点。
在具体设计中,应根据具体性能指标要求,在保证系统功能和性能的同时,降低资源消耗从而降低功耗和成本。
三、系统原则
FPGA作为硬件系统设计,应该对设计全局进行宏观上的合理安排,包括逻辑功能模块划分、时钟域信号的产生和驱动、模块复用、时序或引脚约束、面积速度折衷等。
这些系统上的考虑不仅关系到是否能够最大程度地发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现效果和相关的操作时间。
模块化设计是系统原则的一个很好体现,它是自顶向下、模块划分、分工协作设计思路的集中体现,是大型复杂系统的推荐设计方法。
四、同步原则
在设计电路时,可以有异步电路和同步电路两种实现方法。
异步电路使用组合逻辑电路实现,没有统一的时钟信号,容易产生毛刺和竞争冒险;同步时序电路使用组合逻辑和触发器实现电路功能,主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信号稳定。
从资源使用方面考虑,推荐使用同步设计。
虽然在ASIC设计中同步电路比异步电路占用的面积大,但是在FPGA中,是以逻辑单元衡量电路面积的,所以同步设计并不比异步设计浪费资源。
从延迟设计方面考虑,异步电路的延时靠门延时来实现,比较