FPGA的一些实际应用是什么?

问题描述 投票:16回答:7

我为程序提供七个小段显示而感到非常兴奋,但是当我向不在现场的人展示它时,他们总是说:“你能用它做什么?”我永远无法给他们一个简洁的答案。谁能帮帮我?

logic fpga digital
7个回答
18
投票

首先:他们不需要具有易失性的内存。

实际上,大型厂商(Xilinx,Altera)通常将其配置存储在SRAM中,因此您需要额外的EEPROM / Flash / WhatEver(TM)将其存储在外部。

但是还有其他一些,例如Actel是我想到的一个重要参与者,在其FPGA上具有非易失性配置存储(顺便说一句。这还具有其他优势,因为SRAM通常不是很耐辐射,并且进入轨道时必须进行特殊测量)。

有两点可以证明FPGAS是正确的:

  1. 价格-价格不便宜。但是有时您无法在软件中执行某些操作,而您需要硬件。而且当您在所需数量的某个点以下时(例如,因为它只是一个很小的系列或一个原型),FPGA比ASIC便宜得多。另外,在开发ASIC时,这允许-在达到最终状态之前-大大提高了周转时间。

  2. 重新配置-您可以重新配置FPGA。这是处理器或ASIC无法做到的。您可以在某些应用程序中使用此功能:当您需要在设计中修复某些东西的能力时,却无法实际接触设备。示例:火星轨道器/漫游器使用Xilinx FPGA。当有人发现一个错误(或想要切换到用于传输数据或其他内容的其他编码)时,您将无法替换这艘船,因为那是无法到达的。但是使用FPGA,您可以重新配置并应用您的更改。另一种情况是,您可以拥有一个芯片,该芯片可以根据情况执行不同的加速。想象一下智能手机,打电话时可以将FPGA配置为进行音频编码/解码,浏览时可以将其用作压缩引擎,播放视频时可以将其配置为h264解码器/加速器。您可以做的另一件事是,可以将硬件与问题实例匹配。例如。思科在其硬件中使用了许多FPGA。您需要硬件以所需的速度执行交换/路由/数据包检查,并且可以从实际设置中将匹配引擎直接生成到硬件中。

[不久之后可能会出现的另一件事(我知道有些汽车制造商对此有所考虑),是针对包含许多不同电子设备并具有庞大供应链的设备的。它或多或少是价格和重新配置的结合。拥有10个ASIC的成本比拥有10个FPGA的10个FPGA的成本更高-两者都执行相同的任务,但是拥有10个仅由一个供应商提供的FPGA且只需要在服务和供应中保留一种芯片的成本要比拥有10个ASIC的供应商便宜。必须在供应和服务中保存和管理10种不同的芯片。


7
投票

真实的故事。

他们可以让您修复设计缺陷在自定义数据采集板中进行数百万美元的粒子物理实验,这些实验变得显而易见,after您已经安装了所有组件,并且正在进行集成工作和检测器表征。


5
投票

[您可以进化回路,这是有点老套的进化算法,但是从一组随机的个体开始,您可以选择在适应度函数中得分高于其余回路的回路,并繁殖它们以无限地创建新的种群。阅读有关Evolutionary Hardware的文章,认为本书涵盖了FPGA的http://www.amazon.co.uk/Introduction-Evolvable-Hardware-Self-Adaptive-Computational/dp/0471719773/ref=sr_1_1?ie=UTF8&qid=1316308403&sr=8-1

例如,您想要一个DSP电路,您有一个输入信号和一个所需的输出信号,从一个随机总体开始,您可能只选择最合适的(坏的),或者选择合适的和奇怪的混合物来创建下一代。经过几代人的努力,您可以打开盖子,发现低矮的地方,观察到发生了演变,并且您的电路甚至可以执行最初的期望!

也请阅读遗传编程领域指南,它在网上免费提供。


3
投票

软件有局限性。在软件上,您以CPU的时钟频率运行,从而使您每个时钟周期只能执行一条指令。在软件上,一切都是高层的,您无法控制底层的细节。您将始终受到所编程的操作系统或开发板的限制。这对于诸如Arduinos和Raspberry Pi这样的流行开发板来说是正确的。

在FPGA硬件中,您可以精确地编程和控制每个时钟周期之间发生的事情,从而以电子级的速度提供计算(注意:电子的速度决定了硬件之间电信号传输的速度)

[现在,我们知道FPGA意味着硬件,电子速度,这比表示软件的CPU,每个时钟周期1条指令。

那么,当我们可以使用印刷电路板,晶体管级设计自己的板时,为什么要使用FPGA?

这是因为FPGA是可编程硬件!它的构建使您可以对电路板的连接进行编程,而不必为特定应用进行接线。这解释了为什么FPGA价格昂贵!它是一种“通用硬件”或可编程硬件。

为了争辩为什么尽管价格昂贵,还是要选择FPGA,可编程硬件组件允许:

  1. 更长的产品周期(您可以通过简单地允许他们将更新的HDL代码编程到他们的FPGA中来更新包含FPGA的客户产品上的可编程硬件)

  2. 恢复硬件错误。您只需要允许他们将校正后的程序下载到他们的FPGA中即可。 (注意:您不能使用特定的硬件设计来做到这一点,因为您将不得不花费数百万美元来收集您的产品,创建新产品并将其运送回客户)

有关FPGA可以完成的出色工作的示例,请参考斯坦福大学臭名昭著的ECE5760课程。

http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/

希望这会有所帮助!很快志龙多伦多大学


3
投票

FPGA还用于开始批量生产之前的电路设计测试/研究。这发生在多个领域:图像处理,信号处理等。

编辑-几年后,我们现在可以看到更多实用的应用程序,包括财务和机器收入:

  • aerepospace
  • 仿真
  • 汽车
  • 广播
  • 高性能计算机
  • 医学
  • 机器学习
  • 金融(包括加密货币)

3
投票

我喜欢这篇文章:http://www.hpcwire.com/hpcwire/2011-07-13/jp_morgan_buys_into_fpga_supercomputing.html

[我的感觉是,FPGA可以在您控制的系统中直接进入您的流数据中。然后,您无需执行GPGPU所需的步骤即可处理数据(将数据从网络中移出,通过PCI Express总线传递数据,一次处理Gb)。

两者都有充分的理由,但是我认为是否介意缓冲数据的概念是一个很好的领头人。

这是另一个很酷的FPGA应用程序:

https://ehsm.eu/m-labs.hk/m1.html


1
投票

汽车图像处理是一个有趣的领域:

向驾驶员提供车道保持支持(披露:我写了此页面!):

http://www.conekt.co.uk/capabilities/50-fpga-for-ldw

[通过4个鱼眼镜头摄像机提供汽车的鸟瞰图(带视频):

http://www.logicbricks.com/Solutions/Surround-View-DA-System/Xylon-Test-Vehicle.aspx

© www.soinside.com 2019 - 2024. All rights reserved.