FPGA有多便宜?我知道它们比具有同等性能的微处理器要贵,但是我想知道是否存在可以包含运行Linux的Microblaze软核的FPGA,而使门可以用于实现DSP功能(例如,媒体编解码器),而其价格却与,例如Cortex A8(数量约20至30美元,约100美元)。
(很抱歉,如果我的用语不是惯用语,即是错误的。请提出更正,或直接进行编辑。)
FPGA有多便宜?我知道它们比具有同等性能的微处理器要贵,但是我想知道是否存在可以包含运行Linux的Microblaze软核的FPGA,而使门可以用于实现DSP功能(例如,媒体编解码器),而其价格却与,例如Cortex A8(数量约20至30美元,约100美元)。
(很抱歉,如果我的用语不是惯用语,即是错误的。请提出更正,或直接进行编辑。)
Answers:
我最近参加了有关FPGA的在线会议,主题演讲为“您的下一个处理器应该是FPGA吗”。
在需要高度可并行化工作流的任何应用中,FPGA基本上都是有意义的,例如,正在使用一个示例来分析全高清图像以查找行人。
您要记住的是,每次加电时都必须初始化FPGA,我认为FPGA的Xilinx(带有片上ARM内核)是一个不错的选择,但可能很昂贵。使用片上闪存查看Actel的芯片也可能有用。
在性能方面,BDTI公司在高度并行计算方面做了基准测试,他们发现使用FPGA可获得约40倍的性能增益。有趣的是,他们将成本相近的芯片进行了比较(我相信23美元对28美元)。
以下是您可能感兴趣的链接:
您无法真正比较基于MIPS或Mhz统计信息的基于FPGA的系统的性能。使用FPGA处理某些任务的方式与微控制器完全不同。例如,使用VHDL必须为FPGA设计固件,这类似于Assembly。抽象的寄存器传输级别(RTL)。正在生产某些环境以提供更多抽象,但是这些环境通常仍是特定于供应商的。Wikipedia概述了可用于编程FPGA代码的语言:
如果您有钱可以烧,您可以使用LabView系统来构建基于FPGA的实时测量系统。这些所需的器件价格完全不同(1500美元及以上),但通过图形编程可将FPGA设计面向更广泛的受众。
越来越多的供应商正在提供将诸如ARM芯片之类的微控制器与FPGA结合在一起的板,以提供特定的附加功能和并行处理能力。可以在此处找到此类产品的示例:EmbeddedARM:FPGA系列
FPGA有多便宜?据Newark称,最便宜的FPGA约为10美元(最低端的Altera Cyclone和最低端的Xilinx Spartan)。它们可能具有足够的容量来运行简单的8位CPU。
如您所料,即使是简单(即没有MMU)的32位CPU,其FPGA资源也大约是8位CPU的4倍。具有勉强足够资源来运行如此简单的32位CPU的FPGA的成本约为14美元。我的理解是,uCLinux已经移植到了其中的某些FPGA软CPU(例如NIOS II / e)上,您可能会发现uCLinux足以满足您的目的。
完整的Linux需要具有MMU的CPU(例如NIOS II / f)。具有MMU的32位CPU所需要的FPGA资源约为没有MMU的32位CPU的4倍-原因并不那么明显。
据我在 Xilinx Microblaze页面上所了解的,Microblaze软CPU仅在Xilinx FPGA上运行。
Linux已经移植到其他几个软CPU中。如果要在其他公司的FPGA上运行Linux,则可能需要查看“ FPGA的软CPU内核”中列出的Linux端口 。
这些软CPU中的几个(包括MMU)将安装在Xilinx Spartan XC3S400A上(Avnet售价17美元)。
我听说有些32位软CPU(包括MMU)很容易在20美元的FPGA芯片上设置为“双核”。那些遵循“ Jan's Razor”的处理器可能会尝试挤入同一芯片上的十几个8位CPU。
通常,FPGA的成本要比硅片上实现的相同器件高得多,因为可重构性会带来很多开销。所以不,您不会找到价格为20-30美元的FPGA与具有20-30美元的ARM CPU相同功能的FPGA。现在,您可能会发现20-30美元的FPGA可以比20-30美元的ARM更快地执行特定任务,但在一般的计算任务中却无法胜任。
这就是为什么人们经常将微控制器和FPGA粘在同一块板上的原因。ARM和PPC是最常与FPGA结合使用的两种。
购买FPGA时,不要忘记考虑保存FPGA程序的闪存的成本。这很容易忘记。
作为PCB设计人员,FPGA的布局容易上百万倍,因为即使在电路板制作完成后,也可以根据需要重新布置引脚排列。布线FPGA所需的层数更少,可节省潜在成本。
对于在poo-poo FPGA与CPU性能之间的关系的其他人,我在一定程度上表示同意。实际的处理器在执行实际的处理器方面的工作要比被编程为像处理器那样工作的FPGA更快。
不过,这对于FPGA而言并不公平。CPU是“有时间限制”的;如果您想做更多的工作,则需要更多的时间或更快的处理器。FPGA通常是“区域受限”的。如果您想做更多的工作,则需要更大的FPGA。
例如,假设您制作了一个处理单声道音频信号的频谱分析仪。假设需要70%的CPU时间,而您已经达到了CPU可以运行的速度。您无法添加立体声支持,因为CPU在必须再次处理第一个通道之前还不够快,无法处理第二个通道。但是,如果您使用70%的FPGA,则只需购买更大的FPGA并插入第二个通道即可。它不需要走得更快。
现在,如果您使用有限状态机和数据路径而不是CPU将问题移植到数字设计领域,我敢打赌比索说FPGA将压垮 CPU,但代价是设计复杂性的增加。
FPGA的价格很奇怪-与专营店商谈后,您会发现Digikey,Mouser等产品的报价可能会高出几倍。我知道最便宜的是QFP100中的莱迪思EC1,托盘数量不到3英镑。为SPI闪存增加GBP0.40左右。
就硅片成本而言,将CPU置于FPGA架构中通常不是一个好的选择,但其他因素(如CPU与FPGA之间的紧密耦合以及封装数量的减少)可能会改变使用单独CPU的最佳权衡。
到目前为止,我最好的猜测是类似Xilinx XC3S400A,价格约为16美元,但我不确定它是否可以处理MicroBlaze。
如果您需要一块板子,而不只是一块芯片,那么2013年有两个最新选择: