如果采用整合的解决方案,首个挑战是寻找一个低成本的器件。在过去,PCI Express需要的串行链路一般只在高端昂贵的FPGA中才有。然而,今天许多应用需要较低成本的解决方案。中档LatticeECP2M,或最近推出的LatticeECP3 FPGA系列,拥有适合这种应用的一些功能。这两种器件都集成了可用于实现PCI Express x1或x4的串行通道。除了低成本优势外,与高端FPGA解决方案相比,这两类器件的功耗也非常低。该“节能方案”使系统工程师能够降低功耗,因此只需要使用较小供电电源。图3展示了近期推出的ECP3 FPGA系列的结构图。
图3:LatticeECP3中档FPGA框图,内有集成的SERDES模块。
利用这些FPGA的另一个优点是它们能够处理PCI Express使用的扩频时钟。许多其他的“单芯片”解决方案推荐使用外部的PLL和去除抖动来处理时钟,这意味着电路板上会有两到三个额外的器件。这些器件也可用在工业温度范围。
既然这些FPGA的串行链路只能实现物理层的SERDES部分,所以需要额外的逻辑来实现完整的PCS。这由软IP核来完成,它可以配置成x1或x4 PCI Express端点。莱迪思的ispLEVER设计软件包括一个称为IPexpress的工具,通过GUI来配置功能,如PLL、存储器等,还有软IP。PCI Express核可从莱迪思网站上下载,使用IP Express进行配置并产生编程文件。即使没有有效许可证,也可以运行这个应用数小时,从而获得一个全面的系统评估。
为了符合系统的需要,配置PCI Express核的某些功能是非常重要的。例如, PCI Express提供不同的有效载荷大小。有效载荷的规模越大,核中需要的FIFO也越大。为了节约资源,可以通过IPexpress来选择针对PCI Express核的正确有效载荷的大小。还有一些应加以调整的其他参数,以针对系统要求优化FPGA的利用率。
在许多项目开发中,只有在开发后期才能得到样机电路板。为了熟悉PCI Express的协议,可从莱迪思获取PCI Express设计套件。该套件包含了电路板,可用于x1或x4的插槽,并有一些演示配置:
* 基本方法
o 用户访问内存和寄存器
o 在电脑上运行演示与在电路板上的PCIe IP核之间提供简单的互动
* 吞吐量
o 在PCIe核和SERDES之间演示和测量带宽性能
* Scatter Gather DMA
o 使用DMA在PC机内存和PCI Express卡之间传送数据
设计人员可以选择使用其中一个准备好的编程文件,在30分钟内构建一个完整的演示。套件不仅提供了硬件设计文件,而且还提供驱动程序和运行在PC上的应用程序,这样就为设计人员的应用提供了一个良好的起点。图4展示了莱迪思的一个完整的PCI Express演示设计。
图4:Lattice PCI Express的演示。
用协议分析仪和示波器可以调试系统。但是,利用功能或者RTL级仿真时,设计人员已经可以找到许多问题。
系统调试的三个主要方法:
* 串行环回
* 激励发生器和测试器
* 总线功能模型
莱迪思的PCI Express核包含一个简单的采用串行环回的测试平台。借助一些来自测试平台的互动建立PCI Express链路,并发送一些数据包。这是仿真设计的非常基本的方法。
一个更先进的方法是使用激励发生器和测试器。FPGA中串行链路的仿真模型被一个模型所取代,后者生成数据包,并检查FPGA内的逻辑响应。
最全面且成本昂贵的方法是建立总线功能模型。有几个供应商提供PCI Express的仿真模型。根据总线功能模型,设计人员可以测试应用程序,以及FPGA的串行链路与整个系统的互动。