我对我的程序提供了一个七段显示屏的超级兴奋,但是当我向不在现场的人展示时,他们总是说“你能用它做什么?”我永远无法给他们一个简明的答案。任何人都可以帮助我吗?
答案 0 :(得分:18)
首先:他们不需要具有易失性内存。
事实上,大型播放器(Xilinx,Altera)通常在SRAM中进行片上配置,因此您需要额外的EEPROM / Flash / WhatEver(TM)将其存储在外部。
但还有其他人,例如Actel是一个重要的参与者,他们的FPGA上有非易失性配置存储(顺便说一句。这也有其他优点,因为SRAM通常不是非常容忍辐射的,当你进入轨道时你需要特殊的测量)。
有两件大事证明了FPGAS的合理性:
价格 - 它们并不便宜。但有时你不能用软件做某事,而你需要硬件。当你低于所需音量的某一点时(例如因为它只是小型系列或原型),FPGA比ASIC便宜很多。此外,在开发ASIC时,这允许 - 在达到最终状态之前 - 更高的周转时间。
重新配置 - 您可以重新配置FPGA。这是处理器或ASIC无法做到的事情。有些应用程序可以使用它:例如当您需要能够在设计中修复某些内容时,却无法实际访问设备。示例:火星轨道器/流动站使用Xilinx FPGA。当有人发现错误(或想要切换到不同的编码来传输数据或其他)时,您无法更换船只,因为它无法到达。但是使用FPGA,您可以重新配置并应用您的更改。另一种情况是,您可以拥有一个能够执行不同加速度的芯片,具体取决于具体情况。想象一下智能手机,当打电话给FPGA时可以配置音频进行解码,当冲浪它可以作为压缩引擎时,在播放视频时它可以配置为h264解码器/加速器。您可以做的另一件事是您可以将硬件与问题实例相匹配。例如。思科在其硬件中使用了许多FPGA。您需要硬件以所需的速度执行切换/路由/数据包检查,并且您可以从实际设置匹配引擎直接生成硬件。
另一件可能很快出现的事情(我知道一些汽车制造商对此有所了解),是针对包含大量不同电子产品并拥有庞大供应链的设备。它或多或少是价格和重新配置的组合。拥有10个ASIC比10个FPGA更昂贵 - 两者都执行相同的任务,但是只有一个供应商拥有10个FPGA并且需要在服务和供应时仅拥有1种芯片而不是让10个供应商拥有在供应和服务中持有和管理10种不同芯片的必要性。
答案 1 :(得分:7)
真实的故事。
它们允许您在自定义数据采集板中修复设计缺陷,进行价值数百万美元的粒子物理实验,只有在之后才能完成所有安装并且正在做整合工作和探测器表征。
答案 2 :(得分:4)
你可以进化电路,这是一个古老的学校进化算法,但从一组随机个体开始,你可以选择在健身功能中得分高于其他人的电路,并培育它们以无限制地创造一个新的群体。阅读有关Evolutionary硬件的内容,请认为本书涵盖了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 :(得分:3)
我喜欢这篇文章:http://www.hpcwire.com/hpcwire/2011-07-13/jp_morgan_buys_into_fpga_supercomputing.html
我的感觉是FPGA可以直接进入您的流数据,直到它进入您控制下的系统。然后,您可以在不经过GPGPU所需的步骤的情况下处理这些数据(将数据从网络中传出,将其传递到PCI Express总线并一次将其压缩为Gb)。
两者都有充分的理由,但我认为你是否介意缓冲数据的概念是一个很好的领头羊。
这是另一个很酷的FPGA应用程序:
答案 4 :(得分:3)
FPGA还用于在开始批量生产之前测试/研究电路设计。这种情况发生在几个部门:图像处理,信号处理等。
编辑 - 几年后,我们现在可以看到更多实际应用,包括财务和机器收入:
答案 5 :(得分:3)
软件存在局限性。在软件上,您以CPU的时钟速率运行,使您每个时钟周期只能执行一条指令。在软件上,一切都是高级别的,你不能控制低级别的细节。您始终受到编程的操作系统或开发板的限制。对于像Arduinos和Raspberry Pi这样的流行开发板来说,情况确实如此。
在FPGA硬件中,您可以精确地编程和控制每个时钟周期之间发生的事情,为您的计算提供电子水平的速度(注意:电子速度决定了硬件之间电信号传输的速度)
现在,我们知道FPGA意味着硬件,电子速度,这要好得多 暗示软件的CPU,每个时钟周期1个指令。
那么为什么在使用印刷电路板(晶体管级)设计自己的电路板时使用FPGA呢?
这是因为FPGA是可编程硬件!它的构建使您可以对电路板的连接进行编程,而不是为特定应用进行连接。这就解释了为什么FPGA价格昂贵!它是一种通用硬件'或可编程硬件。
为了说明为什么你应该选择FPGA,尽管它们有成本,可编程硬件组件允许:
更长的产品周期(您可以通过简单地允许他们将更新的HDL代码编程到他们的FPGA中来更新包含您的FPGA的客户产品上的可编程硬件)
恢复硬件错误。您只需允许他们将更正的程序下载到他们的FPGA上。 (注意:你不能用特定的硬件设计来做这件事,因为你将不得不花费数百万来收回你的产品,创造新产品并将它们运回给客户)
有关FPGA可以做的很酷的事情的例子,请参阅斯坦福臭名昭着的ECE5760课程。
http://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/
希望这有帮助! 很快Chee Loong, 多伦多大学
答案 6 :(得分: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