




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录FPGA实验教学系统的开发研究学 生:刘 洋指导老师:王 露三峡大学:理学院摘 要: 近年来,随着集成电路技术的发展,基于现场可编程门阵列FPGA的集成电路设计发挥着巨大的作用。特别是随着电子设计自动化EDA技术的飞速发展和功能的不断完善,使得现场可编程门阵列FPGA成为当今电子设计领域中应用最为广泛的可编程逻辑器件之一,因而也是集成电路设计教学的必选内容。所以设计一套实用的FPGA实验教学系统是非常必要的。该实验教学系统具有从简单到复杂、从基础性实验到自主创新性实验逐步深入的特色,使学生不但能够快速地掌握FPGA的设计方法,而且能够充分地调动学生的主观能动性,培养学生的学习兴趣和创新能力。Abstract:In recent years, with the development of the integrated circuit technology, based on field programmable gates array FPGA integrated circuit design plays a huge role. Especially as the electronic design automation EDA technology rapid development and the continuous improvement of the function, make the field reprogrammable array FPGA as the modern electronic design field, the most widely used one of programmable logic device, and thus as integrated circuit design teaching content will choose. So design a set of practical FPGA experiment teaching system is very necessary.The experiment teaching system has from simple to complex, from basic experiment to independent innovative experiment stepped-up characteristics, so that students can not only quickly grasp the FPGA design method, and be able to fully mobilize students subjective initiative, cultivate the students interest in learning and innovation ability.关键字:实验教学;电子设计自动化;数字系统;FPGAKey word:experimental teaching;EDA ;digital system ;FPGA 引言 随着电子设计自动化(Electronic Design Automatic)技术飞速发展,它已逐渐成为现代电子技术的核心。随着EDA开发工具功能的不断完善,使得现场可编程门阵列(FPGA,Field Programmable gate Array)技术以空前的规模和速度渗透到各行各业,并成为当今电子设计领域中应用最为广泛的可编程逻辑器件之一。由于FPGA具有开发周期短、编程灵活、可靠性高等优点,所以非常适合在实验室中使用1。2l世纪的教育是开放的、创新的教育,其主要目标是培养具有创新思维、创新能力的高素质人才。高校的实验室和实验教学恰恰是理论和实践相结合的科研和教学基地,是培养学生创新能力和工程实践能力的重要场所。很多高校在修订的教学培养计划中重点强调要加大实验教学的比例,其中对于FPGA这种独立性较强且学时较多的实验课可以单独设课。教学培养计划中还明确指出实验教师要不断地改革陈旧的实验内容和方法,积极开展先进技术领域实验教学内容的研究。因此,将FPGA引入实验教学之中是非常必要的。这样不但可以使教学跟上科学技术发展的最新形势,还可以培养出符合社会发展需要的高素质人才。根据本科教学培养计划对FPGA实验教学的要求,并结合电子技术实验教学的特点而提出本课题。本课题研究的目的就是要设计一套实用的、系统的、适用于本科教学的FPGA实验教学方案。FPGA作为一类特殊的专用集成电路出现,却有着与以往同类电子器件截然不同的结构和性能,这是进行FPGA应用研究的最重要原因。与ASIC相比可编程逻辑器件解决方案可以保证产品的上市时间更快,开发周期更短,总体成本更低。随着科研项目的大型化、复杂化、市场化,其开发工具也需要具有高速处理大量数据的能力。FPGA的可重复编程、易维护、易升级等优点尤其适合在实验室中使用,对FPGA进行应用研究可以不断地进行设计调整进而满足产品升级或修改的需要,用户为了更好地使用FPGA器件,也有必要对FPGA进行深入研究。另外,FPGA的应用已不仅仅是一种单纯的基于某种特定器件的应用开发过程,而是一种极富挑战性和创造性的开拓性的活动。它打破了软硬件之间最后的屏障,使软硬件工程师们有了真正的共同的语言,它使目前一切仍处于计算机辅助设计和规划的纯软件活动变成了实实在在的实体设计。随着EDA技术的发展和FPGA在深亚微米领域的进军,嵌入式通用FPGA与标准FPGA器件的陆续推出,片上系统(SOC,SystemOnChip)已近在咫尺2。FPGA不可替代的地位及伴随而来的极具知识经济特征的口核产业的崛起正越来越受到业内人士的密切关注161。FPGA器件从出现至今只有短短二十多年的发展历史,有很多电子设计工程师以至FPGA产品的用户对这一器件的特性和优势还不是非常了解。部分有经验的设计师还是习惯于用单片机等传统工具从事电路设计,这样就影响了电子产品的市场竞争力,也忽略了产品的升级空间。因此十分有必要对FPGA进行全面细致的分析,从而更好地利用FPGA的优势为电子设计服务。一 FPGA的相关知识1.1 FPGA简述1985年,Xilinx推出第一款FPGA产品 XC2064 ,它是一种全新的可编程逻辑,这种器件把门阵列的许多方面,如高密度与早期FPD的特性(如现场可编程性)结合在一起。FPGA 采用了逻辑单元阵列LCA(Logic CellArray)这一新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(InputOutput Block)和内部连线(Interconnect)三个部分。FPGA采用不同于PLD架构的设计方式,拥有较高的密度和容量,还具有I/O 多、功耗低等优点,然而其布线复杂,亦导致时序延迟,且呈非固定式,延迟时间较长。FPGA的架构主要有SRAM Base及Anti-fuse两种设计模式,其中SRAM Base的特点是可重复编程、低功耗、可进行系统重构;Anti-fuse 由于具有一次烧录(OTP)的特性,可在保密性上提供较佳的保护,但也因此无法进行重复修改。目前PLD/FPGA供货商全部来自美国公司,主要是Xilinx、Altera、Lattice、Actel、Atmel 等。其中以Xilinx和Altera的市场占有率最大,是最大的可编程集成电路供货商。ACTEL公司一直是世界反熔丝技术FPGA的领先供应商,是军品级和宇航级器件的主要供应商3。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件。与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构,FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。1.2 FPGA的发展趋势分析FPGA发展主要有以下几个值得注意的方向:(1 )规模越来越大,集成度越来越高。早期的FPGA规模只有几千门,2006年5月份,Xilinx公司推出世界上第一个65nm FPGA系列 Virtex-5。基于65nm三极栅氧化层技术、11 层铜布线工艺、低K 材料、新型镍硅自对准技术、新型ExpressFabric技术和ASMBL架构,可以提供330 000个逻辑单元(可编程逻辑门约660 万门)和1 200个用户I /O。(2 )速度不断提高,性能不断提升。Xilinx 2006年推出的Virtex-5 LX 性能和利用率都很高,同时功耗大幅度降低。Virtex-5 LX FPGA比上一代90nm FPGA 提供高出30%的性能,少占用45%的硅片面积,以及提供比上一代90nm FPGA低35%的业界最低动态功耗。Virtex-5 LX系列还通过性能优化的IP 块拥有了550MHz 时钟频率。高性能SelectIO特性提供了到667Mbps DDR2 SDRAM和1200Mbps QDR II SRAM等外部存储器的最快连接。ALtera公司于2006年11月份推出Stratix III的65nmFPGA系列。Stratix III 比前一代器件快25%,密度是前一代FPGA 的2 倍,功耗降低了50%,支持四十多个I/O 接口标准,具有业界一流的性能、灵活性和信号完整性4。( 3 ) I P 库的利用。当前具有IP内核的系统级FPGA的开发主要体现在两个方面:一方面是FPGA厂商将IP 硬核(指完成版图设计的功能单元模块)嵌入到FPGA器件中;另一方面是大力扩充优化的IP 软核(指利用HDL 语言设计并经过综合验证的功能单元模块),用户可以直接利用这些预定义的、经过测试和验证的IP 核资源,有效地完成复杂的片上系统设计。(4 )价格越来越低。FPGA 市场的激烈竞争推动了价格的不断下调。基于SRAM的FPGA的价格下降很快,每1 万门的单价在2004 年底降至1 美元,到2005 年降至0.5 美元。Altera公司于2005年第二季度开始批量生产的低端FPGA Cyc1oneII,其约33万门的产品将以22美元的价格供货。相当于每一万门的单价为0.65 美元左右。(5 )向可编程系统芯片(SOPC)方向发展。可编程系统级芯片(SOPC)具有ASIC的高集成度、低功耗、小尺寸、低成本的优点,同时具有FPGA的低风险、灵活和快速上市的优点。Altera 推出的支持新款Cyclone II FPGA系列的Nios II嵌入式处理器,允许设计者在很短的时间内构建一个完整的可编程系统芯片,风险和成本比中小规模的ASIC小。实现PSOC主要有两种途径,一种是在FPGA中嵌入专用功能的IP核,实现SOC的功能,另一种是将可编程逻辑IP核嵌入到SOC 中。FPGA 不断向高集成度、大容量、高速、低功耗、低价位的方向发展,目前最高水平的FPGA已采用65nm、11 层铜布线,规模已达到330 000个逻辑单元(可编程逻辑门约660 万门)和1 200 个用户I/O,速度已达到550MHz。FPGA发展另一个值得注意的方向是IP 的利用和可编程系统集成。经过70年的不断发展,FPGA已由当初的1200门发展成为今天的百万门级。通过不断更新优化产品架构和生产工艺,实现了更多的逻辑单元、更高的性能、更低的单位成本和功耗。FPGA(现场可编程逻辑器件)产品的应用领域已经从原来的通信扩展到消费电子、汽车电子、工业控制、测试测量等广泛的领域。而应用的变化也使FPGA产品近几年的演进趋势越来越明显:一方面,FPGA供应商致力于采用当前最先进的工艺来提升产品的性能,降低产品的成本;另一方面,越来越多的通用IP(知识产权)或客户定制IP被引入FPGA中,以满足客户产品快速上市的要求。此外,FPGA企业都在大力降低产品的功耗,满足业界越来越苛刻的低功耗需求。第一时间采用新工艺提升性能降低成本,半导体产品的集成度和成本一直在按照摩尔定律演进。在这方面,作为半导体产品的重要一支可编程逻辑器件也不例外。最先进的半导体工艺几乎都会在第一时间被应用在FPGA产品上。而每一次工艺升级带来的优势,都会在产品的功耗、最高运行频率、容量以及成本上得到体现。引入更多通用和定制IP向解决方案供应商转变,近5年来,FPGA的应用已经从过去通信基础设备这一非常窄的领域迅速扩展到了今天非常广泛的应用领域。在许多新兴和快速成长的市场上,FPGA作为核心器件而被广泛采用。无线通信、工业、科学及测量、医疗设备、音视频广播、汽车、计算、存储应用和快速发展的消费品市场,都成为FPGA业务发展的重点领域。在这种情况下,FPGA企业也开始了相应的转型,以适应新的发展需求。采用各种技术路线争做低功耗之王,电池供电应用的迅猛增长刺激了全球市场对低功耗半导体的需求。今天,系统设计人员面对更加严格的系统总体功耗限制。与此同时,这类应用所要求的功能、性能和复杂度也在增加,但却不能以增加电池为代价。为此,原来在功耗指标上并不占优的FPGA产品开始采用各种新技术来降低和优化功耗5。1.3 FPGA的设计流程一般来说,完整的FPGA设计流程如图2.1所示,包括设计准备、设计输入、功能仿真、设计处理、时序仿真和下载调试等主要步骤6。图2.1 FPGA的设计流程 (1)设计准备在系统设计之前,首先要进行的是方案论证、系统设计和器件选择等准备工作。设计人员需要根据任务要求,如系统的功能和复杂程度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。(2)设计输入设计输入是根据工程师的设计方法将所设计的功能描述给EDA软件。常用的设计输入方法有以下四种形式:硬件描述语言(HDL)输入、原理图输入、波形输入和状态机输入。目前进行大型工程设计时,最常用的是硬件描述语言(HDL)设计输入方法,其中应用最为广泛的是VHDL语言和VedlogHDL语言。它们的共同特点是利用“自顶向下”的设计方法,利于模块的划分与复用,可移植性好,通用性好,设计不因芯片的工艺与结构的变化而变化,更利于向ASIC的移植。后三种是常用的辅助设计输入方法,它们只能在某些特殊情况下用于缓解设计者的工作量使用,并不适合所有的设计。(3)功能仿真电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真。常用的仿真工具有Model Tech公司的ModelSim,Synopsys公司的VCS,Cadence公司的NCVerilog和NCVHDL等。通过功能仿真可以及时发现设计中的错误,加快设计进度,提高设计的可靠性。(4)设计处理设计处理是FPGA设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行综合优化、综合后仿真、实现和布局布线等工作7。综合优化综合优化(Synthesize)是指将硬件描述语言、原理图等设计输入翻译成与门、或门、非f-1、RAM以及触发器等基本逻辑单元组成的逻辑网表,并根据目标和约束条件优化所生成的网表,输出edf和edn等文件,供FPGA厂家的布局布线器进行实现。常用的专业综合优化工具为Synplicity公司的Synplify和Xilinx公司的XST。实现综合后生成的逻辑网表与芯片实际的配置情况还有较大差距。此时应该使用FPGA厂商提供的工具软件,根据所选芯片的型号,将综合输出的网表适配到具体的FPGA器件上,这个过程就叫做实现(Implementation)。Xilinx的实现过程分为翻译(Translate)、映射(Map)和布局布线(Place&Route)等3个步骤。因为只有器件开发商最了解器件的内部结构,所以实现步骤必须选用器件开发商提供的工具软件。布局布线布局和布线工作是在上面的设计工作完成后由软件自动完成的,它以最优的方式对逻辑元件布局,并准确地实现内部元件间的互连。布线后软件自动生成报告,提供有关设计中各部分资源的使用情况等信息。(5)时序仿真时序仿真是将布局布线的延时文件返标到设计中,使仿真不但包含门延时信息还包含线延时信息。与前面各种仿真相比,这种后仿真包含的延时信息最为全面、准确,能较好地反映芯片的实际工作情况。(6)下载调试时序仿真完成后,软件就可产生供器件编程使用的数据文件。对于FPGA来说,产生位流数据文件(bit文件),然后将编程数据写入具体的FPGA芯片中或其它配置芯片中进行调试。1.4 FPGA的应用连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗。把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建首发团队的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇8。系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用Xilinx V-4,V-5系列的FPGA,实现内嵌POWER、PC、CPU,然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的9。这种山寨味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。二 系统硬件设计2.1系统硬件框图针对所需的功能,设计出系统的相应硬件平台,硬件平台主要是由嵌入式处理器模块、存储器模块、包括以太网接口、USB接口和电源等外部接口电路模块组成10。如图3.1所示。图3.1 FPGA的硬件框图FPGA选用的是Xillinx公司Spartan3系列中的XC3S5000,主要的开发工具是Xillinx ISE集成开发环境。Xilinx是全球领先的可编程逻辑完整解决方案的供应商,研发、制造并销售应用范围广泛的高级集成电路、软件设计工具以及定义系统级功能的IP(Intellectual Property)核,长期以来一直推动着FPGA技术的发展。Xilinx的开发工具也在不断地升级,由早期的Foundation系列逐步发展到目前的ISE 9.1i系列,集成了FPGA开发的所有功能,其主要特点有:包含了Xilinx新型SmartCompile技术,可以将实现时间缩减2.5倍,能在最短的时间内提供最高的性能,提供了一个强大的设计收敛坏境;全面支持Virtex-5系列器件(业界首款65nm FPGA);集成式的时序收敛环境有助于快速、轻松地识别FPGA设计的瓶颈;可以节省一个或多个速度等级的成本,并可在逻辑设计中实现最低的总成本11。2.2具体电路设计本文设计思想是采取FPGA芯片用于接口电路的扩展,主要是扩展大容量的FLASH,以存放文件,针对所需的功能,设计出系统的相应硬件平台,硬件平台主要是由嵌入式处理器模块、存储器模块、包括以太网接口、USB接口和电源等外部接口电路模块组成。硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案。2.2.1 Flash存储器接口电路Flash存储器具有低功耗、大容量、擦写速度快、可整片或分扇区在系统编程、擦除等特点,因而在各种嵌入式系统中得到了广泛的应用。系统中用了一片AMD29LV320D FLASH存储器,其单片存储容量为32M位(4M字节),工作电压为2.7V3.6V,16位数据宽度。AMD29LV320D仅需3V电压即可完成在系统的编程与擦除操作,通过对其内部的命令寄存器写入标准的命令序列,可对Flash进行编程、整片擦除、按扇区擦除以及其他操作12。Flash存储器在系统中通常用于存放程序代码,系统上电或复位后从此获取指令并开始执行,由于,在进行系统整体设计时,可以通过使用ISE对引脚进行配置,所以对于AMD29LV320D FLASH的三个功能引脚nCE、nOE、nWE,可以各接一个EP1C12Q240C8的通用I/O脚即可。2.2.2 SDRAM存储器接口电路与Flash存储器相比较,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间、数据及堆栈区。当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码调入SDRAM 中运行,以提高系统的运行速度13。同时,系统及用户堆栈、运行数据也都放在SDRAM中。系统中用了一片HY57V641620 SDRAM存储器,其存储容量为4组x16位(8M字节),工作电压为3.3V,常见封装为54脚TSOP,兼容LVTTL接口,支持自动刷新(Auto-Refresh)和自刷新(Self-Refresh) 16位数据宽度。可满足运行MicroC/OS操作系统、或者mClinux操作系统及各种相对较复杂的算法的运行要求。要在系统中使用SDRAM,要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。2.2.3 USB接口设计系统采用Cypress公司的SL811HS芯片作为USB接口芯片,它是一种USB主机控制器,它能与全速或低速USB外围设备通信。SL811HS能与各种微处理器、微控制器、FPGA以及DSP,ISA等各种总线进行接口,适用于各种要求配置USB主机或设备的嵌入式系统。在USB接口电路设计中,SL811HS的8位数据线直接和FPGA芯片的8位数据线相连。其中需要注意的是,SL811HS的AO引脚和低8位地址线的最低位AO相连,即与锁存器的地址输出端的最低位相连14。2.2.4 串行接口设计RS232是应用最为广泛的UART接口,可以方便的实现与计算机的数据通讯;同时在调试基于FPGA的嵌入式操作系统时候,可以作为辅助调试接口,结果输出到主机的超级终端上面。因为FPGA的通用I/O引脚可以在后期通过ISE软件定义,所以只需选取EP1C12Q240C8的任意四个引脚与电平转换器MAX3232C相连,通过MAX3232C 接RS232标准串行接口(DB9),可与PC机进行串行通信15。2.2.5 电源接口设计系统需要使用1.5V、3.3V和5V三种直流电源,其中,EP1C12Q240C8内核使用1.5V电源,EP1C12Q240C8的I/O口、 MAX3232C、LCD接口等器件使用3.3V电源,RTL8019AS使用5V电源。为简化系统电源电路的设计,要求整个系统的输入电压为高质量的 5V直流电压电源,本系统采用电压转换芯片B1117来得到1.5V和3.3V的电压。2.2.6 JTAG接口设计JTAG(Joint Test Action Group)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试 。 JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路,可以通过专用的JTAG测试软件对芯片内部节点进行测试。 EP1C12Q240C8有四个专用引脚TMS、TDI、TCK、TDO与Altera公司的专用下载电缆Byte Blaster II通过一个十针的插座相连,用于下载以及在线调试。三 系统在实验教学系统中的应用3.1 数字系统设计随着可编程器件的出现和计算机技术的发展,使E D A 技术得到了广泛应用,设计方法也因此发生了根本性的变化16。由传统的“自底向上”的设计方法转变为一种新的“自顶向下”的设计方法。在现代数字系统设计中,基于FPGA器件的自顶向下的模块化设计方法,已成为数字系统设计方法的一个趋势。FPGA能够将大量的逻辑功能集于一个芯片之中,无论在集成度、功耗还是速度上,均能满足现代数字系统大容量、高速度、多功能等设计要求。通过对本章实验内容的学习,可以使学生快速地熟悉使用ISE进行FPGA设计的流程,掌握使用FPGA和VHDL语言进行数字系统设计的方法和技巧,并为以后的学习打下良好的基础。3.1.1多功能电子时钟设计电子时钟是一种常用的计时器,与传统的机械表相比,它具有走时准确、显示直观、无机械传动装置等特点。因而广泛地应用于车站、码头、机场、商店等公共场所。在控制系统中,也常用来做定时控制时钟源。本实验的任务是使用XilinxISE软件作为开发环境,使用VHDL语言进行设计输入,设计一个具有“时”、“分”、“秒”显示功能,并具有手动校时功能的电子时钟。完成设计输入之后,要使用Modelsim软件对设计进行仿真验证。多功能电子时钟的系统框图如图4.1所示。它主要由六个部分组成:控制键、置数键、基准时钟、计数器、译码器及数码显示器17。图4.1电子时钟系统组成3.1.1.1系统设计分析根据多功能电子时钟系统的组成和设计任务的要求可知:(1)多功能电子时钟的分、秒为60进制,由于需要使用数码管显示时间,所以采用的计数器应该是10进制的,进而方便译码模块的使用。而60进制计数器可以由lO进制计数器和6进制计数器组成。(2)时钟的小时是24进制的,所以必须设计一个24进制的可预置计数器。显然,24进制计数器不可以使用6进制计数器和4进制计数器组成,因为这样设计24进制计数器将给译码带来麻烦。(3)电子时钟的时、分、秒一共要使用6个数码管进行显示,所以需要6个译码模块。3.1.1.2层次化的设计输入VHDL语言是一种标准化的硬件描述语言。由于其强大的语言结构、多层次的描述功能、良好的移植性以及快速的ASIC转换能力,在数字系统设计中获得了广泛的应用。利用VHDL语言,采用自顶向下的设计方法进行数字系统设计一般分为三个步骤。如图4.1.1.2所示。图4.2 VHDL设计流程第一层是行为描述。所谓行为描述,实质上就是对整个系统数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初期,通过对系统行为仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能达到系统设计的要求。第二层是RTL方式描述。这一层称为寄存器传输描述,又称为数据流描述。如前所述,用行为方式描述的系统结构程序,其抽象程度高,很难直接映射到具体逻辑元件的结构中。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能得到系统的逻辑表达式,才能进行逻辑综合。第三层是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成门级网表,此后再将门级网表转换为FPGA的编程码,下载到FPGA中进行测试。通过对多功能电子时钟系统的具体分析,可以把整个设计分层次地划分为五个模块:项层设计模块、十进制可预置计数器模块、六进制可预置计数器模块、二十四进制可预置计数器模块和数码管译码显示模块。本实验可以充分地利用VHDL层次化设计的方法,分别对各个功能模块进行正确地描述。设计输入之后,使用ISE软件综合后的项层模块信号如图4.3所示18。图 4.3 顶层模块信号图3.1.1.3系统仿真验证电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。通过功能仿真可以及时发现设计中的错误,加快设计进度,提高设计的可靠性19。本实验采用的是Modelsim仿真软件,它是一个优秀的仿真工具,主要特点是仿真速度快、仿真精度高。实验的项层模块仿真结果如图4.4所示。图4.4顶层模块仿真结果由仿真结果可知,多功能电子时钟的顶层模块的功能是正确的,顶层模块设计实现了“时”、“分”、“秒”的计时功能。由图4.5的仿真结果可知,多功能电子时钟的十进制计数器模块的功能也是正确的。基准时钟每发一个脉冲,计数器计数一次,每计lO个脉冲就置位一次20。图4.5 进制计数器模块仿结果通过仿真软件特有的时间分析系统,可以定量地看到端口与端口之间的时间关系,进而得知系统功能是否满足设计要求21。如果模块仿真通过,即可把设计好的模块保存在自己的工作库中,以被其他人或其它的设计重复调用,进而提高设计效率。当各个模块均完成上述操作之后,可将整个设计通过ISE软件进行设计实现,即将综合后的网表映射到具体的FPGA器件里,再进行布局布线。3.2.2 LED显示控制设计Xilinx Spartan3E FPGA开发板的基本结构由主要由五大模块组成。它们分别是:各种芯片模块、丌关和按钮模块、时钟模块、显示模块和各种接口模块。其中显示模块是由八个LED和一个2行16字符的LCD液晶显示组成的22。为了充分利用FPGA开发板上的可视资源,而设计了此实验。其目的是为了让学生可以直观地看到下载后的实验显示结果,激发学生对FPGA的学习兴趣。3.2.2.1设计要求与分析(1)设计要求本实验的任务是使用ISE软件作为开发环境,采用VHDL语言作为设计输入,实现LED的显示控制,使之循环显示成为一组彩灯状态。设计实现之后,还需要把整个设计下载到Spartan3E FPGA芯片中进行调试成功。由于FPGA可以重复编程,在电路不做改动的情况下,只需改变设计程序就可以灵活地调整彩灯的图案和变化方式,所以此实验的显示结果各有不同。每个设计者都可以根据自己的兴趣来设计自己喜欢的显示结果,这样不但可以激发学生的学习热情,还可以提高学生的创新思维能力23。(2)设计分析根据LED显示控制实验要求可知,实验中需要定义一个8位标准逻辑矢量类型的信号led,该信号的每一位都要对应驱动一个LED,8个LED的显示在每个时钟上升沿到来时,依程序所列8位控制信号的变化而变化。在电路中,以l代表亮灯,以O代表灭灯,本设计可以使8个LED依次闪亮,呈现出流水的效果。由于FPGA开发板上提供的系统时钟为50MHz,其频率太高,不利于眼睛观察。所以实验中还需要设计一个时钟分频模块clkdiv,把50MHz的时钟elk通过分频后得到2Hz的时钟clk2,再送给ledtest提供输入。LED显示实验的结构如图4.6所示。图4.6 LED显示实验组成3.2.2.2使用ISE实现设计ISE是集成综合环境的简称,它是Xilinx FPGA的综合性集成设计平台,该平台提供了与结构无关的设计环境。丰富的图形用户界面和完美的在线帮助系统,并支持硬件描述语言、原理图等设计输入方法。该平台集成了从设计输入、仿真、综合、实现、时序分析、芯片下载与配置、功率分析等几乎所有设计流程所需的工具。利用ISE可以完成上述整个FPGA的开发过程。ISE采用可视化编程技术,界面根据设计按流程而组织,整个设计只需按照界面组织结构双击相应的按钮或选项图标即可执行。图4.7为ISE的工作界面,其中显示了LED显示控制实验的运行过程。左面是设计运行的流程,右面是VHDL语言设计输入编辑栏24。图4.7 ISE工作界面 (1)综合工具XSTISE集成的综合工具主要有Synplicity公司的SynplifySynpli母Pro、Synopsys公司的FPGA Compiler IFExpress和Xilinx公司的XST等。在FPGA设计过程中,设计的综合效果主要取决于设计者的设计风格和综合工具的综合能力。XST()(ilill)Synthesis Technology)是Xilinx自主开发的综合工具。XST对某些使用到Xilinx内部核心设计的综合结果要比其它综合工具优越很多。(2)实现工具Implement DesignXilinx的实现工具包含的面比较广。如果能较好地掌握这些工具,将大幅度提高设计者的水平,使设计工作更加游刃有余。Xilinx的实现过程分为翻译(Translate)、映射(Map)和布局布线(Place&Route)3个步骤,每个步骤中都有不同的实现工具。其中主要有约束编辑器(Constraints Editor)、引脚与区域约束编辑器(PACE)、时序分析器(TimingAnalyzer)、FPGA底层编辑器(FPGA Editor)、芯片观察窗(Chip Viewer)和布局规划器(Floorplanner)等。(3)引脚分配Assign Package Pins在程序下载到芯片之前,需要对FPGA的引脚资源进行分配。即根据Spartan3EFPGA开发板上资源的分配情况,把设计的信号分配到具体的FPGA引脚上,使之一对应,连接起来。本实验的引脚分配如图4.8所示。图中采用三种不同的方式列出了IO个信号所占用FP引脚资源情况。图4.8 FPGA引脚分配情况3.2.2.3使用IMPACT下载调试在完成设计实现和引脚分配之后,就可以把ISE生成的文件下载到FPGA中进行调试。由于本实验的程序代码比较少,不需要对FPGA进行特殊配置。可以直接使用IMPACT工具把产生的位流数据文件下载到FPGA中进行调试。实验的下载显示结果如图4.9所示。LED依次点亮,显示成流水彩灯效果。图4.9 LED显示实验结果3.2 创新性实验系统设计党的十七大明确指出当前教育教学改革的重点就是要促进教育教学与社会实践相结合,加强创新精神和实践能力的培养,努力造就德智体美全面发展的社会主义建设者和接班人。本文在仔细研究了国内外高校FPGA实验教学方面的经验之后,清楚地发现,与国外学生相比,中国学生的理论知识基础较好,但在动手能力和实践创新能力方面相对较弱。根据当前教育改革的目标,以培养学生的创新精神和创新实践能力为出发点,针对Xilinx Spartan3E FPGA开发板的特点,提出了此创新性实验系统。3.2.1体育比赛游戏设计目前,随着电子技术迅猛发展,各种体育比赛项目已经可以通过电子系统设计来模拟实现。人们在家中就可以真实地体验各种体育比赛游戏带来的生活乐趣。乒乓球比赛游戏机就是其中一种。3.2.1.1设计任务与规则设计一台共甲乙双方操作的模拟乒乓球比赛游戏机。该机可以模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分25。系统组成如图4.10所示。图4.10乒乓球比赛系统每局比赛开始前,裁判按动每局开始发球开关,决定由其中一方首先发球,乒乓球的光点即出现在发球者一方的球拍位置上,电路处于待发球状态(乒乓球运动的光迹由指示灯来代替,关于灯的数量由设计者来决定)。能自动判球记分。只要一方失球,对方记分牌上则自动加1分。在比分到达20:20以前,当一方先得到21分时,即宣告胜利,该局比赛结束。若比分达到20:20以后,只有一方净剩2分时,则胜利。能自动判断发球。每球比赛结束,机器自动置电路于下一球的待发状态。每方连续发球5次后,自动交换发球,当比分达到20:20以后,将每次轮换发球,直至比赛结束。球拍按钮只有第一次按动才起作用,若重复按动和持续按下去,将不起作用。在击球时,只有在球的光点移至击球者一方球拍位置时,第一次按动击球按钮,击球才有效。要求乒乓球比赛机器能产生若干种不同的速度,击球者在击球有效的时间内不同时刻击球,球运动的速度将不同。3.2.1.2设计分析与实现在游戏机两侧各设两个开关,一个是发球开关Saf,Sbf,另一个是击球开关Saj、Sbj,甲乙两人按乒乓球比赛规则来操作开关。当球向一方运动过程中,该方只有第一次按动按钮才起作用,且与时问长短无关。只有当光迹移动到击球者球拍位置时,第一次按动按钮开关,才能击回乒乓球。否则光迹将继续前进,通过开始位或末位后消失,输出失球信号,供记分用。每球开始前,判发球电路应使本电路处于发球一方的待发球状态,即发球一方第一盏灯亮。本实验的设计输入采用的是VHDL语言和状态机输入两种方法共同完成的。整个设计主要分成五个模块进行设计:(1)顶层设计模块game:主程序将所有的子程序组合起来。(2)分频模块clkdiv:对50MHz信号进行分频,得到所需的1Hz信号。此模块在第三章LED控制显示实中有过具体的设计,在此稍作修改后就可以直接使用。 (3)裁判模块playcp:设计一个子程序来描述裁判,双方的动作对LED显示的影响,及失球后给出失球信号。这个程序是通过状态机来完成。(4)记分模块number:使用裁判模块给出的矢球信号,来实现记分。并用按键来控制清零。(5)显示模块display:从记分子程序得到分数,译码并动态显示出来。整个系统使用ISE综合实现后的电路如图4.11所示。图4.11乒乓球比赛电路图总结本文首先简单介绍了FPGA的由来及工作原理,并系统的分析了FPGA未来的的发展趋势,进而对FPGA的结构特点及应用作了较为详尽的说明。在查阅了大量的文献和资料后,设计出一套系统的、综合的、实用的、有特色的FPGA实验教学方案。基于FPGA的自顶向下的分层次、分模块的设计方式,是现代数字系统设计的基本手段,是走向市场,走向社会,走向国际的基本技能。本文主要对数字系统设计和创新试验系统设计两个实验的设计方法和实现过程进行了系统的描述。通过对这两个实验项目的学习,可以快速地掌握FPGA的设计流程,学会使用FPGA和VHDL语言进行小规模数字系统的设计方法。对于初学者来说,这是一条必经之路。在小规模数字系统设计的过程中不断地积累设计经验,丰富各种模块资源,掌握FPGA的设计技巧,然后再向着较大规模的数字系统设计进军。致谢王露老师在我作论文的整个过程中给予充分而细致的指导,在此表示衷心的感谢。参考文献1孙航Xilinx可编程逻辑器件的高级应用与设计技巧北京:电子工业出版社,20042陈人鹏提高学生的实践创新能力实验室研究与探索,2001,20(2):15-173杨恒,李爱国,王辉等FPGACPLD最新实用技术指南北京:清华大学出版社,20064刘韬,楼兴华FPGA数字电子系统设计与开发实例导航北京:人民邮电出版社,20055徐欣于红旗基于FPGA的嵌入式系统设计北京:机械-T业出版社,20056徐志军,徐光辉编著FPGA设计与应用北京:清华大学出版社,20057廖日坤,CPLDFPGA应用开发技术白金手册北京:中国电力出版社,20058包晗FPGA器件的应用研究:(硕士学位论文)大连:大连海事大学20069任晓东CPLDFPGA高级应用开发指南北京:电子工业出版社,200310Spartan一3E FFGA FamilyComplete Data Sheetxilinx200611刘凯基于FPGA的系统设计和应用研究:(硕+学位论文)长沙国防科学技术大学,200512潘松,王国栋VHDL实用教程成都:电子科技大学出版社,200113夏雨闻Verilog 数字系统设计教程北京:北京航空航天大学出版200714Spartan3E FPGA Starter kit Board User GuideXilinx200615Spartan 3E FPGA ChipXilinx200616刘皖,何道君,谭明CPLDFPGA的开发与廊川北京:电子工业出版社,200217史江,朱志炜基于IP核的8位微控制器设计电子器件,2007年30(1):148-15118Ken ChapmanPicoBlaze 8-bit Embedded Microcontroller User GuideXilinx Ltd200419叶淦华FPGA嵌入式应用系统开发典型实例北京:中国电力出版社,200520Ken ChapmanKCPSM3 ManualXi l inx Ltd200321庞艳荣基于FPGA的数字集成系统设计:(硕士论文)天津:天津大学电气与自动化学院200422李贵山,陈金鹏PCI局部总线及其应用西安:西安电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省南昌市2024-2025学年八年级下学期期末语文试题(解析版)
- 文职技术岗的试题及答案
- 2025员工技能提升合同书范本
- 2025货车驾驶员劳务合同范本
- 2025合同评估企业所需提交文件清单
- 2025年食品供应合同范本
- 搬迁点消防知识培训课件
- 揭开记忆的奥秘课件
- 插花课件制作
- 2025种植保险合同范文样本
- 国际尿失禁咨询委员会尿失禁问卷表
- 面试性格测试表
- XXX加油站风险分级管控台账
- 甘12J8 屋面标准图集
- 特种设备安全管理-使用知识
- H35-462(5G中级)认证考试题库(附答案)
- HY/T 122-2009海洋倾倒区选划技术导则
- GB/T 19666-2019阻燃和耐火电线电缆或光缆通则
- GA/T 1241-2015法庭科学四甲基联苯胺显现血手印技术规范
- 小学和初中科学教学衔接
- 制造执行系统的功能与实践最新ppt课件(完整版)
评论
0/150
提交评论