完整版基于FPGA的数字电子钟系统设计毕业论文.docx
《完整版基于FPGA的数字电子钟系统设计毕业论文.docx》由会员分享,可在线阅读,更多相关《完整版基于FPGA的数字电子钟系统设计毕业论文.docx(62页珍藏版)》请在冰豆网上搜索。
完整版基于FPGA的数字电子钟系统设计毕业论文
基于FPGA的数字电子钟系统设计
摘要
随着电子技术的飞速发展,现代电子产品渗透到了社会的各个领域,并有力地推动着社会生产力的发展和社会信息化程度的提高。
在现代电子技术中,可编程器无疑是扮演着重要角色。
现场可编程门阵列(FPGA)是近年来迅速发展起来的新型可编程器,其灵活的可编程逻辑可以方便的实现高速数字信号处理。
它突破了并行处理、流水级数的限制,具有反复的可编程能力,从而有效的地利用了片上资源,加上高效的硬件描述语言(VHDL),从而为数字系统设计提供了极大的方便。
本文较系统地介绍了FPGA的基本结构、基本原理、功能特点及其应用;阐述了数字系统设计的基本思想及设计流程,同时,也概述了FPGA在数字系统设计中的作用,基于FPGA的数字系统设计方法和流程;简要介绍了VHDL语言的发展历程,VHDL语言的功能特点等。
本文的主要内容是根据上述原理和方法设计一个电子钟系统,目的在于通过该系统的功能,体现出FPGA在数据处理中的应用。
该电子钟系统功能齐全,设计思路清晰。
系统程序基于VHDL语言,采用模块化设计方法。
系统设计包含8个子程序模块:
分频组件、六十进制计数器组件、二十四进制计数器组件、闹钟设定组件、校时组件、i60BCD组件、i24BCD组件、以及二进制转换成七段码组件。
每个子程序均经过EDA工具仿真,并附有仿真图,最后将各模块组装为一个整体——电子钟。
关键词电子设计自动化;现场可编程门阵列;硬件描述语言;电子钟
DigitalElectronicClockDesignBasedonTechnologyofFPGA
Abstract
Withtherapiddevelopmentofelectronictechnology,modernelectronicproducts,alsoincreased.Inmodernelectronictechnology,theprogrammablelogicdevicesplayakeyrole.
Fieldprogrammablegatearrays(FPGA),anewtypeofprogrammabledevice,isdevelopingrapidlyrecentyears.Itintroducedtheconceptofflexibleprogrammablelogic,whichcanrealize-chipresources,coupledwithefficientlanguageVHDL,soastodesigndigitalsystemsconveniently.ThisarticleintroducesasystemofthebasicstructureoftheFPGA,thebasicprincipleoffeaturesandapplications;expoundedonthebasicdesignofdigitalsystemsthinkinganddesignprocess,atthesametime,alsooutlinedtheFPGAinthedesignofdigitalsystems,FPGA-baseddigitalsystemdesignmethodsandprocesses;gaveabriefingonthedevelopmentofVHDLlanguage,VHDLlanguageandotherfeatures.
Themainworkisbasedontheprinciplesandmethods,designanelectronicclocksystemtotheadoptionofthesystem,embodiedintheFPGAdataprocessingofapplications.Theelectronicclocksystemisfullyfunctional,designedclearideas.BasedonVHDLsystemprocedures,Thesystemismodularindesignmethods.Itincludes8sub-systemdesignprocessmodules:
frequencydivisionsystem,60Mcountersystem,24Mcountersystem,Alarmclocksettingssystem,timingsystem,i60BCDsystem,i24BCDsystem,andconvertbinaryintoSeven-Segmentcodesystem.eachsubroutinesimulatedbyEDAtools,withasimulationmap.Themoduleswillbethefinalassemblyasawhole-theelectronicclock.
KeywordsEDA;FPGA;VHDL;Electronicclock
不要删除行尾的分节符,此行不会被打印
摘要……
Abstract
第1章绪论1
1.1课题背景和意义1
1.2可编程器件的发展历程1
1.2.1早期的可编程器件——PLD2
1.2.2高级可编程器件FPGACPLD3
1.3国内外研究现状4
1.4本文主要内容5
第2章FPGA基本结构及数字系统设计原理6
2.1FPGA的基本结构及工作原理6
2.1.1基于查找表结构的FPGA8
2.1.2查找表结构的FPGA逻辑实现原理8
2.1.3FPGA的工作原理9
2.2数字系统设计概述9
2.2.1数字系统的组成10
2.2.2数字系统设计方法10
2.2.3数字系统设计的一般过程11
2.3本章小结12
第3章数字电子钟功能模块设计13
3.1数字系统设计中的FPGA13
3.1.1FPGA在数字系统设计中的作用13
3.1.2基于FPGA的应用系统设计13
3.2数字系统设计的重要工具——VHDL16
3.2.1VHDL语言的特点16
3.2.2基于VHDL的系统设计流程17
3.3电子钟主要功能模块设计18
3.3.1分频模块18
3.3.2六十进制计数器模块19
3.3.3二十四进制计数器模块20
3.3.4校时模块22
3.3.5BCD七段显示译码器23
3.4本章小结23
第4章电子钟模拟仿真及其分析24
4.1系统设计的总体思路24
4.2各功能模块仿真分析25
4.2.1分频组件25
4.2.2六十进制计数器组件25
4.2.3二十四进制计数器组件26
4.2.4闹钟设定组件26
4.2.5校时组件27
4.2.6i60BCD组件28
4.2.7i24BCD组件29
4.2.8二进制转换成七段码组件30
4.3数字电子钟功能仿真图30
4.4采用FPGA设计优势分析33
4.5本章小结34
结论35
致谢36
参考文献37
附录A38
附录B43
附录C47
附录D48
千万不要删除行尾的分节符,此行不会被打印。
在目录上点右键“更新域”,然后“更新整个目录”。
打印前,不要忘记把上面“Abstract”这一行后加一空行
第1章绪论
1.1课题背景和意义
20世纪70年代,随着中小规模集成电路的开发应用,传统的手工制图设计印刷电路板和集成电路的方法已无法满足设计的精度和效率的要求。
因此工程师们开始进行二维平面图形的计算机辅助设计,以解脱复杂机械的版图设计工作,这就产生了第一代EDA工具。
在80年代,电子产品的规模和复杂程度的增加促使第二代EDA工具的产生。
第二代EDA主要以计算机仿真和自动布局布线技术为核心,与此同时,还引出了以半定制概念为特征的专用集成电路概念。
EDA技术的物质基础即为可编程逻辑器件,又称为可编程ASIC。
目前,代表可编程器件发展潮流的是复杂可编程逻辑器件(CPLD)和可编程逻辑门阵列(FPGA)。
使用FPGA构造数字电子系统,设计者可以不用考虑芯片内部的具体结构,也不用顾虑与外部的电路连接。
设计者只需依据电路所要完成的具体逻辑功能,然后设法用软件描述出来即可。
至于数据在芯片内部的处理过程,设计者不用考虑,但设计者可以通过仿真软件观察和验证数据的处理结果。
这种设计方法,极大地降低了设计难度,提高了工作效率。
本论文以FPGA在数据处理中的应用立题,系统阐述基于FPGA的数字系统设计方法,并尝试设计出一个简单的系统——电子钟,掌握其设计的思想和方法,为以后设计更复杂的系统打下基础。
1.2可编程器件的发展历程
当今社会是数字化的社会,是数字集成电路广泛应用的社会。
数字集成电路本身在不断地进行更新换代。
它由早期的电子管、晶体管、小中规模集成电路、发展到超大规模集成电路以及许多具有特定功能的专用集成电路。
但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。
系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
在数字电子系统领域,存在三种基本的器件类型:
存储器、微处理器和逻辑器件。
存储器用来存储随机信息,如数据表或数据库的内容。
微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。
逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能[1]。
1.2.1早期的可编程器件——PLD
逻辑器件可分为两大类——固定逻辑器件和可编程逻辑器件。
正如其命名一样,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能 ,一旦制造完成,就无法改变。
另一方面,可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品部件, 而且此类器件可在任何时间改变,从而完成许多种不同的功能。
对于固定逻辑器件,根据器件复杂性不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。
而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。
设计和验证固定逻辑的前期工作需要大量的NRE成本。
NRE代表在固定逻辑器件最终从芯片制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩膜组以及初始原型器件的生产成本。
这些NRE成本可能从数十万美元至数百万美元。
对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。
然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。
早期的可编程逻辑器件只有可编程只读存贮器(PROM)、紫外线可擦除只读存贮器(EPROM)和电可擦除只读存贮器(EEPROM)三种。
由于结构的限制,它们只能完成简单的逻辑功能。
其后,出现了一类在结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。
典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与一或”表达式来描述,所以,PLD能以乘积和的形式完成大量组合逻辑功能,PLD基本框图如图1-1所示。
图1-1PLD的基本框图
这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。
PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。
PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。
还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。
PLA器件既有现场可编程的,也有掩膜可编程的。
在PAL的基础上,又发展了一种通用阵列逻辑GAL(GenericArrayLogic),如GAL16V8,GAL22V10等。
它采用了EEPROM工艺,实现了电可按除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用[2]。
固定逻辑器件和PLD各有自己的优点。
例如,固定逻辑器件经常更适合大批量应用,因为它们可更为经济地大批量生产。
对一些需要极高性能的应用,固定逻辑也可能是最佳的选择。
然而,可编程逻辑器件提供了一些优于固定逻辑器件的重要优点,包括:
1.PLD在设计过程中为客户提供了更大的灵活性,因为对于PLD来说,设计反复只需要简单地改变编程文件就可以了,而且设计改变的结果可立即在工作器件中看到。
2.PLD不需要漫长的前导时间来制造原型或正式产品 ——PLD器件已经放在分销商的货架上并可随时付运。
3.PLD不需要客户支付高昂的NRE成本和购买昂贵的掩膜组。
PLD供应商在设计其可编程器件时已经支付了这些成本,并且可通过PLD产品线延续多年的生命期来分摊这些成本。
4.PLD允许客户在需要时仅订购所需要的数量,从而使客户可控制库存。
采用固定逻辑器件的客户经常会面临需要废弃的过量库存,而当对其产品的需求高涨时,他们又可能为器件短缺(供货不足)所苦,并且不得不面对生产延迟的现实。
5. PLD甚至在设备付运到客户那儿以后还可以重新编程。
事实上,由于有了可编程逻辑器件,一些设备制造商现在正在尝试为已经安装在现场的产品增加新功能或者进行升级。
要实现这一点,只需要通过因特网将新的编程文件上载到PLD就可以在系统中创建出新的硬件逻辑[3]。
1.2.2高级可编程器件FPGACPLD
可编程逻辑器件的两种类型是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
在这两类可编程逻辑器件中,FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
1.采用FPGA设计ASIC电路,用户不需要投片生产就能得到合适芯片。
2.FPGA可做其它全定制或半定制ASIC电路的中试样片。
3.FPGA内部有丰富的触发器和IO引脚。
4.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5.FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。
现在最新的FPGA器件,如Xilinx Virtex™ 系列中的部分器件,可提供八百万“系统门”(相对逻辑密度)。
这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、时钟管理系统等特性,并支持多种最新的超快速器件至器件(device-to-device)信号技术。
FPGA被应用于范围广泛的领域中,从数据处理和存储直到仪器仪表、电信和数字信号处理。
与此相比,CPLD提供的逻辑资源少得多 —— 最高约1万门。
但是,CPLD提供了非常好的可预测性,因此对于关键的控制应用非常理想。
而且CPLD器件(如Xilinx CoolRunner™ 系列)需要的功耗极低,并且价格低廉,从而使其对于成本敏感的、电池供电的便携式应用(如移动电话和数字手持助理)非常理想[4]。
由于CPLD和FPGA结构上的差异,具有各自的特点:
1.CPLD更适合完成各种算法和组合逻辑,FPGA更适合于完成时序逻辑。
换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
2.CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
3.在编程上FPGA比CPLD具有更大的灵活性。
CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。
4.FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。
5.CPLD比FPGA使用起来更方便。
CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。
而FPGA的编程信息需存放在外部存储器上,使用方法复杂。
6.CPLD的速度比FPGA快,并且具有较大的时间可预测性。
这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。
7.在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。
CPLD又可分为在编程器上编程和在系统编程两类。
FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。
其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。
8.CPLD保密性好,FPGA保密性差。
9.一般情况下,FPGA的功耗要比CPLD大,且集成度越高越明显[5]。
1.3国内外研究现状
过去几年时间里,可编程逻辑供应商取得了巨大的技术进步,以致现在PLD被众多设计人员视为是逻辑解决方案的当然之选。
能够实现这一点的重要原因之一是像赛灵思这样的PLD供应商是“无晶圆制造厂”企业,并不直接拥有芯片制造工厂,赛灵思将芯片制造工作外包给联华电子(UMC)和东芝,他们是芯片制造行业的领导厂商。
这一策略使赛灵思可以集中精力设计新产品结构、软件工具和IP核心,同时还可以利用最先进的半导体制造工艺技术。
先进的工艺技术在一系列关键领域为PLD提供了帮助:
更快的性能、集成更多功能、降低功耗和成本等。
目前赛灵思提供采用先进的90nm和65nm工艺生产的可编程逻辑器件,它们都是业界最领先的工艺。
例如,仅仅数年前,最大规模的FPGA器件也仅仅为数万系统门,工作在40 MHz。
过去的FPGA也相对较贵,当时最先进的FPGA器件大约要150美元。
然而,今天具有最先进特性的FPGA可提供百万门的逻辑容量、工作300 MHz,成本低至不到10美元,并且还提供了更高水平的集成特性,如处理器和存储器。
同样重要的是,PLD现在有越来越多的核心技术(IP)库的支持 - 用户可利用这些预定义和预测试的软件模块在PLD内迅速实现系统功能。
IP核心包括从复杂数字信号处理算法和存储器控制器直到总线接口和成熟的软件微处理器在内的一切。
此类IP核心为客户节约了大量时间和费用,否则,用户可能需要数月的时间才能实现这些功能,而且还会进一步延迟产品推向市间[6]。
1.4本文主要内容
本文首先介绍了FPGA相关的背景知识以及FPGA的基本结构和工作原理,阐述了数字系统的构造方法和流程,从而为应用FPGA构建数字系统打下基础。
同时具体介绍了构成电子钟主要功能模块特性与功能,在此基础上给出电子钟系统的设计方法和设计过程,这其中包括电子钟的总体框图架构,各模块的模拟仿真及其分析。
最后,结合此次设计的亲身经历,对FPGA技术进行简单的总结。
第2章FPGA基本结构及数字系统设计原理
自1985年Xilinx公司推出第一片现场可编程逻辑门阵列即FPGA至今,FPGA已经经历了20余年的发展历史。
在这20多年的发展过程中,以FPGA为代表的数字系统现场集成技术取得了惊人发展:
FPGA从最初的1200个可利用门,发展到20世纪90年代的25万个可利用门,进入2000年以后,国际上著名的FPGA厂商Altera公司和Xilinx公司相继推出了数百万个可利用门的单片FPGA芯片,将FPGA的集成度提高到了一个新的水平。
2.1FPGA的基本结构及工作原理
FPGA的基本结构由6部分组成,分别为可编程输入输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,FPGA的基本结构图如图2-1所示。
可编程IO单元嵌入式RAM基本可编程逻辑单元内嵌专用内核
底层嵌入
功能单元布线资源
图2-1FPGA的基本结构
每个单元简介如下:
1.可编程输入输出单元(IO单元)
目前大多数FPGA的IO单元被设计为可编程模式,即通过软件的灵活配置,可适应不同的电器标准与IO物理特性;可以调整匹配阻抗特性,上下拉电阻;可以调整输出驱动电流的大小等。
2.基本可编程逻辑单元
FPGA的基本可编程逻辑单元是由查找表(LUT)和寄存器(Register)组成的,查找表完成纯组合逻辑功能。
FPGA内部寄存器可配置为带同步异步复位和置位、时钟使能的触发器,也可以配置成为锁存器。
FPGA一般依赖寄存器完成同步时序逻辑设计。
一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但不同厂商的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。
学习底层配置单元的LUT和Register比率的一个重要意义在于器件选型和规模估算。
由于FPGA内部除了基本可编程逻辑单元外,还有嵌入式的RAM、PLL或者是DLL,专用的HardIPCore等,这些模块也能等效出一定规模的系统门,所以简单科学的方法是用器件的Register或LUT的数量衡量。
3.嵌入式块RAM
目前大多数FPGA都有内嵌的块RAM。
嵌入式块RAM可以配置为单端口RAM、双端口RAM、伪双端口RAM、CAM、FIFO等存储结构。
CAM,即为内容地址存储器。
写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。
简单的说,RAM是一种写地址,读数据的存储单元;CAM与RAM恰恰相反。
除了块RAM,Xilinx和Lattice的FPGA还可以灵活地将LUT配置成RAM、ROM、FIFO等存储结构。
4.丰富的布线资源
布线资源连通FPGA内部所有单元,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度。
布线资源的划分:
(1)全局性的专用布线资源:
以完成器件内部的全局时钟和全局复位置位的布线;
(2)长线资源:
用以完成器件Bank间的一些高速信号和一些第二全局时钟信号的布线。
(3)短线资源:
用来完成基本逻辑单元间的逻辑互连与布线;
(4)其他:
在逻辑单元内部还有着各种布线资源和专用时钟、复位等控制信号线。
由于在设计过程中,往往由布局布线器自动根据输入的逻辑网表的拓扑结构和约束条件选择可用的布线资源连通所用的底层单元模块,所以常常忽略布线资源。
其实布线资源的优化与使用和实现结果有直接关系。
(5)底层嵌入功能单元[7]
2.1.1基于查找表结构的FPGA
查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。
目前FPGA中多使用4输入的LUT,所以每一个LUT可以