您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > Labview-FPGA开发者指南
RevisionNo.1.1–February2014优化LabVIEWRIO应用程序的推荐方法NILabVIEW高性能FPGA开发者指南©2014NationalInstruments。版权所有。CompactRIO、LabVIEW、NationalInstruments、NI、ni.com、NIFlexRIO、NationalInstruments公司标识,以及鹰形标识均为NationalInstrumentsCorporation的商标。关于其它NationalInstruments商标,请访问ni.com/trademarks,参考TrademarkInformation。此处提及的其它产品和公司名称均为其各自公司的商标或商业名称。NationalInstrumentsAlliancePartner是独立于NI的商业实体,与NI之间不存在代理、合伙或合资关系。目录引言5目标读者5前提条件和参考资料5基于FPGA的高性能设计7FPGA的优点7高性能LabVIEWFPGA7理解NIRIO硬件平台9基于PXI和PC平台的NIRIO9用于紧凑的嵌入式应用的NIRI12选择FPGA平台13基于单周期定时循环的高性能编程15SCTL和标准LabVIEWFPGA代码的比较15理解SCTL16SCTL的优势18SCTL的约束条件18吞吐量优化技术23提高时钟频率23增加每个调用所处理的采样数24缩短关键路径25缩短启动间隔30集成高吞吐量IP33推荐的LabVIEWFPGAIP源33LabVIEWFPGA高吞吐量函数选板33IP握手协议36确定处理链的吞吐量42DSP48节点43快速傅立叶变换44XILINX内核生成器IP系统46XILINX内核生成器FFTIP46集成HDLIP48集成IP到软件设计的仪器50集成来自社区的IP52定时优化技巧55通过SCTL确定和规定延迟55通过并行化来降低延迟56优化数据类型58资源优化技巧59FPGA资源类型59填满FPGA60通过数据类型优化资源61最小化前面板使用的输入控件和显示控件的数量64调节输出溢出和舍入选项65初始化反馈节点67资源平衡67多路复用逻辑70使用SCTL节省资源71数据据传输机制73数传输机制的吞吐量和延迟73FPGA内部传输数据75在FPGA和主机系统之间传输数据82设备间数据传输87下一步93正式培训93评估NIRIO平台93NI联盟伙伴和服务93修订和反馈945引言现场可编程门阵列(FPGA)技术为专用的定制硬件提供高性能和可靠性。作为LabVIEWFPGA用户,您可以在与台式和实时系统相同的编程设计环境中利用FPGA技术。高性能LabVIEWFPGA应用程序将NI可重配置I/O(RIO)设备的性能扩展到定时、FPGA资源、以及其他方面。通过总结常用的LabVIEWFPGA优化概念和技巧,此指南旨在帮助您创建高性能应用程序。目标读者如果您已经熟悉LaVIEW或者LabVIEWFPGA模块,可使用此指南来学习业内不知晓的高级LabVIEWFPGA理论,帮助您解决需要高吞吐量、精确定时控制或者更高FPGA资源效率的严苛应用需求。“高性能”这个术语是一个相对概念,但是通常它指当您需要从设计中获得更多性能时那些使LabVIEWFPGA编程更具挑战性的底层细节。关于高性能应用程序相关概述,请参见基于FPGA的高性能设计一章。NIRIO硬件平台可负责许多底层实现细节,所以您可以专心应对具体应用挑战。如果您有数字设计经验,并且熟悉VHDL、Verilog或者电子设计自动化(EDA)工具,此指南可帮助您理解通过与NIRIO硬件平台的高度集成,LabVIEWFPGA是如何在实现相似性能的同时提供更高生产力。前提条件和参考资料本指南假设您熟悉LabVIEW编程和基本的LabVIEWFPGA任务,比如创建、编译、仿真以及部署FPGAVI。请参考产品文档了解关于这些内容的更多信息。您应该也对什么是FPGA以及FPGA的优势有一些基本了解。关于基于FPGA设计的介绍,请参见ni.com上的FPGA基础原理白皮书[1]。本指南搜集并总结了创建和优化LabVIEWFPGA应用程序所需要的概念,无论您使用的是哪个版本的LabVIEW。参见您所用版本的LabVIEW包含的产品文档,了解API和环境细节,这是因为各个版本的LabVIEW可能会有所不同。本指南也参考了随附范例、在线教程以及其他参考资料。本指南与受工程师欢迎的基于NILabVIEW的CompactRIO开发者指南[2]相似,为设计NICompactRIO控制和监测应用提供了最佳方案。参考这本指南的使用LabVIEWFPGA自定义硬件部分了解LabVIEWFPGA编程概述。本指南还基于该部分介绍的概念指导您实现更高的性能。6更多资源[1][2]FPGA基础原理基于NILabVIEW的CompactRIO开发者指南基于FPGA的高性能设计FPGA的优点FPGA提供了高度并行的可自定义平台,您可以使用该平台以硬件的速度执行高级和控制任务。相对于CPU和GPU而言,FPGA具有较慢的时钟速率,但是FPGA通过可在单时钟周期内多次连续地执行并行操作的专用来弥补时钟速率的差距。您可以在NIRIO设备上将FPGA具有的大规模并行编程特性和紧密的I/O集成结合起来,实现更高吞吐量、更好的确定性以及更短的响应时间,从而满足高速数据流、数字信号处理(DSP)、控制以及数字协议应用的需求。高性能LabVIEWFPGA当您在LabVIEWFPGA软件中使用标准的LabVIEW编程技巧,您就能立刻体验到基于FPGA方法的大多数优势。高级应用可能对以下一个或多个参数具有更高的要求:吞吐量、定时、资源和数值精度。Performance图1.高性能RIO应用的多个维度相互关联。例如,吞吐量的增加可能会影响定时和资源占用。这些维度通常是互相关联的。如果仅仅通过某一维度来优化设计,通常会影响到其他维度。这种影响有时是积极的,但更多是以牺牲其他维度为代价。例如,如果您只关心吞吐量,设计可能会无法满足定时的要求。因此,您需要理解这些维度以及它们之间的相互影响。本部分提供了多种考虑因素的基本概念,对相关技巧的扩展贯穿整本指南。吞吐量在DSP和数据处理应用领域,吞吐量是一个关键概念。通信、制造、医学、航空、国防、以及科学测量系统领域的技术进步产生了更多的数据,并要求用更短的时间进行处理。吞吐量是以单位时间完成的工作来衡量的。在大多数LabVIEWRIO应用程序中,工作是指处理或者传输采样数据,而吞吐量通常是以每秒采样数或者相当的形式诸如每秒的字节、像素、帧或者运算次数来计量。以快速傅立叶变换(FFT)作为运算函数的一个范例,这里吞吐量是以每秒所进行的FFT次数、帧或者采样次数来计量的。7ThroughputTimingControlFPGAResourceUseNumericalPrecision8本指南中吞吐量优化技巧一章对影响吞吐量的因素进行了深入的讨论。这些讨论包括时钟速率和算法并行性,以及创建LabVIEWFPGA应用程序时实现更高吞吐量的一些技巧。定时控制定时控制是指设置并测量系统中感兴趣事件之间的时间间隔。精确定时控制对于数字协议和高速控制应用非常重要,因为它会影响系统通信能力或者受控系统的稳定性。控制应用通常要求保证响应时间,这通常以受控系统采样和控制器的输出更新之间的时间间隔来衡量。该时间间隔也称为I/O延迟。在数字协议应用中,定时规范可能是指与数据或者传输信号相关的事件之间的目标时间、最短或最长时间。创建LabVIEWFPGA应用程序时,设计会最终转化为硬件电路,所以您可以创建具有快速定时响应和微小抖动的设计。本指南的定时优化技巧一章对延迟以及使用LabVIEWFPGA实现更快和更精确的定时响应的技巧进行了深入探讨。FPGA资源占用一块FPGA芯片的硬件资源是有限的,与处理器或者单片机相比,通常FPGA更受制于存储容量。确保您的设计适合FPGA是开发过程中必须严格遵循的法则。FPGA也是由不同类型的资源组成的,包括逻辑、信号运算和存储器模块。耗尽任何一种资源都会终止整个设计的编译。更重要的是,资源占用对吞吐量和定时限制等性能有非常大的影响。参考本指南的资源优化技巧一章的描述,了解组成FPGA包含的不同资源、确保设计适合FPGA的方法,以及提高性能的办法。数值精度数值精度是指使应用正常工作所需要的位数或者比特有效度。精度不足可能使迭代算法不断积累小的数值误差,随着时间的推移这些小的误差最终会导致完全不同的结果。代表系统变量的比特数包括整数、定点数的整数和小数部分、或者浮点数的动态范围,这些比特数可能会影响FPGA应用程序的性能和资源占用情况。虽然本指南并不会详细介绍如何帮助您正确决定数值精度,因为经常讨论的话题通常围绕如何优化LabVIEWFPGA设计,但是这些讨论可以作为学习优化其他维度的参考。9理解NIRIO硬件平台应用的需求可能包含前一部分讨论到的所有参数。既然这些参数相互联系,那么理解它们之间的相互影响是非常重要的,这样您就可以在编程时进行适当的取舍。本指南之后的部分对每个参数的优化进行了更详细的讨论。本部分研究了NIRIO平台的几个典型应用,并阐释了不同的硬件特征如何与具体应用实现最佳匹配。基于PXI和PC平台的NIRIOPXI平台PXI(面向仪器的PCI扩展)是一种专为高性能应用而设计的坚固模块化仪器平台。它结合了PCI和PCIExpress总线技术以及专用同步总线,为生产测试、军事和航空航天、机器状态监测、汽车以及工业测试等领域的应用提供高性能低成本的部署平台。PXI是一种开放的工业标准,由PXI系统联盟(PXISA)进行管理,该联盟旨在推广PXI标准,确保PXI的互通性,并维护PXI规范。图2.PXI平台将模块化仪器、高性能处理、数据传输以及同步总线与台式或者实时应用程序开发相结合,满足高级FPGA应用程序的需求。PXIExpress利用PCIExpress总线,提供点对点总线拓扑结构,使每台仪器都能以高达4GB/s的吞吐量直接访问总线。集成定时和同步线路用于内部路由同步时钟和触发。PXI机箱采用专用的10MHz系统参考时钟、PXI触发总线、星形触发总线,以及槽对槽局域总线。而PXIExpress机箱则增加了一个100MHz的差分系统时钟、差分信号发送和差分星形触发器,以处理高级定时和同步需求。NI提供多种可以用于PXI平台的RIO产品,利用带宽和同步特性来实现高性能应用。1本指南中的吞吐量:GB=109比特,MB=106比特,MiB=220比特,GiB=230比特10NIFlexRIONIFlexRIO是对基于PXI平台的通用研究、设计、测试、原型设计和部署设备的总称。NIFlexRIO设备包括可使用LabVIEWFPGA模块进行编程的大型FPGA,以及一些提供高性能模拟和数字I/O的适配器模块。适配器模块是可以互换的,在LabVIEWFPGA编程环境中定义I/O.图3.NIFlexRIO设备包含了大型FPGA,可以直接连接适配器模块,提供多种I/O选项。NIFlexRIOFPGA模块具有XilinxVirtex-5和Kintex-7FPGA、板载动态RAM(DRAM)以及与NIFlexRIO适配器模块的接口(为FPGA提供了I/O)。适配器模块接口除了提供必要的电源、时钟以及辅助电路来定义接口之外,还包括132条直连到FPGA引脚的通用数字I/O线。您可以配置这132条线路,以最高400Mbit/s的速率实现单端运行或以最高1Gbit/s的速率实现差分运行,从而获得高达66Gbit/s(8.25GB/s)的最大I/O带宽。您可以在NIFlexRIOFPGA模块之间以1.5GB/s的速率直接传输数据。最多可支持16个这样的数据传输,从而简化复杂的多FPGA通信方案,而不必耗费主机的CPU
本文标题:Labview-FPGA开发者指南
链接地址:https://www.777doc.com/doc-5646034 .html