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

How To Select The Best FPGA For Your Application

在项目规划阶段,为任何一个项目选择一个FPGA部件是最关键的决策之一,这对项目有着长远的影响。通常,这是一个优化问题,项目需求决定了特性和功能之间的权衡和折衷。在规划和决策阶段需要考虑大量的FPGA特性。

逐一讨论FPGA的常见特性。

FPGA封装

FPGA封装是指FPGA引脚如何被带到FPGA之外,即FPGA的封装。FPGA封装的PCB封装是FPGA与PCB接触的表面的二维渲染。就像普通的微控制器有DIP、SOIC、QFP等封装形式一样,FPGA也有不同的封装。FPGA制造商提供了任何FPGA封装的PCB封装的详细图纸。可供客户使用的FPGA封装类型多种多样。

FPGA封装是以下方面的决定因素:

FPGA芯片中的I/O数

千兆收发器数量(MGT)

FPGA芯片中I/O和MGT的最大速度

PCB布线规则、指南和约束

Maximum I/Os vs packages.

有一种FPGA可供选择,在25引脚的WLCSP封装中有20个I/O,而2892个引脚的BGA封装则有大约800个I/O。许多应用程序需要尽可能多的I/O。这些应用可以简单到驱动大量的发光二极管,复杂到控制数百台用于机器人或工业应用的电机。所需的I/o数量由项目决定,这反过来又缩小了包选项的范围。

下一个重要的考虑因素是PCB布局约束。该项目是针对智能手机等真正紧凑的终端用户设备,还是针对坚固耐用的工业和军事设备?在第一种情况下,封装应该尽可能小,引脚之间的间距非常小。而在后一种情况下,可以放宽设计限制,以适应具有更大球间距的非常大的FPGA。封装决策随后会影响到项目的许多方面,如机械尺寸、PCB层堆叠、PCB布线、制造限制、千兆位收发器(MGT)速度限制等。对于业余爱好者来说,BGA和WLCSP类型的封装可能比较困难,而QFP封装FPGA可能是更好的选择。拥有先进PCB组装机的公司肯定更喜欢BGAs。在BGA这一类中,有一些封装如Wire-Bond-BGA,与倒装芯片BGA相比,它的MGT速度更低。

大多数FPGA制造商提供一种称为“设备迁移”的功能。这意味着,如果您选择任何一个带有特定封装的FPGA,那么在同一个封装中可能有升级到更高端FPGA的选项。以下图所示的Xilinx Artix-7 FPGA系列为例,如果您选择FGG484封装中的XC7A50T,那么您将拥有5个以上具有相同兼容性的Artix-7设备,您可以选择升级到更高端的FPGA或降级到成本更低的低端FPGA,并保持硬件设计不变。此功能在成本和最佳FPGA利用率方面提供了移动性和灵活性。

Table: Device migration and footprint compatibility between Artix-7 FPGAs.

FPGA资源

所需FPGA资源的最佳数量,此外,所需FPGA资源的种类取决于项目需求。有些项目可能需要大量的I/O,而有些项目可能只需要FPGA的DSP片。以下是主要的FPGA资源:

1.       Logic resources (LUTs, Flip-Flop, etc)

2.       Memory resources (Distributed RAM, Block RAM, etc)

3.       Clock resources (PLL, MMCM, etc)

4.       I/Os (Single-ended and differential)

5.       DSP slices

6.       Hard-blocks such as ARM cores, PCIe, 100G Ethernet, Interlaken, etc

7.       MGT Transceivers

关于FPGA封装的部分对作为封装一部分的I/o和MGT收发器进行了一些说明,因为它们强烈地决定了FPGA封装和管脚数。在Xilinx行话中,mgt根据其最大传输速率由以下一个可能的名称来表示:GTP、GTX、GTH、GTM、GTY和GTZ。这些都是千兆位收发器,但它们的速度能力各不相同。DisplayPort通常只需要四个收发器,但PCI Express可能需要多达16个收发器。此数字取决于目标应用程序。

不建议将逻辑、内存或时钟资源与设计要求几乎相同的FPGA列入短名单。一旦FPGA开始饱和,Place&Route工具就开始挣扎,很难实现时序闭合。因此,建议预算额外的资源,可能比实际设计要求多20%到30%。

有些FPGA具有专用的硬块用于特殊用途,如内存控制器、PCI Express硬块和CPU核心(功率、ARM、RISC-V等)。由项目规划者来决定他们是否需要任何专用的硬块。值得注意的是,FPGA的成本会随着FPGA资源数量的增加而增加。资源的能力也随着较新的FPGA架构而变化。

Styx模块采用XilinxZYNQXC7Z020芯片,该芯片集成了硬硅ARM片上系统(SoC)和基于Artix-7的可编程逻辑。Zynq的SoC部分包括

双核ARM Cortex-A9处理器

加固的外围设备,如双千兆以太网、SDIO、UART、SPI、I2C等

静态和动态内存控制器以及许多其他外围设备

以下方框图说明了Zynq的可编程逻辑部分和SoC(处理系统)部分:

Telesto模块采用Intel MAX 10 FPGA,这是一种非易失性可编程逻辑器件。MAX 10 FPGA带有片上双配置NOR闪存,与传统FPGA相比,它允许非常快速的设备配置。

与传统的FPGA不同,基于MAX 10的Telesto无需外部配置存储器。这节省了PCB设计成本,而且设计不容易失败。此外,双配置闪存允许用户在单个芯片上存储和动态切换两个位流。              接口

几乎所有与FPGA的通信要么通过可用的通用输入输出,要么通过专用的IOs(如收发器)进行。例如,如果设计需要HDMI输入/输出,则应考虑支持TMDS信令的FPGA。如果设计需要DisplayPort或PCI-Express等,则需要考虑使用带有MGT收发器的FPGA。像DDR2和DDR3这样的内存需要专门的I/O标准和像IODELAY这样的特性。

编程、调试和配置接口通常由JTAG和用于配置位流存储的非易失性存储器组成。对于远程系统升级要求,最好选择具有“Multiboot”或类似功能的FPGA。例如,如果FPGA配置是由处理器控制的,则不是强制性的。多重启动意味着FPGA可以从非易失性存储器中的许多映像中的一个启动,如果它不能从升级的映像引导,那么它可以回到“黄金”位流。

功率使用

相对而言,FPGA比ASIC芯片更耗电。功率预算对于智能手机或物联网(IoT)设备等功率敏感型设计非常重要。新一代FPGA系列采用更密集的工艺节点(如28nm或14nm)制造,每个逻辑单元的功耗要求更低。

即使采用节能硅工艺,巨大的FPGA也对电源提出了很高的要求。仅仅FPGA内部核心本身就可能消耗几十安培的电流。再加上I/O、收发器、块RAM等的电源供应,挑战增加了很多。电源供应商和FPGA供应商为所有FPGA提供电源分析工具。我们绝对建议使用它们来规划项目的电力需求。

成本

最后一个因素,尽管是一个主要因素,是成本。一个简单的规则是,任何附加功能都会增加成本。以Xilinx的Spartan-7与Artix-7 FPGA系列为例。Spartan-7系列与Artix-7非常相似,除了Spartan-7中没有收发器,并且在类似的逻辑资源计数方面,它们比Artix-7更便宜。因此,如果您只需要一个FPGA来处理大量的I/O,那么使用带有收发器的FPGA就没有多大意义了,这会增加成本,特别是当您可以用一个相同的FPGA以较低的成本获得所需数量的I/O,但没有收发器时。这也是锡林克斯发布Spartan-7系列的原因之一。人们抱怨说没有收发器他们就没有选择,他们不想为他们不打算使用的收发器付费。因此,对于这一细分市场,Spartan-7更有意义。

另一方面,更高端的“重磅”FPGA价格非常昂贵。但这些FPGA的目标应用领域是那些用户愿意为昂贵的FPGA付费的应用,因为他们拥有尖端的技术和能力。例如,这些FPGA应用于顶级军用雷达、下一代无线技术、先进的数字信号处理、数据中心加速等。对于这些细分市场,成本并不是一个重大的交易破坏者。相反,他们对保持技术实力和能力的前沿感兴趣,领先于竞争对手或对手。

如何为应用选择最佳的FPGA(上)的更多相关文章

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

    如何为应用选择最佳的FPGA(下) How to select an FPGA board? FPGA板的选择在很大程度上受FPGA本身的影响,也受整个板的特性和性能的影响.们已经在上面的章节中讨论了 ...

  2. 云中的机器学习:FPGA 上的深度神经网络

    人工智能正在经历一场变革,这要得益于机器学习的快速进步.在机器学习领域,人们正对一类名为“深度学习”算法产生浓厚的兴趣,因为这类算法具有出色的大数据集性能.在深度学习中,机器可以在监督或不受监督的方式 ...

  3. PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植

    PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...

  4. 企业如何选择最佳的SSL

    如果你的企业有意采购SSL,那么本文可以给一个很好的方向.在本文中,我们将先简要介绍SSL定义及其工作原理,并探讨目前各种可用的SSL证书类型以及企业如何选择最佳的SSL. SSL定义 SSL及传输层 ...

  5. Debian初识(选择最佳镜像发布站点加入source.list文件)

    选择最佳镜像发布站点加入source.list文件:netselect,netselect-apt “该将哪个Debian镜像发布站点加入source.list文件?”.有很多方法来选择镜像发布站点, ...

  6. 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用

    十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...

  7. R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型

    8.6 选择“最佳”的回归模型 8.6.1 模型比较 用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度.所谓嵌套模型,即它的一 些项完全包含在另一个模型中 用anova()函数比较 &g ...

  8. [大牛翻译系列]Hadoop(4)MapReduce 连接:选择最佳连接策略

    4.1.4 为你的数据选择最佳连接策略 已介绍的每个连接策略都有不同的优点和缺点.那么,怎么来判断哪个最适合待处理的数据? 图4.11给出了一个决策树.这个决策树是于论文<A Compariso ...

  9. FPGA上如何求32个输入的最大值和次大值:分治

    上午在论坛看到个热帖,里头的题目挺有意思的,简单的记录了一下. 0. 题目 在FPGA上实现一个模块,求32个输入中的最大值和次大值,32个输入由一个时钟周期给出.(题目来自论坛,面试题,如果觉得不合 ...

随机推荐

  1. hdu3793 判断对称(水题)

    题意:       给你一个串,问你这个串是不是关于某个字母对称的,这个串是一个首位相接的圆. 思路:       水题,直接枚举每一个为对称点试一下就行了,不解释了. #include<std ...

  2. hdu4998 旋转坐标系

    题意:       一开始的时候有一个坐标系(正常的),然后有n个操作,每个操作是 x y d,意思是当前坐标系围绕x,y点逆时针旋转d度,最后让你输出三个数x y d,把这n个操作的最后结果,用一步 ...

  3. Iptables防火墙实验

    先说明一下环境,这里有四台主机,中间的Centos充当防火墙.右上角的win XP和右下角的Rhel7充当服务器,最左边的win7充当主机.四者之间的网卡都已经配置好.而且我们已经在Centos6.5 ...

  4. SpringMVC中<mvc:default-servlet-handler/>的作用

    问题所在:DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当成一个普通请求 ...

  5. php 获取某年后的日期

    比如两年后:date('Y-m-d',strtotime('+2 year')) 月份year改成month

  6. 算法学习笔记1语法 (C++组)持续更新

    关于 #include <cstdio> 包含printf();和scanf(); c++中printf.scanf比cout.cin效率高很多 算法题里cin.cout可能超时,虽然可以 ...

  7. JSX语法详解

    一.基础1.JSX是什么JSX是一种像下面这样的语法: const element = <h1>Hello, world!</h1>;1它是一种JavaScript语法扩展,在 ...

  8. Spring Cloud 升级之路 - 2020.0.x - 5. 理解 NamedContextFactory

    spring-cloud-commons 中参考了 spring-cloud-netflix 的设计,引入了 NamedContextFactory 机制,一般用于对于不同微服务的客户端模块使用不同的 ...

  9. [bug] JavaScript:Uncaught SyntaxError: missing ) after argument list

    function拼写错误

  10. [bug] vscode output 输出乱码

    参考 https://blog.csdn.net/qq_34192032/article/details/105077173 https://blog.csdn.net/a19990412/artic ...