FPGA器件的应用研究_第1页
FPGA器件的应用研究_第2页
FPGA器件的应用研究_第3页
FPGA器件的应用研究_第4页
FPGA器件的应用研究_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA器件的应用研究摘 要本文简单介绍了FPGA的器件结构、特性、工具,分析FPGA器件在三个领域的应用。分析了FPGA应用在控制领域中,以纯硬件的控制方式替代了传统的单片机、PLC等CPU的软件控制方式,既降低了系统成本也提高了系统的可靠性和稳定性;利用FPGA实现算法模块,可以极大的提高系统的速度。减低主CPU的负荷,解决了许多需要高速的场合下系统速度低的瓶颈。无论是通信、数字信号处理、军事,还是仪器仪表、家用电器,用FPGA来实现电子设计可以在满足功能、性能的双重要求下,体现它的成本优势。目 录第一章 FPGA的优点 3第2章 FPGA器件的结构和开发环境 421 FPGA的结构422

2、 FPGA开发环境5第3章 FPGA器件应用领域分析831 用FPGA改进DSP性能的优势832 FPGA在微机系统中的应用933 基于FPGA的出租车计费器 113.4 小结 16第4章 结束语 17第一章 FPGA的优点当今社会是数字化的社会,是数字集成电路广泛应用的社会,数字集成电路本身在不断地进行更新换代。随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),

3、其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程专用集成电路,电子设计工程师利用它可以在办公室或实验室里设计出所需的专用集成电路,从而大大缩短产品的上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。由于具备上述两方面的特点,CPLD和FPGA受到了世界范围内广大电子设计工程师们的普遍欢迎,应用日益广泛。目前已有单片可用门数超过数百万门、工作频率可达500MHz以上的

4、可编程ASIC芯片问世,由于工艺和结构的不断改进,可编程ASIC芯片上包含的资源越来越丰富,可实现的功能越来越强,他们已成为当今实现电子系统集成化的重要手段。当代FPGA/CPLD的优点可归纳如下:1)高速;2)高可靠性;3)编程简便;4)易学易用:5)开发周期短;6)保密性能好;7)系统易维护、易升级。第2章 FPGA器件的结构和开发环境21 FPGA的结构FPGA器件采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线

5、(Interconnect)三个部分。下面以Xilinx公司和Altera公司的FPGA产品为例,说明一下基于查找表(LUT)的FPGA的结构。Xilinx公司的SpartanII的内部结构,如图1图1 Xilinx SpartanII芯片内部结构图中可见,SpartanII主要包括CLBs、I/0块、RAM块和可编程连线几部分,CLBs、I/O块和RAM块通过可编程连线有机的连接在一起,通过连接线的编程实现各种模块的设计。在Spartan-II中,一个CLB包括2个Slices。每个Slices包括两个LUT,两个触发器和相关逻辑。Slices可以看成是Spartan-II实现逻辑的最基本结

6、构。22 FPGA开发环境221 FPGA的主流开发工具FPGA应用的简便性、易操作性很大程度上依赖于其开发工具的界面简洁、功能强大、分类精细等优点。伴随着FPGA器件的发展,FPGA开发工具也经过不断改进,功能变得越来越强大,用户也越来越容易上手。其主要有:1)QuartusII:Altera新一代FPGAPLD开发软件,适合新器件和大规模FPGA的开发,在高密度FPGA设计中能够实现最佳效能,以最快的速度完成设计。QuartusII软件是在统一设计环境下,一套完整的综合、优化和验证工具,使用业界首创的渐进式编译功能,与传统的高密度FPGA流程相比,设计迭代时间缩短了近70,显著提高了效能。

7、此外,与采用ISE软件71i版的Xilinx Virtex-4系列相比,Quartus II软件50版在90nm Stratix II FPGA上能够实现更高的性能。2) FOUNDATION: ISE Foundation:Xilinx公司集成开发的首选工具,业界最完整的可编程逻辑设计解决方案,用于实现最优性能、功率管理、降低成本和提高生产率。 ISE Foundation为所有Xilinx的先进FPGA与CPLD提供支持,包括全部的Virtex-4多平台FPGA。3)ISP lever:Lattice推出的最新一代PLD集成开发软件, ispLEVER version50 SPI是最新的C

8、PLD和FPGA设计软件,支持所有的莱迪思可编程逻辑器件。一般来说,最新的开发工具可以支持更多型号的芯片,实现最佳性能,并能以最快的速度完成设计,功能也更强大。如果在条件允许的情况下,优先选择新推出的开发工具,不过也要考虑到实际的情况,根据所使用的FPGA器件来选择合适的开发工具。222 硬件描述语言HDL 硬件描述语言(HDL)是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言,是目前电子设计中最高级的一种输入方法,配合高性能可编程逻辑器件可以在短时间内完成复杂的电路设计。VHDL和VerilogHDL语言,发展非常迅速,在美国已成为设计数字电路的主流。经过大量资料的对比分析,Veri

9、log语法简单,代码简练,适合初学者学习,而且Verilog可以进行从门级到算法级的设计,对大中小规模的电路设计都适用,但对更复杂、规模更大的电路设计就要借助VHDL语言。但VHDL语法结构复杂,熟练掌握所需时间较长,且对门级电路的设计也是借助Verilog来完成的,因此推荐在掌握了Verilog语言后再进行VHDL的学习,就可以胜任大多数通用FPGA器件的设计。223 FPGA设计流程FPGA开发流程和IC的开发流程相似,主要分为以下几个部分:1)设计输入。利用HDL输入工具、原理图输入工具或状态机输入工具等把所要设计的电路描述出来。2)功能验证,也就是前仿真。利用Modelsim、VCS等

10、仿真工具对设计进行仿真,检验设计的功能是否正确,仿真过程能及时发现设计中的错误,加快设计进度,提高设计的可靠性。3)综合。综合优化是把HDL语言翻译成最基本的与或非门的连接关系(网表),并根据要求(约束条件)优化所生成的门级逻辑连接,输出edf和edn等文件,导给CPLD/FPGA厂家的软件进行实现和布局布线。4)布局布线。综合的结果只是通用的门级网表,只是一些门与或非的逻辑关系,与芯片实际的配置情况还有差距。此时应该使用FPGA/CPLD厂商提供的实现与布局布线工具,根据所选芯片的型号,进行芯片内部功能单元的实际连接与映射。这种实现与布局布线工具一般要选用所选器件的生产商开发的工具,因为只有

11、生产者最了解器件内部的结构,如在ISE的集成环境中完成实现与布局布线的工具是FlowEngine。5)时序验证。其目的是保证设计满足时序要求,即setup/hold time符合要求,以便数据能被正确的采样。时序验证的主要方法包括静态时序分析STA(静态时序分析)和后仿真。6)生成并下载BIT或PROM文件,进行板级调试。HDL设计流程图如图2所示:图2 HDL设计流程图第3章 FPGA器件应用领域分析31 用FPGA改进DSP性能的优势DSP在很多领域中具有广泛的用途,但随着DSP系统复杂程度和功能要求的提高,用DSP解决方案逐渐显示出它的缺陷性:实时性不强,灵活性太差,不适合在实验室和技术

12、开发等场合使用等。比如在数据通信和图像处理这样的应用中,需要强大的处理能力,由于成本、系统功耗和面市时间等原因,许多通讯、视频和图像系统已无法简单地用现有DSP处理器来实现,当最快的数字信号处理器(DSP)仍无法达到速度要求时,唯一的选择是增加处理器的数目,或采用客户定制的门阵列产品。现在,设计人员有了新的选择,可采用FPGA来快速经济地完成设计。采用现场可编程器件不仅缩短了产品上市时间,还可满足现在和下一代便携式设计所需要的成本、性能、尺寸等方面的要求,并提供系统级支持。使用FPGA来实现DSP解决方案主要有两个方面的理由:首先是为了提高性能,其次可以为系统节约成本。下面就FPGA和DSP之

13、间的性能对比总结出FPGA的主要优势:1)FPGA的结构尤其适合于乘法和累加(MAC)等重复性的DSP任务。2)FPGA还具有可扩展的优点。3)FPGA相对于DSP具有很大的成本优势。4)FPGA器件可以减小功耗。5)FPGA器件有缩短上市时间的优势。由于FPGA的性能和灵活性,以及新的简明的设计和实施方法,在很多新兴DSP应用领域,如数字通信和视频处理,FPGA都成为优选的解决方案。例如,Xilinx Virtex和SpartanII FPGA可以用来实现通用移动通信系统码分多址应用中的匹配滤波器。UMTS标准的芯片速率有8192MHz和1536MHz两种选择。通过FPGA解决方案,在未来不

14、需要额外的资源就可以改变数据速率。又如,在CDMA数字通信接收器中,匹配滤波器作为信号处理器来计算发送信号与接收信号的相关性。而FPGA能提供良好的滤波器设计,并且能完成DSP的高级数据处理功能。32 FPGA在微机系统中的应用在微机系统中应用CPLD/FPGA可以取代现有的全部微机接口芯片,实现微机系统中的地址译码、总线控制、中断及DMA控制、DRAM管理和I/O接口电路等功能,同时,利用CPLD/FPGA可以把多个微机系统的功能集成在同一块芯片中,即进行所谓的“功能集成”。FPGA借助于高效的硬件编程语言可以用很少的语句实现一个完整的累加器或乘法器,不必象过去那样需要把标准元器件一点点组装

15、成庞大的模块,节省了设计时闻,增加了使用者的方便性。尽管各种CPU的性能指标和结构细节各不相同,但它们所能完成的基本功能相同。由功能分析,可知任何一种CPU内部结构至少应包含算术逻辑运算部件(ALU)、累加器、程序计数器、指令寄存器、译码器、时序和控制等部件。RISC即精简指令集计算机(ReducedInstruction Set Computer)的缩写。它是一种八十年代才出现的CPU,与一般的CPU相比不仅只是简化了指令系统,而且是通过简化指令系统使计算机的结构更加简单合理,从而提高了运算速度。从实现的途径看,RISCCPU与一般的CPU的不同处在于:它的时序控制信号形成部件是用硬布线逻辑

16、实现的而不是采用微程序控制的方式。所谓硬布线逻辑也就是用触发器和逻辑门直接连线所构成的状态机和组合逻辑,故产生控制序列的速度比用微程序控制方式快得多,因为这样做省去了读取微指令的时间。因此,用FPGA器件来设计CPU不仅可以使其体积缩小,同时可以达到更快的运算速度,因为CPU的时序控制信号形成部件是用硬布线逻辑实现的,而不是软件方式。从设计过程和程序可以体现出用硬件描述语言VerilogHDL进行电路设计和仿真的便利性。总结起来,用硬件描述语言加上FPGA器件以及相应的综合仿真工具的设计方法具有操作方便、结构简洁、层次清晰的优点,还可以缩小芯片的体积,提高利用率。这种设计方式具有很大的潜力,研

17、究这一设计方法对软硬件联合设计是有重要意义的。33 基于FPGA的出租车计费器331 系统组成随着EDA技术的高速发展。电子系统的设计技术和工具发生了深刻的变化,FPGA的应用迅速遍及了市场中的每一个角落,从高速DSP的实现到一个小小控制芯片都可以看到FPGA的身影。这一切都因为用它进行产品开发,不仅成本低、周期短、可靠性商,而且具有完全的知识产权。本节通过分析一个以Altera公司可编程逻辑芯片EPM7128SLC8415为控制核心、附加一定外围电路组成的出租车计费器系统来说明FPGA应用的广泛性和通用性。基于FPGA的出租车计费器的组成如图 3所示。各部分主要功能如下:图3 基于FPGA的

18、出租车计费器的组成框图(1)A计数器对车轮传感器送来的脉冲信号进行计数(每转一圈送一个脉冲)。不同车型的车轮直径可能不一样,通过“设置1”对车型做出选择,以实现对不同车轮直径的车进行调整。(2)B计数器对百米脉冲进行累加,并输出实际公里数的BCD码给译码动态扫描模块。每计满500送出一个脉冲给C计数器。“设置2”实现起步公里数预制。(3)c计数器实现步长可变(即单价可调)的累加计数,每500米计费一次。“设置3”用来完成超价加费、起步价预制等。(4)译码/动态扫描将路程与费用的数值译码后用动态扫描的方式驱动数码管。(5)数码管显示将公里数和计费金额均用四位LED数码管显示(三位整数,一位小数)

19、。332 功能模块的设计出租车计费器由车型调整模块、计程模块、计费模块、译码动态及扫描等模块组成,整个系统采用模块化设计,首先用VHDL编写功能模块。然后用顶层原理图将各功能模块连接起来。1)车型调整模块出租车车型并非单一,各个车型的轮胎直径亦有所不同。据调查统计,现行出租车轮胎直径大致有四种,真径分别为520m、540ram、560ram和580mm,如表31。若要使不同车型的出租车每行驶一百米均送出一个脉冲,可通过设置“可预制分频器”的系数来完成。根据上述车轮直径计算出的分频系数分别为61、59、57和55。预制数据受两个车型设置开关控制,DIP开关状态与车轮直径对应关系如表1所示(表中“

20、1”为高电平,“0”为低电平)。表31 车型设置在参数预制中,使用With_Select语句(查表法)做分频选择。With cartype selecttypecounter<=“111101”when“00”,-520mm“111011”when“01”, -540ram“111001”when“10”,-560m“111000”when“ll”,-580ram “000000”when others;2)计程模块计程模块是一个模为lO、步长为1的加法计数器。该模块可以预制参数,使其实际计数值大于预制数值后,每500米送出一个脉冲,并将计数值送译码动态扫描模块进行显示。预制参数采用非压

21、缩BCD码,所以在计数器设计时必须将二进制1010至1111六个状态跳过去。在VHDL程序中,用IF语句来实现。if Km(3 downto 0)=“1001”then Km:=Km+“0111”;else Km:=kin+1;end if;计程模块也带有“开始”“清零”端。参数预制同样使用With_Select语句。“起步里程”和“开关设置”对应关系如表32所示。表32起步里程设置3)计费模块计费模块是一个模为10、步长可变的加法计数器。该模块通过开关量预制步长,当超过一定预制参数时改变步长。计费模块也采用非压缩BCD码,但因步长不为1,所以在做非压缩BCD加法时必须调整,否则可能导致在超过

22、或未超过预置参数时出现超程错误。这里采用模仿微机的AF标志位,在其设立一个半进位标志,当累加和大于9或半进位标志为“1”时,对累加和进行调整。if data1(3 downto 0)>9 or datal(4)=1thendata1(3 downto 0):=flatal(3 downto O)+“0110”;data1(8 downto 5):=datal(8 downto 5)+1;end if;其中,data(4)为半进位标志。“起步价格”和“超价加费”设置参数分别如表33和表34所示。表33 起步价格设置表34 超价加费设置4)显示模块显示模块由七段LED数码管译码和动态扫描显示

23、两部分组成。该设计采用的是共阴极七段数码管,根据16进制数和七段显示段码表的对应关系,用VHDL的With _Select或When_Else语句可方便实现它们的译码。5)动态扫描显示动态扫描是利用人眼的视觉暂留原理,只要扫描频率不小于24Hz,人跟就感觉不到显示器的闪烁。这里24Hz的扫描脉冲由相应的外围电路提供。动态扫描电路设计的关键在于位选信号要与显示的数据在时序上一一对应,因此电路中必须提供同步脉冲信号。这里采用八进制计数器提供同步脉冲,VHDL程序段如下clkl _label:PROCESS(scp)BEGINIF scpvent and scp=1THEN count<=count+1;END IF;END PROCESS clkl _label;显示数据的选择由计数器控制,VHDL程序段如下:Temp<=counter when count=“000”elsecounter4 when count=“011”else

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论