如何为应用选择最佳的FPGA(上)
如何为应用选择最佳的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(上)的更多相关文章
- 如何为应用选择最佳的FPGA(下)
如何为应用选择最佳的FPGA(下) How to select an FPGA board? FPGA板的选择在很大程度上受FPGA本身的影响,也受整个板的特性和性能的影响.们已经在上面的章节中讨论了 ...
- 云中的机器学习:FPGA 上的深度神经网络
人工智能正在经历一场变革,这要得益于机器学习的快速进步.在机器学习领域,人们正对一类名为“深度学习”算法产生浓厚的兴趣,因为这类算法具有出色的大数据集性能.在深度学习中,机器可以在监督或不受监督的方式 ...
- PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植
PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...
- 企业如何选择最佳的SSL
如果你的企业有意采购SSL,那么本文可以给一个很好的方向.在本文中,我们将先简要介绍SSL定义及其工作原理,并探讨目前各种可用的SSL证书类型以及企业如何选择最佳的SSL. SSL定义 SSL及传输层 ...
- Debian初识(选择最佳镜像发布站点加入source.list文件)
选择最佳镜像发布站点加入source.list文件:netselect,netselect-apt “该将哪个Debian镜像发布站点加入source.list文件?”.有很多方法来选择镜像发布站点, ...
- 【小梅哥FPGA进阶教程】MC8051软核在FPGA上的使用
十.MC8051软核在FPGA上的使用 本教程内容力求以详细的步骤和讲解让读者以最快的方式学会 MC8051 IP core 的应用以及相关设计软件的使用,并激起读者对 SOPC 技术的兴趣.本实验重 ...
- R in action读书笔记(11)-第八章:回归-- 选择“最佳”的回归模型
8.6 选择“最佳”的回归模型 8.6.1 模型比较 用基础安装中的anova()函数可以比较两个嵌套模型的拟合优度.所谓嵌套模型,即它的一 些项完全包含在另一个模型中 用anova()函数比较 &g ...
- [大牛翻译系列]Hadoop(4)MapReduce 连接:选择最佳连接策略
4.1.4 为你的数据选择最佳连接策略 已介绍的每个连接策略都有不同的优点和缺点.那么,怎么来判断哪个最适合待处理的数据? 图4.11给出了一个决策树.这个决策树是于论文<A Compariso ...
- FPGA上如何求32个输入的最大值和次大值:分治
上午在论坛看到个热帖,里头的题目挺有意思的,简单的记录了一下. 0. 题目 在FPGA上实现一个模块,求32个输入中的最大值和次大值,32个输入由一个时钟周期给出.(题目来自论坛,面试题,如果觉得不合 ...
随机推荐
- 手动脱PeCompact 2.20壳实战
作者:Fly2015 PeCompact壳又是一个没有听说过的壳,需要脱壳的程序是吾爱破解培训的第一课的选修作业四.最近对脱壳有点上瘾了,当然也遭受了脱壳受挫的无奈,但是比较幸运还是把这个壳给搞了. ...
- Python多线程_thread和Threading
目录 多线程 _thread模块 使用 _thread模块创建线程 threading 使用 threading模块创建线程 线程同步 在讲多线程之前,我们先看一个单线程的例子: import _th ...
- HBASE-使用问题-split region
问题描述: HBASE表的管理以REGION分区为核心,通常面临如下几个问题: 1) 数据如何存储到指定的region分区,即rowkey设计,region splitkey设计 2)设计的split ...
- 一文带你全面了解java对象的序列化和反序列化
摘要:这篇文章主要给大家介绍了关于java中对象的序列化与反序列化的相关内容,文中通过详细示例代码介绍,希望能对大家有所帮助. 本文分享自华为云社区<java中什么是序列化和反序列化?>, ...
- mysql.data.entityframeworkcore 已弃用
转官网有方案: https://dev.mysql.com/doc/connector-net/en/connector-net-entityframework-core.html General R ...
- 关于ollydbg的堆栈视图的使用(结合crackme2分析)
在crackme2中我们通过在弹出的窗口处下段然后逐层往用户区回溯,我们利用不断下断点和反复运行程序回溯,其实可以利用Ollydbg的堆栈视图来完成, ollydbg的堆栈视图反映了程序在运行期间函数 ...
- 教你用SQL实现统计排名
前言: 在某些应用场景中,我们经常会遇到一些排名的问题,比如按成绩或年龄排名.排名也有多种排名方式,如直接排名.分组排名,排名有间隔或排名无间隔等等,这篇文章将总结几种MySQL中常见的排名问题. 创 ...
- 【BUAA 软工博客作业】个人博客作业
项目 内容 课程:2020春季软件工程课程博客作业(罗杰,任健) 博客园班级链接 作业:热身作业,阅读并撰写博客 作业要求 课程目标 学习大规模软件开发的技巧与方法,锻炼开发能力 作业目标 阅读教材, ...
- 记一次 .NET 某HIS系统后端服务 内存泄漏分析
一:背景 1. 讲故事 前天那位 his 老哥又来找我了,上次因为CPU爆高的问题我给解决了,看样子对我挺信任的,这次另一个程序又遇到内存泄漏,希望我帮忙诊断下. 其实这位老哥技术还是很不错的,他既然 ...
- RHCE脚本题目详解
目录 RHCE脚本题目详解 题目一 shell脚本之if语句实现: shell脚本之case语句实现: 题目二 实现 测试 解析 写在后面 RHCE脚本题目详解 题目一 在system1上创建一个名为 ...