如何为应用选择最佳的FPGA(下)

时间:2024-11-18 08:06:37

如何为应用选择最佳的FPGA(下)

How to select an FPGA board?

FPGA板的选择在很大程度上受FPGA本身的影响,也受整个板的特性和性能的影响。们已经在上面的章节中讨论了FPGA芯片。在本节中,们将介绍选择任何FPGA板的思想过程。

在选择FPGA板的决策过程中,一些非详尽的常见因素包括:外围设备、扩展连接器、内存接口、易用性、上市时间、定制选项、文档、标准遵从性和支持质量。当然,成本也是一个因素。

如何为应用选择最佳的FPGA(下)

Common Peripherals, Interfaces, Connectors, and Memories available in a typical FPGA Board

Peripherals

外设和扩展连接器是任何FPGA板的显著特征。不同的目标用户对们希望在FPGA板中看到哪些外围设备有不同的期望。例如,希望学习数字电子和RTL设计的学生会想要一些外围设备,如开关、按钮、7段显示器、LED、USB串行端口、LCD字符显示器、VGA输出等。们不会想要更高端的外设,因为们还没到可以有意义地使用这些设备的阶段外围设备。Elbert V2、Mimas V2、Waxwing Development Board和Mimas A7 FPGA开发板都是满足学习者和爱好者群体期望的电路板示例,具有大量面向学习的外围设备。

高端外围设备的例子有千兆以太网、PCI Express、QSFP笼、USB 2.0/3.0 PHY、DisplayPort等。虽然这些外围设备对任何初学者来说可能没有太大用处,但对于一个必须使用千兆以太网的复杂项目来说,们是不可或缺的,例如,由于项目要求,必须使用千兆以太网或任何其外围设备。Proteus Kintex-7usb3.0fpga板、Nereid Kintex-7pci-Express开发板甚至带有千兆以太网和DisplayPort外围设备的Mimas A7开发板都属于这一类。

Peripherals in Mimas A7:

如何为应用选择最佳的FPGA(下)

下表突出了低成本板之间的对比。ElbertV2具有有限的低速FPGA和外围设备,与高端板相比,GPIO数量更少。Nereid和Proteus,具有技术上更优越的FPGA、更高速的外围设备、连接选项、收发器和大量gpo。

Nereid & Proteus Vs Elbert V2 :

如何为应用选择最佳的FPGA(下)

对于批量生产,模块形式的FPGA板也非常流行。FPGA模块通常与载波板一起使用,以充分发挥其潜力。FPGA模块为用户提供了充分的灵活性来设计们自己的载波板和外围设备、连接器和硬件。例如,Neso Artix-7 FPGA模块一直是非常受欢迎的FPGA模块,因为具有模块外形,而且还与相同外形的高端和低端模块(如Narvi Spartan-7模块、Skoll Kintex-7模块和Styx Zynq 7020模块)交叉兼容。

Connectors and Expansion I/Os Ports

虽然连接器有大量的选项,但根据所需的速度和针数,最好选择标准连接器或使用通用的现成连接器,以便用户可以轻松地设计自己的扩展模块。在这种情况下,连接器和扩展I/O端口是可以互换使用的术语。以太网、HDMI等外围设备都有自己的专用连接器,但本段仅指用于I/O扩展的连接器或端口。

Callisto K7 Vs Aller comparison in terms of I/Os:

如何为应用选择最佳的FPGA(下)

连接器主要可分为低速连接器与高速连接器,低针数连接器与高针数连接器。Pmod连接器是低速、低针数连接器的一个例子。们是面向FPGA板的爱好者中非常流行的连接器。Elbert V2和Mimas V2具有类似的用于扩展模块的0.1英寸低速连接器。

HDMI、SATA和DisplayPort接口是高速、低插脚数的连接器。们主要用于各自的预期应用程序,但也可用于自定义应用程序。另一端是高速、高针数连接器,如FMC(FPGA夹层卡)连接器、FMC+、HSMC(高速夹层卡)连接器、VHDCI(甚高密度电缆互连)连接器、PCI Express连接器,这些连接器主要用于需要与高采样率adc、高速dac、千兆位收发器等接口的高端FPGA板中,信号完整性是这些连接器中最重要的因素。PCI-Express有两个高速PCI-Kinc-7接口(高速PCI-Kinc-7接口)。Nereid和Proteus中的FMC连接器是VITA 57.1/ANSI兼容的连接器,这意味着来自不同供应商的兼容FMC扩展模块的完整生态系统可以与Nereid和Proteus一起使用,没有任何重大问题。

Onboard Memory Interfaces

FPGA板中的内存选择范围很广。最简单的是SRAM和SDRAM。其选项包括LPDDR、DDR2、DDR3、DDR4等。根据应用程序和项目要求,即使是简单的SRAM也可能足够,或者可能需要更大容量的内存,如DDR3和DDR4。同样重要的是要考虑到来自FPGA IC供应商或第三方的内存控制器IP核的可用性。对于网络应用,由于低延迟和高吞吐量,诸如RLDRAM和qdrram之类的内存技术是首选。用于DDR3和DDR4内存的SODIMM外形尺寸为用户提供了方便,可以随时升级、降级或更换内存模块,而无需对硬件进行任何更改。这使得SODIMM在用户中非常流行。SODIMM内存模块也相对便宜,并且易于现货供应。Nereid Kintex-7 PCI Express FPGA板具有用于DDR3L内存的SODIMM连接器。Proteus Kintex-7fpga开发板还有一个SODIMM连接器,与Nereid的FPGA连接完全相同,因此两者都可以互相兼容。其板,如Neso、Narvi等都有2Gb DDR3芯片永久焊接到模块中。Saturn Spartan 6 FPGA模块板载512Mb LPDDR芯片。

External RAM comparison: Nereid vs Saturn vs Neso:

如何为应用选择最佳的FPGA(下)

除了易失性RAM存储器,另一个需要考虑的重要存储器是闪存。对于FPGA来说,这一点尤为重要,因为在FPGA上运行的设计的比特流存储在该存储器中。在加电期间,FPGA从闪存中读取比特流,并使用该比特流数据进行自配置。带有SPI通信接口的Flash存储器在这方面很流行,几乎所有的fpga都支持从SPI-Flash配置(或引导)。作为一个串行接口,每个时钟1位,原来的SPI flash在配置大型fpga时速度较慢。因此,改进的SPI接口,如双SPI、Quad SPI(QSPI)和QSPI-DDR被用于更快的数据传输。QSPI闪存每时钟传输4位,导致FPGA配置时间快4倍。对于具有PCI-Express接口的FPGA板,在BIOS开始枚举PCI-Express设备之前对FPGA进行配置尤为重要。所以在这种情况下,更快的QSPI闪存是必要的。非易失性闪存的容量也很重要。SPI flash应该至少有足够的容量来容纳一个比特流,但是通常应该有足够的空间来容纳两个比特流和固件,比如Linux映像或任何其用户数据。Numato Lab的大多数7系列FPGA板都有128Mb的QSPI闪存,而更新的电路板(如Callisto K7和Aller Artix-7 M.2 PCI Express板)具有1Gb QSPI-DDR闪存,其空间足以容纳多个位流和自定义数据。

Flash Memory comparison: Elbert V2 vs Narvi vs Aller

如何为应用选择最佳的FPGA(下)

Ease of use

第一印象很重要。然而,这一因素往往被FPGA板制造商忽视。如果任何FPGA都很难开始使用,也很难使用,那么即使是专业的FPGA用户也会倾向于远离此类电路板。对于刚开始FPGA开发的初学者来说,FPGA板制造商应该不遗余力地使们的FPGA板尽可能容易使用。这方面与稍后讨论的“文档”因素略有重叠。但是,值得注意的是,虽然好的技术文档在可访问性方面的确令人惊叹,但董事会的设计决策也主要有助于提高易用性。例如,在过去的十年里,在开发板制造商中有一个趋势,就是在板上安装大量的跳线。每次需要使用该板时,都需要检查所有跳线设置并与用户指南交叉验证。这使得使用任何电路板都很乏味。Numato Lab的FPGA产品,如Mimas Artix-7 FPGA开发板、Proteus Kintex-7 FPGA开发板等,都是为了尽可能友好地对待任何用户而设计的。

Time to Market

集成了客户项目所需所有功能的FPGA板将加快客户设计的上市时间。客户可以开始工作的RTL,固件和软件设计,尽快收到董事会。这些板是独一无二的,因为们既满足开发要求,也满足生产要求。这类电路板通常是FPGA模块外形板,如Neso Artix-7 FPGA模块、Narvi Spartan-7 FPGA模块、Skoll Kintex-7 FPGA模块和Styx Zynq 7020模块。或者,们可以是卡的形式,例如Nereid Kintex-7 PCI Express开发板或Aller Artix-7 M.2 PCI Express板。模块形状因子板需要载体板进行原型设计、开发和生产。PCI Express或M.2 form factors等卡的外形尺寸板可以简单地插入主机系统并立即使用。

上市时间也受RTL、固件和软件开发时间的影响。Intercore SDK等框架使快速设计项目变得非常容易。Intercore SDK使用户能够在设计中利用现有的AXI兼容IP核心生态系统,并与主机系统无缝地通信和传输数据。内核间SDK提供了C、C++、java、python和NoDEJS中的库,使用户更容易使用内核间SDK框架开发应用程序。这简化了们的设计流程,为们提供了专注于项目其重要方面的选择。

Customization options

许多客户没有自己的内部硬件设计团队来设计或修改FPGA板、用于FPGA模块或扩展模块的载波板。因此,如果原始供应商以有竞争力的价格提供定制选项,那么就为客户提供了一个有吸引力的选择,可以根据们的需要定制FPGA板。显然,没有深度定制的余地,因为本质上意味着一个独特的产品本身。用户可以使用的最常见的定制选项包括,在板上使用不同的、引脚兼容的FPGA部件、在板中使用更高或更低速度等级的FPGA部件、根据客户要求配置银行电压的选项、使用更大容量的RAM芯片等。

对于Callisto Kintex-7 USB 3.1 FPGA模块,们为用户提供银行电压的定制选项、三种不同的FPGA选项(160T、325T和410T)、使用不同速度等级FPGA的选项、用4Gb内存而不是2Gb内存芯片填充电路板的选项等等,对于Neried Kintex-7 PCI Express FPGA开发和Proteus Kintex-7 USB 3.1 FPGA开发板,们提供了使用更高端引脚兼容FPGA或在板上使用不同速度等级FPGA的选项。

Documentation & Utilities

产品质量与其竞争对手相比有什么区别。如果一块FPGA板的文档不好,那么用户就不太可能购买该板。们绝对建议用户在购买任何产品之前仔细阅读产品文档。文档包括高质量的图片、用户手册、原理图、约束文件、机械尺寸、3D模型、GPIO参考、示例代码、关于板入门的文章、应用说明等。Numato Lab为所有产品提供了专门的知识库和文档部分。

实用工具,如用于FPGA板的编程工具应简单、稳定和便携。像Tenagra FPGA系统管理软件这样的工具使得编程和测试们的FPGA板的特性变得很容易。

Screenshots of Tenagra:

如何为应用选择最佳的FPGA(下)

如何为应用选择最佳的FPGA(下)

Programming Saturn Spartan 6 FPGA Module using Tenagra FPGA Management Software

Support

最后,FPGA板选择的一个关键因素是对用户可用的支持。墨菲定律说“任何可能出错的事情都会出错”是一句常见的警句,在技术领域更是如此。无论是FPGA板的问题还是RTL设计的问题,板的编程问题,驱动程序的安装问题,甚至是第一次设置板的问题,都是们努力的方向。在这些困难时期给予同情的支持会给任何客户留下持久的印象。们相信所有的客户都是品牌大使。