在FPGA中实现PCI Express桥接解决方案
2011-04-12
引言
如其前一代产品外设互联标准(Peripheral Component Interconnect,PCI)那样,PCI Express" title="PCI Express">PCI Express正在成为普遍使用的系统接口。与PCI不同的是,PCI Express采用了串行器/解串器(SERDES)接口为用户提供了未来应用所需的可拓展性。随着系统带宽的提高,更多的应用开始使用基于SERDES的接口,如PCI Express。过去,通常使用ASIC或ASSP来实现下一代接口解决方案。ASIC和ASSP因其提供了低成本、低功耗的设计解决方案而被广泛采用。然而,现在一些新的FPGA" title="FPGA">FPGA系列为设计师们提供了更具吸引力的选择。
FPGA提供了极具灵活性的平台并且不需要ASIC或灵活性较差的ASSP所需的很长的研制时间和大量的非重复性工程费用(NRE)。新一代带有嵌入式SERDES的FPGA,如LatticeECP2M和LatticeECP3器件,为设计师们提供了极其丰富、高价值的可编程架构,同时还为串行接口提供了一种低成本、低功耗的解决方案。这些FPGA还可用于支持各种串行协议,如:PCI Express、千兆以太网、SGMII、XAUI、串行RapidIO等,使用单个FPGA平台实现多种设计。
PCI Express也开始代替过去的并行接口,如PCI,成为控制板应用的接口选择。新一代器件使用一个或多个PCI Express接口。在大多数器件中,PCI Express核作为一个PCI Express端点来实现。设计师们通常需要将这些器件与前几代使用并行总线的器件连接(例如,带有并行总线接口的微控制器)。使用一个低成本、低功耗的FPGA来桥接" title="桥接">桥接PCI Express和并行接口,使得设计师们能够有足够的灵活性,在无需使用超出其系统成本和功耗预算的前提下解决这个问题。
PCI Express设计的挑战
当设计师们将设计从PCI迁移到PCI Express时,协议错综复杂的细节和基于SERDES的设计的复杂性给设计师们带来了巨大的挑战。幸运的是,FPGA和全功能PCI Express IP核、参考设计、硬件*估板和相关的演示有助于设计顺利进行,否则PCI Express设计师们将面临困难曲折的研究学习过程。事实上,FPGA是一种基于PCI Express应用的理想平台。由于FPGA的可编程特性,使得设计师们拥有更大的灵活性,在之后的设计周期中使用很短的周转时间来解决设计问题。设计师们还需要为每个设计需求演变过程中的特性更改或添加作好准备。此外,FPGA设计使设计师们能根据新的参数规格更改和更新设计,从而使产品不会因过时而被淘汰。可编程平台还能让设计师们使用同一款FPGA来实现接口解决方案,连接到大量其他PCI Express芯片集:端点器件、Root Complex或开关。设计师还可以将系统所需的其他功能集成到FPGA中,减少板上的元器件数量并进一步降低系统的总成本。
PCI Express解决方案
FPGA为系统设计提供了极其灵活的可编程平台。全套解决方案包括了IP核、硬件平台、演示设计、驱动器和软件,使得设计师们能缩短其开发周期,同时降低设计的复杂性。PCI Express解决方案所需要解决的一个常见的设计要求就是PCI Express串行接口(端点器件)与合法的并行总线接口之间的桥接,如图1所示。带有PCI Express Root Complex IP核的FPGA为设计师们提供了实现这样一个解决方案所需的基本构建模块。或者也可以使用ASSP和ASIC实现该功能。然而,与FPGA不同的是,这些器件仅能实现一种固定的配置,且不能更改来实现其他可用的并行总线接口。相反,可编程FPGA平台可使设计师们在设计中进行更改以实现特定的桥接功能,以符合其特定板上可用接口的要求。设计师们还能灵活地在单个FPGA中实现多种桥接或不同桥接配置,从而减少板上总的元件数量。带有PCI Express Root Complex IP核的FPGA可以实现设计所需的多种其他桥接解决方案。
图1:PCI Express桥接解决方案。
PCI Express Root Complex
PCI Express端点用作一个信号发出(upstream)器件,并且不能与信号接收(downstream)器件通信。该功能可由Root Complex器件实现,但是一个使用FPGA的全功能Root Complex实现是非常昂贵的。相反,一个带有传输层功能子集的“轻量版”Root Complex核足以实现大部分桥接功能。如图1所示,该桥由两个基本构建模块组成。第一个模块是PCI Express Root Complex(或Root Complex-lite)IP核,与PCI Express端点器件接口。第二个模块是桥接逻辑,用以接口到本地总线/并行接口。因为使用可编程FPGA来实现,设计师能有很大的灵活性定制基于特定接口需求的设计。其他功能也可以集成到同一个FPGA中,以减少板上其他元件的数量并降低元器件材料的总成本。
PCI Express Root Complex IP支持
PCI Express是一个复杂的协议。全功能、充分验证的PCI Express IP核能为设计师大大降低设计的复杂性。例如,莱迪思PCI Express Root Complex Lite(RC-lite)核实现了一个x1或x4 Root Complex功能,主要用于PCI Express桥接应用。如图2所示,所有的PCI Express层都使用嵌入式ASIC模块和PCI Express RC-lite软IP核在FPGA中实现。各个模块包括电气SERDES接口、物理层、数据链路层以及支持实现PCI Express Root Complex功能所需的协议栈的最简化的传输层。这个“轻量的”IP专为用于简单桥接PCI Express端点接口和并行本地总线接口应用而优化。
图2:PCI Express RC-lite IP协议栈。
LatticeECP2M或LatticeECP3 FPGA中实现的PCI Express RC-lite IP实现了低成本、低功耗的PCI Express桥接应用,同时为设计师们提供了定制桥接接口的灵活性。此外,PCI Express硬件*估板和各种参考设计、演示板和软件驱动帮助设计师们快速开始PCI Express设计并缩短产品上市时间。莱迪思还为设计师们提供了一款硬件*估板,用以测试RC-lite IP解决方案。设计师们还可以在实际系统级部署之前,完成其解决方案的互操作性并验证其系统级功能,节省通常设计后调试和性能增强所需的时间和成本。
小结
PCI Express使设计师们面临很大的设计挑战。接口需求根据器件是否需要连接到其他端点、Root Complex或开关而各不相同。此外,在许多情况下, PCI Express端点需要使用并行总线接口连接到另一器件。设计师们可以使用低成本、低功耗的FPGA平台来实现这些功能,同时保留灵活的可编程架构的所有优点。例如,在一个FPGA中实现PCI Express Root Complex IP功能,为实现这些桥接功能提供了理想的平台。