《基于FPGA的数字时钟设计毕业设计论文1.doc》由会员分享,可在线阅读,更多相关《基于FPGA的数字时钟设计毕业设计论文1.doc(65页珍藏版)》请在三一办公上搜索。
1、 设计(论文)题目:基于FPGA的数字时钟设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版
2、本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文
3、的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日摘 要随着科学技术的飞速发展,系统向着高速度、低功耗、低电压和网络化、移动化方向发展,各个领域对电路的要求越来越高,传统单一功能的电路很难满足发展的要求,而可编程逻辑器件(CPLD/FPGA)可以很方便地通过对逻辑结构的修改和配置,完成对系统和设备的升级。Verilog HDL是一种应用广泛的硬件描述
4、语言,可用于从算法级、门级到开关级的多种抽象层次的数字系统设计。Verilog HDL语言最大的特点就是易学易用,通过学习和使用,可以在短时间内掌握该语言。另外该语言的功能强大,可以满足各个层次设计人员的需要,从高层的系统描述到底层的版图设计,都能很好地支持。本文就是用Verilog HDL语言来描述一个基于FPGA的多功能数字时钟的设计。该数字时钟具备准确计时,时间校准, 定时闹钟, 报时, 数字跑表等功能。本文首先介绍了FPGA方面的基础知识,然后介绍了多功能数字时钟的设计以及源代码开发过程。源代码首先在Xilinx ISE11软件上进行仿真、综合,通过后下载到Aquila系列开发板上,在
5、FPGA器件上的试验结果表明上述功能全部正确,工作稳定良好。【关键词】FPGA 数字时钟 Verilog HDLABSTRACTWith the rapid development of science and technology, the system toward the high speed, low power consumption, low voltage and networking, mobility management, various areas on the circuit requirements get higher, traditional single-fun
6、ction of the circuit is very hard to meet development requirements, and programmable logic devices (CPLD/FPGA) can be easily passed on the logical structure of modification and configuration, the system and equipment upgrades.Verilog HDL is a widespread use of the hardware description language can b
7、e used from the algorithm level, gate-level to switch-level of the various abstraction levels of system design. Verilog HDL greatest feature is easy to use, learn and use, in a short period of time can master the language. Meanwhile, the language of the powerful, all levels designed to meet the need
8、s of the staff, The system from the top to bottom describing the layout, can better support. This paper is using Verilog HDL language to describe the design of an FPGA-based multifunctional digital timer. This timer has the function of accurate time clock, time calibration, regular alarm clock, time
9、r, digital stopwatch and so on. This paper first introduces the basic knowledge of the FPGA, then introduces the design of the multifunctional digital clock and the development of the source code. After the simulation、synthesis on Xilinx ISE11 software, the source code downloads to the Aqulia develo
10、pment box, test results on the FPGA devices shows that all of the above functions are correct and stable.【Key words】FPGA Digital Clock Verilog HDL目 录摘 要IABSTRACTII前 言1第一章 数字时钟概述2第一节 数字时钟系统及其发展2第二节 FPGA数字时钟的研究现状3一、课题相关技术的发展3二、课题研究的必要性3第三节 数字时钟的原理介绍及功能要求4一、数字时钟的原理介绍4二、数字时钟的功能要求4第四节 本章小结5第二章 FPGA数字系统的开
11、发原理6第一节FPGA技术及其工作原理6一、FPGA概述6二、FPGA的基本工作原理6第二节FPGA的设计流程7一、设计输入8二、设计综合8三、设计仿真8四、实现9五、下载9第三节FPGA设计的基本原则10一、硬件原则10二、面积和速度的平衡与互换原则10三、系统原则10四、同步原则11第四节FPGA基本结构及常见技术11一、FPGA基本结构11二、FPGA常见技术13第五节 本章小结15第三章 FPGA开发平台16第一节 Verilog HDL介绍16一、Verilog HDL概述16二、主要能力17三、自顶向下的设计方法18四、模块19第二节 Aquila板卡使用说明及主要模块介绍20一、
12、电源输入20二、复位20三、视频输入输出接口21四、扩展接口21五、I2C 地址21六、指示灯22七、FPGA配置22八、用户自定义按键23九、网络接口23十、RS232 接口23第三节 ISE简要介绍24一、ISE概述24二、ISE功能简介24三、基于ISE的仿真25第四节 本章小结26第四章 数字时钟的设计与实现27第一节 系统的总体设计27第二节 系统结构28第三节 功能描述28第四节 单元电路设计29一、分频模块电路设计与实现29二、键盘接口30三、显示模块设计与实现31第五节 本章小结32第五章 系统实现与验证33第一节 仿真与验证33第二节 下载与配置33第三节 系统测试结果35结
13、 论36致 谢37参考文献38附 录39一、英文原文39二、英文翻译46三、源程序50前 言现代社会的标志之一就是信息产品的广泛使用,而且是产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。前者以微细加工技术为代表,而后者的代表就是电子设计自动化(electronic design automatic,EDA)技术。本设计采用的Verilog HDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、
14、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。在控制系统中,键盘是常用的人机交换接口,当所设置的功能键或数字键按下的时候,系统应该完成该键所设置的功能。因此,键信息输入是与软件结构密切相关的过程。根据键盘的结构不同,采用不同的编码方法。但无论有无编码以及采用什么样的编码,最后都要转换成为相应的键值,以实现按键功能程序的转移。钟表的数字化给人们生产生活带来了极大的方便,而
15、且大大地扩展了钟表原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。第一章 数字时钟概述数字时钟在我们生活中其中非常重要的作用,了解数字时钟目前的发展状况是必需的,对于数字时钟的研究也是非常有必要的。本章还讲述数字时钟的原理和基本的功能要求。第一节 数字时钟系统及其发展近年来,随着电子产品的发展,人们对数字时钟的要求越来越高,对人们的这一需求,用基于FPGA设计的智数字时钟,功能强大,界面友好,更好的满足了人们对它的要求。 现在是一个知识爆炸的新时代。新
16、产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。FPGA在多功能数字钟中的应用已是非常普遍的,人们对数字钟的
17、功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由FPGA作为数字钟的核心控制器,可以通过它的时钟信号进行计时实现计时功能,将其时间数据经控制输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显示器可以用液晶显示技术和数码管显示技术。第二节 FPGA数字时钟的研究现状一、课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的
18、要求,吸收众多学科最新科技成果而形成的一门新技术。美国Xilinx公司的可编程逻辑器件采用全新的结构和先进的技术,加上ISE开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用Verilog HDL硬件描述语言结合可编程逻辑器件进行的,并
19、通过数码管动态显示计时结果。数字钟可以由各种技术实现,如单片机等.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。二、课题研究的必要性现在是一个知识爆炸的新时代。新产品、新技术层出不穷,电子技术的发展更是日新月异。可以毫不夸张的说,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越
20、宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的钟表给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,有电子闹钟、数字闹钟等等。第三节 数字时钟的原理介绍及功能要求一、数字时钟的原理介绍数字时钟使用4个两位的计数器来实现,即百分秒计数器、秒计数器、分计数器和小时计数器每个计数器又分别使用高低位2个计数器来实现其中百分秒数器是100进制计数器(高位l0进制计数器,低位10进
21、制计数器),秒计数器和分计数器是60进制计数器(高位6进制计数器,低位10进制计数器),小时计数器是24迸制计数器(高位2进制计数器,低位10进制计数器)。数字时钟首先是百分秒计数器按照系统时钟CLK_50进行计数,计数满100后向秒计数器进位秒计数器以百分秒计数器的进位位cnl为时钟进行计数,计数满60后向分计数器进位分计数器以秒计数器的进位位cn2为时钟进行计数,计数满60后向小时计数器进位小时计数器以分计数器的进位位cn3为时钟进行计数,计数满24后整个系统从0开始重新进行计数。二、数字时钟的功能要求时钟功能:完成分/时的正确计数并显示,秒由于数码管数目的限制,采取发光二极管做提示;闹钟
22、定时:实现定时提醒及定时报时,利用蜂鸣器发出报时声音;时钟校时:当认为时钟不准确时,可以分别对分/时钟进行调整;秒表功能:利用4个数码管完成秒表显示:其精度达100ms,可以暂停,并可随时记时、暂停后记录数据,最大计时为999.9s。第四节 本章小结本章主要讲述了数字时钟系统及其发展情况,由于本设计主要是研究基于FPGA的数字时钟设计,所以本节也讲述了FPGA数字时钟的研究现状,包括课题相关技术的发展及研究的必要性。本章最后也对数字时钟的原理及功能要求做了说明。第二章 FPGA数字系统的开发原理FPGA的开发原理对于了解和掌握FPGA是非常重要的,首先必须了解FPGA的基本工作原理,再是设计流
23、程和基本原则,最后是FPGA的基本结构和常见技术。 第一节FPGA技术及其工作原理一、FPGA概述FPGA是现场可编程门阵列(Field Programmable Gate Array)的简称,与之相应的CPLD是复杂可编程逻辑器件(Complex Programmable Logic Device)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/FPGA。CPLD/ FPGA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数
24、字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。二、FPGA的基本工作原理目前,Xilinx公司生产的FPGA都采用基于SRAM工艺的查处表(Look-Up-Table)结构,通过烧写文件改变查找表内容的方法实现对FPGA的重复配置,在使用时需要外接一个片外存储器以保存程序。上电时,FPGA将外
25、部存储器中的数据读入片内RAM,完成配置后,进入工作状态;掉电后FPGA恢复白片,内部逻辑消失。由数字电路的基本知识可以知道,对于一个n输入的逻辑运算,不管是与或非运算还是异或运算等,最多只可能存在2n种结果。所以,如果事先将相应的结果存放于一个存储单元,就相当于实现了与非门电路的功能。FPGA的原理也是如此,它通过烧写文件去配置查找表的内容,从而在相同的电路情况下实现了不同的逻辑功能。查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成是一个4位地址线的RAM。当用户通过原理图或HDL语言描述一个逻辑电路后
26、,PLD/FPGA开发软件会自动计算逻辑电路的所有可能结果,并把真值表(即结果)写入RAM,这样,每输入有一个信号进行逻辑运算就等于输入一个地址去进行查找表,找出地址对应的内容,然后输出即可。第二节FPGA的设计流程FPGA的基本开发流程主要包括设计输入(design entry)、设计仿真(Simulation)、设计综合(Synthesize)、布局布线(Place&route)和配置(Configuration)这五个主要步骤。集成综合环境(ISE)的功能涵盖了FPGA开发的全过程,从功能上讲,其工作流程无雪借助如何第三方EDA软件。FPGA的一般开发流程如图2.1所示。图2.1 FPG
27、A的一般开发流程一、设计输入设计输入是根据工程师的设计方法所设计的功能描述给EDA软件,常用的设计输入方法有硬件描述语言HDL和原理图设计方法。原理图设计输入法在早期应用得比较广泛,它根据设计要求,选用器件,绘制原理图,完成输入过程。这种方法的优点是直观、便于理解、元件库资料丰富。但是在大型设计中,这种方法的可维护性较差,不利于模块建设与重用。ISE提供的设计输入工具包括用于HDL代码输入和查看报告的文本编辑器(ISE Text Editor)、用于原理图编辑的工具ECS(Enginerring Capture System)、用于生成IP Core的Core Generator、用于状态机设
28、计的StateCAD以及用于约束文件编辑的Constraint Editor等二、设计综合综合优化(Synthesize)是指将HDL语言、原理图等设计输入翻译成由与门、或门、非门、RAM、寄存器等基本逻辑单元组成的逻辑连接(网表),并根据目标与要求(约束条件)优化所生成的逻辑连接,输出edf和edn等文件,供FPGA厂家的布局线器进行实现。综合工具有Xilinx ISE集成的XST(Xilinx Synthesis Technology),还有比较流行且高效的Mentor Graphics公司的Synplify。Synplify综合工具综合出的结果占用面积小,工作频率高,综合速度快。ISE的
29、综合工具不但包括了Xilinx自身提供的综合工具XST,同时还可以内嵌Mentor Graphics公司的Leonardospectrum和Synplify公司的Synplify,实现无缝连接。三、设计仿真设计仿真主要有功能仿真和时序仿真两种。功能仿真是验证电路功能是否符合设计要求,也叫做前仿真,此时的仿真没有延时消息,对于初步的功能检测非常方便。仿真前,要先利用波形编辑器和硬件描述语言等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可观察到各个节点的信号变化。如果发现错误,则返回设计中修改逻辑设计。时序仿真在布局布线之后,又称做后仿真
30、后延时仿真。由于不同器件的内部延时不一样,不同的布局布线方案也给延时造成不同的影响,因此在处理设计后,对系统和个模块进行时序仿真,分析其时序关系,估计设计的性能,以及检查和消除竞争冒险等式非常必要的。在时序仿真中,应该将布局布线的延时文件反标到设计中,使仿真既包含延时消息,又包含延时信息。与功能仿真相比,这种后仿真包含的延时信息最为全面、准确,能较好地反映芯片的实际工作情况。四、实现综合结果的本质是一些由与门、或门、非门触发器,RAM等基本逻辑单元组成的逻辑网表,它与芯片实际的配置情况还有较大差距。此时应该使用FPGA厂商提供的工具软件,根据所选芯片的型号,将综合输出的逻辑网表适配到具体的FP
31、GA器件上,这个过程就叫做实现过程。Xilinx的实现过程分为:翻译(Translate)、映射(Map)和布局布线(Place&Route)等三个步骤。因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的工具软件。五、下载下载功能包括了BitGen,用于将布局布线后的设计文件转化为位流文件,还包括IMPACT,其功能是进行设备配置和通信,控制将程序烧写到FPGA芯片中去。使用ISE进行FPGA设计的各个过程可能涉及到的设计工具如表2.1所示。表2.1 使用ISE进行FPGA设计的设计工具描述设计输入综合仿真实现下载HDL文本编辑器ECS原理图编辑器StateCAD状态
32、机编辑器Core GeneratorConstraint EditorXSTFPGA Express(Synplify LeonardoSpectrum)HDL Bencher(ModelSim)TranslateMAPPlace and RouteXpowerBigenIMPACT第三节 FPGA设计的基本原则一、硬件原则首先, FPGA的逻辑设计所采用的硬件描述语言VHDL或Verilog与软件语言C和C有本质区别,在使用硬件描述语言进行设计时,不应片面追求代码的简洁。其次,要采用正确的编码方法。要对所需实现的硬件电路的结构和相互连接有清晰的理解和构想,然后再用适当的HDL语言表达出来。实
33、际上综合软件对所写的代码在进行推论的时候,得到的硬件结果会因编码方式的不会而不同,直接影响硬件的实现。二、面积和速度的平衡与互换原则面积和速度是ASIC芯片设计中一对相互制约、影响成本和性能的指标,贯穿FPGA设计的始终。在FPGA设计中,面积是指一个设计消耗的FPGA内部逻辑资源的数量,可以用消耗的触发器和查找表的个数或者是等效逻辑门数来衡量;速度是指一个设计在FPGA上稳定运行时所能达到的最高频率,由设计时序状态决定。关于面积和速度的折衷,应在满足设计时序和工作频率要求的前提下,占用最小的芯片面积;或者在所规定的面积下,使得设计的时序余量最大,能够在更高的频率上稳定运行。通常,在资源足够的
34、情况下,更多是选择速度的最优,这也是FPGA的特点。在具体设计中,应根据具体性能指标要求,在保证系统功能和性能的同时,降低资源消耗从而降低功耗和成本。三、系统原则FPGA作为硬件系统设计,应该对设计全局进行宏观上的合理安排,包括逻辑功能模块划分、时钟域信号的产生和驱动、模块复用、时序或引脚约束、面积速度折衷等。这些系统上的考虑不仅关系到是否能够最大程度地发挥项目成员的协同设计能力,而且直接决定着设计的综合、实现效果和相关的操作时间。模块化设计是系统原则的一个很好体现,它是自顶向下、模块划分、分工协作设计思路的集中体现,是大型复杂系统的推荐设计方法。四、同步原则在设计电路时,可以有异步电路和同步
35、电路两种实现方法。异步电路使用组合逻辑电路实现,没有统一的时钟信号,容易产生毛刺和竞争冒险;同步时序电路使用组合逻辑和触发器实现电路功能,主要信号和输出信号都由时钟驱动触发器产生,能够避免毛刺,信号稳定。从资源使用方面考虑,推荐使用同步设计。虽然在 ASIC设计中同步电路比异步电路占用的面积大,但是在FPGA中,是以逻辑单元衡量电路面积的,所以同步设计并不比异步设计浪费资源。从延迟设计方面考虑,异步电路的延时靠门延时来实现,比较难预测;同步电路使用计数器或触发器实现延时。同步设计时钟信号的质量和稳定性决定了同步时序电路的性能,FPGA的内部有专用的时钟资源,如全局时钟布线资源、专用的时钟管理模
36、块DLL、PLL等。目前商用的 FPGA都是面向同步的电路设计而优化的,同步时序电路可以很好地避免毛刺,提倡在设计中全部使用同步逻辑电路。不同的时钟域的接口需要进行同步。第四节 FPGA基本结构及常见技术一、FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB-Configurable Logic Block)、输入/输出模块(IOB-I/O Block)和互连资源(IRInterconnect
37、 Resource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路。CLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB图2.2 CLB基本结构框图1、CLB是FPGA的主要组成部分图2-2是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CL
38、B中3个逻辑函数发生器分别是G、F和H,相应的输出是G 、F和H。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G和F,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励
39、输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。2.输入/输出模块IOBIOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引
40、脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。3.可编程互连资源
41、IR可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。二、FPGA常见技术1、数字时钟管理DCM数字时钟管理(DCM,Digitial Clock Manage)是基于Xilinx的其他系列器件所采用的数字延迟锁相环(DLL)模块。在时钟的管理与控制方面,DCM与DLL相比,功能更强大,使用更灵活。DCM的功能包括消除时钟的延时、频率的合成、时钟相位的调整等系统方面的需求。DCM共由四部分组成,其中最底层仍采用成熟的DLL模块;其次分别为数字频
42、率合成器(DFS,Digitial Frequency Synthesizer)、数字移相器(DPS,Digitial Phase Shifer)和数字频谱扩展器(DSS,Digitial Spread Spectrum)。不同的芯片模块的DCM输入频率范围是不同的。2、串化与解串技术串化与解串即Serdes,它能将低速的并行信号转换成高速的串行数据,也可以将高速的串行数据转换成低速的并行数据。Serdes的基本构成模块如图2.2所示。图2.2 Serdes的基本构成模块3、字对齐技术字对齐技术又陈=称为Comma对齐,用于在将串行数据转换成并行数据时,确定有效数据的边界,以便使转换后的并行数
43、据正确。Comma对齐的原理是:接收器在输入数据流中扫描搜寻特定的比特序列,如果找到序列,解串器调整字符边界以匹配检测到的Comma字符序列,扫描是连续进行的。一旦对齐确定,所有后续的Comma字符均会发现对齐已经确定。当然,在任意的序列组合里Comma字符序列是唯一的。4、通道绑定技术通道绑定是指将多个串行通信通道组合在一起构成一个并行通道,以此来提高收发的数据吞吐率。由于每个通道在收发互连、时钟再生和数据接收延迟上各不相同,会使接收到的数据产生“错位”的情况,因此要在发送端数据流中加入一个特殊的序列通道绑定序列。每个绑定通道都设定“P”字符为通道绑定序列,在接收端指定一个通道为主通道,其余
44、通道都依据主通道的CHBONDO有效指示进入绑定状态,进而锁定本通道在Elastic Buffer中接收到通道绑定的位置。由Elastic Buffer向内部逻辑电路输出数据时,所有经过绑定的通道都以绑定序列指定的Elastic Buffer中的偏移位置进行对齐输出。通道绑定完成后,为了使绑定维持在稳定状态,各通道收发器也要以主通道收发器为准进行时钟修正操作。5、预加重技术在印制的电路板上,线路是呈现低通滤波器的频率特性的,为解决高频部分的损失,就要采取预加重技术。预加重技术的思想是:在传输信号时,抬高信号的高频信号,以补偿线路上高频分量的损失。第五节 本章小结本章主要讲述了FPGA数字系统的
45、开发原理,目前FPGA的使用越来越广泛,使用了解FPGA是必须的。本章主要讲述了FPGA的工作原理概述以及设计流程,讲述了FPGA设计的基本原则,包括硬件原则,面积和速度的平衡与互换原则,系统原则和同步原则。最重要的是FPGA的基本结构和常见技术,了解这些对掌握FPGA具有主要的意义。第三章 FPGA开发平台本设计是基于FPGA的数字时钟设计,并且是用Verilog HDL语言的,所以软件是采用Xilinx公司的ISE11.1版本,硬件是采用Xilinx公司的Aquila硬件板卡,功能非常强大。第一节 Verilog HDL介绍一、Verilog HDL概述HDL(Hardware Descr
46、iption Language)是一种用形式化方法来描述数字电路和数字逻辑系统的硬件描述语言,有两种类型:VHDL和Verilog HDL。例如,在传统的数字电路设计过程中,对2输入的与门,我们可能需要到标准器件库中调出一个74系列的器件,但在硬件描述语言中,“&”就是一个与门的形式描述,“C=A&B”就是一个2输入与门的描述,而“and”就是一个与门器件。Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。Verilog HDL 语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外, Verilog HDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包