用FPGA构建PCI Express端点器件的最佳平台

发布者:科技探险者最新更新时间:2011-12-29 关键字:FPGA  PCI  Express 手机看文章 扫描二维码
随时随地手机看文章

PCI Express是一种使用时钟数据恢复(CDR)技术的高速串行I/O互连机制。PCI Express Gen1规范规定的线速率为每通道2.5Gbps,可以让您建立具备单通道(x1)链路2Gbps(经8B/10B编码)直至32通道64Gbps吞吐量的应用。这样,就能在保持或改进吞吐量的同时,显著减少引脚数量。另外,还可以减小PCB的尺寸、降低迹线和层的数量并简化布局和设计。引脚数量减少,也就意味着噪声和电磁干扰(EMI)降低。CDR消除了宽并行总线中普遍存在的时钟-数据歪斜问题,简化了互连实现。

PCI Express互连架构主要针对基于台式/膝上(PC)的系统。但就像PCI一样,PCI Express也很快转移到其他系统类型,如嵌入式系统。它规定了三种类型器件:根联合体(root complex)、交换器件和端点(图1)。根联合体大致等同于PCI主机,CPU、系统存储器和图形控制器与之相连接。由于PCI Express的点对点特性,必须使用交换器件来增加系统功能的数量。PCI Express交换器件将上游端的根联合体器件连接到下游端的端点。

图1:PCI Express拓扑。
图1:PCI Express拓扑。

端点功能类似于PCI/PCI-X器件。最常用的端点器件有以太网控制器或存储HBA(主机总线适配器)。FPGA最常用于数据处理和桥接功能,所以其最大目标功能就是端点。FPGA实现非常适合于视频、医疗影像、工业、测试和测量、数据采集和存储应用。

图2:基于Spartan-3 FPGA的数据采集卡。
图2:基于Spartan-3 FPGA的数据采集卡。

PCI特别兴趣小组(PCI-SIG)采用的PCI Express规范规定每个PCI Express器件使用三个不同的协议层:物理层、数据链路层和事务层。您可以使用单芯片或双芯片解决方案来构建PCI Express端点。例如,使用Xilinx Spartan-3器件之类的低成本FPGA,您可以用商用离散PCI Express PHY(图2)来构建数据链路和事务层。此选项最适合于x1通道应用,如:总线控制器、数据采集卡和提高性能的PCI 32/33器件。或者,您可以使用类似Virtex-5 LXT或SXT FPGA的单芯片解决方案,它们具备集成的PCI Express PHY。此选项最适合于通讯或高清晰度音频/视频端点器件(图3),它们对性能的要求更高:x4(8Gbps吞吐量)链路或x8(16Gbps吞吐量)链路。

图3:基于Virtex-5 LXT FPGA的视频应用。
图3:基于Virtex-5 LXT FPGA的视频应用。

在选择一种技术来实现PCI Express设计之前,必须仔细考虑应用的IP选择、链路效率、兼容性测试及资源可用性。本文中,我们将简要介绍使用最新的FPGA技术构建单芯片x4和x8通道PCI Express设计的一些因素。

IP的选择

作为设计人员,您可以选择构建自己的软IP或者向第三方或FPGA供应商购买IP。构建自己的IP的难题在于,您不光得从零开始创建设计,还得担心验证、批准、兼容性和硬件评估等环节。向第三方或FPGA供应商购买的IP,已经过所有严格的兼容性测试和硬件评估,可以即插即用。如果使用商用的、已验证的兼容性PCI Express接口,您可以把精力集中在设计中最有附加值的部分:用户应用。使用软IP的难题在于应用的资源可用性。软IP核的PCI Express MAC层、数据链路层和事务层通过可编程架构实现,因此您必须特别注意剩余Block RAM、查找表和架构资源的数量。

另一选择是使用最新技术的FPGA。Virtex-5 LXT和SXT的专用门电路(图4)中实现了集成x8通道PCI Express控制器。这种实现极具优势,因为设计是在硬硅片中实现的,所以需要的FPGA逻辑资源数量达到了最小。例如,在Virtex-5 LXT FPGA中,一个x8通道软IP核可占用多达10,000个逻辑单元,而硬实现只需要大约500个逻辑单元,多数用于接口。这样的资源节省有时候能允许您选择更小的器件,而器件越小通常就会越便宜。集成实现通常具有更高的性能、更宽的数据通路,并且可通过软件配置。

图4:Virtex-5 LXT FPGA PCI Express端点框图。
图4:Virtex-5 LXT FPGA PCI Express端点框图。

软IP实现的另一难题是功能的数量。通常,此类核仅实现满足性能或兼容性目标规范所要求的最少功能。相反,硬IP可以支持基于客户要求的全面功能列表,并提供完全的兼容性(表1),且不存在严重的性能或资源相关的问题。

表1:Virtex-5 LXT FPGA PCI Express功能。
表1:Virtex-5 LXT FPGA PCI Express功能。

延迟

尽管PCI Express控制器的延迟不会对总体系统延迟有很大的影响,但却会影响接口的性能。使用较窄的数据通路有助于减少延迟。

对PCI Express来说,延迟就是发送包并穿过物理层、逻辑层和事务层接收包所需的周期数。典型的x8通道PCI Express端点的延迟为20~25周期。250MHz下,转换为80~100ns。如果使用128位的数据通路实现接口来简化时序(如125MHz),延迟会加倍为160~200ns。在最新的Virtex-5 LXT和SXT器件中,无论是软IP实现还是硬IP实现,都采用250MHz下的64位数据通路进行x8实现。

链路效率

链路效率是延迟、用户应用设计、有效载荷大小和额外开销的函数。随着有效载荷大小(通常称为最大有效载荷)的增加,有效链路效率也会增加。这是由包的额外开销固定不变这一事实造成的;如果有效载荷大,效率就提高。一般情况下,256字节的有效载荷可提供93%的理论效率(256有效载荷字节+12头字节+8帧字节)。尽管PCI Express允许的包大小可达4KB,但如果有效载荷大小大于256或512字节,大多数系统的性能都无法提高。由于链路协议额外开销(ACK/NAK、重新发送包)和流程控制协议(授权报告),在Virtex-5 LXT FPGA中实现x4或x8 PCI Express的链路效率为88~89%。

利用FPGA实现可以更好地控制链路效率,因为它允许您选择与端点实现对应的接收缓冲器尺寸。如果链接双方不是采用相同的方式实现数据通路,则二者的内部延迟会不同。例如,如果一号链接方使用64位、250MHz实现,延迟为80ns,而二号链接方使用128位、125MHz实现,延迟为160ns,该链路的组合延迟即为240ns。现在,如果一号链接方的接收缓冲器设计成160ns的延迟(即期待其链接对方也是64位、250MHz实现),那么链路效率就会降低。如果采用ASIC实现,就不可能改变接收缓冲器的尺寸,效率损失将是实实在在的,而且是永久性的。

用户应用设计也会对链路效率有所影响。用户应用必须设计成定期排空PCI Express接口的接收缓冲器,并保持发送缓冲器时刻充满。如果用户应用不立即使用接收的包(或者不立即响应发送请求),无论接口的性能如何,总链路效率都会受到影响。

使用某些处理器设计时,如果处理器不能执行大于1DWORD的突发,则需要实现一个DMA控制器。这将造成链路利用不充分,效率不佳。大多数嵌入式CPU可以发送长于1DWORD的突发,所以通过良好的FIFO设计就可以有效地管理这些设计的链路效率。

PCI Express兼容性

兼容性是经常被遗漏和低估的重要细节。如果要构建必须与其他器件和应用结合使用的PCI Express应用,则必须确保设计的兼容性。

兼容性不只针对IP,而是针对整个解决方案,包括IP、用户应用、硅片器件和硬件板。如果整个解决方案已经过PCI-SIG PCI Express兼容性研讨会(别号“plug fest”)验证,就基本保证了您设计的PCI Express部分会一直有效。

本文小结

PCI Express已替代PCI成为事实上的系统互连标准,并且已从PC转移到其他系统市场,包括嵌入式系统设计。

FPGA非常适合于构建PCI Express端点器件,因为它允许您创建带有用户所需的附加定制功能的兼容性PCI Express器件。

类似Virtex-5 LXT和SXT系列的新65nm FPGA完全符合PCI Express规范v1.1,并为用户应用提供广泛的逻辑和器件资源。使用外部PHY的Spartan-3系列FPGA提供了低成本解决方案。这些因素,加上内在的可编程逻辑优势(灵活性、可再编程性和低风险)使FPGA成为PCI Express的最佳平台。

关键字:FPGA  PCI  Express 引用地址:用FPGA构建PCI Express端点器件的最佳平台

上一篇:调试嵌入式系统设计中的低速串行总线
下一篇:嵌入式智能设备的测试方法研究

推荐阅读最新更新时间:2024-03-30 22:22

基于VHDL的Petri网系统的FPGA实现
1 引言 Petri网是一种系统的、数学的和图形的描述和分析工具 ,随着超大规模集成电路FPGA和CPLD的发展,Petri网的硬件实现成为可能,而基于Petri网的逻辑控制器的逻辑电路实现方法成为最近几年的研究热点 。在目前的Petri网硬件实现的研究中,主要给出了petri网C/E系统和P/T系统的几种实现方法,但主要存在如下缺点:1)使用基本门电路和触发器用图形法自底向上实现了Petri网基本元件库所与变迁。这种设计方法的最大缺点是不易于任意修改逻辑电路设计。2)用VHDL语言实现了整体电路设计的软件化,但未形成模块化的Petri网元件。 VHDL语言由于其其强大的行为描述能力及与硬件行为无关的特性,被广泛的用于数字系统设
[嵌入式]
基于VHDL的Petri网系统的<font color='red'>FPGA</font>实现
Altera演示业界最全面28nm FPGA产品及强大解决方案
    近日,Altera公司在北京演示目前业界最全面的28-nmFPGA器件系列产品所提供的灵活性与性能,继续引领28-nmFPGA技术。其中包括Stratix V,Arria V,Cyclone V,SoC FPGA,以及OpenCL演示。来自中国最主要行业媒体现场体验Altera 28-nmFPGA产品系列如何帮助设计师实现更低成本、更高效能、更低能耗,为客户提供差异化的解决方案。 Altera通过以下演示,继续引领28-nmFPGA技术: •Stratix V GT收发器信号完整性(SI)开发套件 •业界唯一集成28Gb/s收发器的量产FPGA •可与CFP2光模块实现互操作,从而支持实现下一代100-Gb
[嵌入式]
FPGA在医疗4D成像上的应用
医学成像是医生在检测和诊断患者疾病或异常中拥有的最有价值的工具之一。从提供快速2D图像的超声波到提供人体高精度3D图像的计算机断层扫描(CT)和磁共振成像(MRI),2D和3D成像在使医疗专业人员提供更好的临床结果方面都发挥着重要作用。然而,4D成像的出现将医学成像带入了运动图像的下一个前沿领域。例如,在MRI呼吸分析周期中使用了4D成像。医学成像方面的此类进步令人兴奋,但并非没有挑战。4D MRI成像需要大量的预处理和后处理才能重建图像。 MRI扫描包括两个元素:在采集数据期间进行的扫描,然后进行重建。在扫描期间,沿预定轨迹捕获数据样本。这些样本本质上是空间的,并且在所谓的k空间域中。在重建阶段将获取的样本转换为可理解的图像
[医疗电子]
一种基于FPGA的驱动接口电路的设计
引言   在自动控制的很多应用场合, 都需要实时对信号进行采样分析, 然后由DSP来进行运算控制。AD芯片是采样中最常用的芯片, 本文主要对ADI 公司的AD7862芯片进行介绍, 同时为它设计了驱动接口电路。由于AD7862不能自动工作, 需要给它提供相关的驱动信号才能触发它进行转换,本文用 FPGA 芯片给它做一个接口驱动电路, 并详细的介绍了驱动电路程序的设计, 设计的电路为AD7862提供了非常好的驱动作用, 并在实际运用中能使其稳定的工作。   1、AD7862芯片简介   AD7862是美国AD I公司出品的12 bit高速, 低功耗转换器, 单电源5伏供电。共有4 个模拟输入端, 被分为两个通道( A&
[嵌入式]
一种基于<font color='red'>FPGA</font>的驱动接口电路的设计
单片机、PSOC、FPGA的主要区别
  现在的单片机一般是mcu+有限的固定的模拟或数字外围;FPGA是可编程数字外围电路;PSoC 相当于MCU+可编程模拟外围电路+可编程数字外围电路。   PSoC 的最大特点就是集成度高,设计灵活。可以看成是MCU,FPGA/CPLD,ispPAC集合。   1.它里面包含MCU(psoc1为m8c,psoc3为51,psoc5为arm Cortex-M3),这是和你讲的那几种是有区别的。它可以很方便的实现系统设计,虽然fpga可以通过设计实现软核,但增加了设计难度,性能也达不到硬核的程度。   2.PSoC还包含可编程数字模块(类似FPGA/CPLD),以及可编程模拟模块(类似ispPAC),即具有处理数字和模拟两种信号的能力
[单片机]
基于Verilog的多路相干DDS信号源设计
实现信号源的多路同步输出且各路间拥有固定的相位关系,在雷达、通信等多领域有着重要的应用。为了实现此功能,大多数设计是利用单片机控制多个专用DDS芯片,实现多信号同步输出,如图1所示。但腱由于采用分立的专用DDS芯片,各芯片参数很难做到完全相同,参数的差异会造成输出信号频率和相位不同。因此,尽管各DDS芯片采用同一频率字,各个输出信号频率也难以完全相同。同样,由于参数的不一致,波形之间的相位也难以做到同步准确可调,更重要的是各个信号通道间频率差异的累积效应可能会导致同步失败。由于这些原因,要实现多路同步输出且各路信号间成相干关系必须采用另外的系统。本文给出了一种基于FPGA的3路相干信号源设计方案。 1 DDS基本原理 DD
[单片机]
基于Verilog的多路相干DDS信号源设计
英特尔推出史上最大SOC/FPGA:Stratix 10 SX系列芯片
英特尔(Intel)日前宣布Stratix 10 SX系列芯片将开始出货。Stratix 10 SX系列由10个装置组成,逻辑单元(logic element;LE)数介于40万~550万个。每个装置都有1个双核或4核ARM Cortex-A53处理子系统。而其最接近的竞争产品,赛灵思(Xilinx) Zynq UltraScale + MPSOC EG系列约有110万个逻辑单元。   根据EEJournal报导,Stratix 10 SX Cortex-A53的运作时脉高达1.5GHz,嵌入式存储器高达229Mb,还有高达5K的DSP模块(block),11K 18×19乘法器,以及多达144个以最高30Gbps运行的SerDe
[半导体设计/制造]
双机通信在CPCI总线上的实现
   在电信、电力、国防等应用领域中,经常要求其所用设备有极高的实时性。当需要在各个设备间进行大容量的信息交换时,传统的网络包交换模式已不能很好地满足实时性的要求。而借助于C PCI 总线,两个设备可以互访对方的 内存 ,具有传输速度快、传输容量大和高可靠性等特点,非常适合大容量的信息传递。国家数字交换系统工程技术研究中心承担的国家863计划项目——“中国第三代移动通信系统”CDMA2000系统集成就选择基于CPCI总线的多SBC平台。各个SBC间的通信效率直接决定了整个系统性能的高低。   目前常用的实时操作系统如VxWorks、Lynx等,都针对CPCI总线实现了消息队列,可用于SBC间的消息通信。但VxWorks、Lynx中
[工业控制]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved