最便宜的FPGA?

电器工程 FPGA 成本 色情书刊
2022-01-18 04:44:43

FPGA 有多便宜?我知道它们比具有同等能力的微处理器更昂贵,但我想知道是否存在可以包含运行 Linux 的 Microblaze 软核的 FPGA,同时以具有竞争力的成本为实现 DSP 功能(例如媒体编解码器)留下门比如说,Cortex A8(数量为 20-30 美元。~100)。

(抱歉,如果我的术语是非惯用的,即错误的。请评论更正,或直接编辑。)

4个回答

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 的在线会议,主题是“你的下一个处理器是否应该是 FPGA”。

FPGA 基本上适用于任何需要高度并行化工作流的应用,例如分析全高清图像以寻找行人。

您必须记住的是,每次上电时都必须初始化 FPGA,我认为 FPGA 的 Xilinx 随附(具有片上 ARM 内核)是一个不错的选择,但可能很昂贵。研究带有片上闪存的 Actel 也可能很有用。

至于性能,BDTI 公司在高度并行计算中做了一个基准测试,他们看到切换到 FPGA 的性能提高了大约 40 倍。有趣的是,他们比较了成本相似的芯片(我相信是 23 美元对 28 美元)。

以下是您可能感兴趣的链接:

处理器选择袖珍指南

FPGA 会议档案(免费注册,但仅在此答案后的 6 个月内可用)

您无法真正比​​较基于 MIPS 或 Mhz 统计数据的基于 FPGA 的系统的性能。FPGA 用于处理某些任务的方式与微控制器完全不同。例如,您必须使用 VHDL 来设计 FPGA 的固件,这类似于 Assembly。抽象的寄存器传输级别 (RTL)。正在生成一些环境以提供更多抽象,但这些环境通常仍然是特定于供应商的。Wikipedia 对可用于编程 FPGA 代码的语言进行了不错的概述:

维基百科:FPGA 编程

维基百科:数字电路设计

例如,如果您有钱可烧,您可以使用 LabView 系统构建基于 FPGA 的实时测量系统。为此所需的这些设备的价格范围完全不同(1500 美元及以上),但通过图形编程向更广泛的受众开放了 FPGA 设计。

越来越多的供应商正在提供将 ARM 芯片等微控制器与 FPGA 相结合的电路板,以提供特定的附加功能和并行处理能力。可在此处找到此类产品的示例:EmbeddedARM:FPGA 系列

一般来说,FPGA 的成本会比在硅片中实现的相同设备高出很多,因为可重构性会带来很多开销。所以不,你不会找到 20 到 30 美元的 FPGA 与 20 到 30 美元的 ARM CPU 具有相同的功能。现在,您可能会发现 20-30 美元的 FPGA 执行特定任务的速度比 20-30 美元的 ARM 快得多,但在一般计算任务中它无法击败它。

这就是为什么经常看到人们将微控制器和 FPGA 固定在同一块板上的原因。ARM 和 PPC 是最常与 FPGA 结合使用的两种。

购买 FPGA 时,不要忘记考虑保存 FPGA 程序的闪存的成本。这很容易忘记。

作为 PCB 设计人员,FPGA 的布局要容易上百万倍,因为即使在电路板制作完成后,您也可以根据需要重新排列引脚。布线 FPGA 所需的层数更少,可能会节省成本。

对于那些对 FPGA 与 CPU 性能嗤之以鼻的人,我在一定程度上同意。一个实际的处理器在做实际的处理器方面的事情将比一个被编程为像处理器一样工作的 FPGA 更快。

不过,这对 FPGA 来说并不公平。CPU 是“有时间限制的”;如果你想做更多的工作,你需要更多的时间,或者更快的处理器。FPGA 通常是“面积有限的”;如果你想做更多的工作,你需要更大的 FPGA。

例如,假设您制作了一个频谱分析仪来处理单声道音频信号。假设它占用了 70% 的 CPU 时间,而您已经达到了 CPU 可以运行的速度。您不能添加立体声支持,因为 CPU 在必须再次处理第一个通道之前不够快,无法处理第二个通道。但是如果你使用了 70% 的 FPGA,你可以买一个更大的 FPGA 并把第二个通道放进去。它不需要走得更快。

现在,如果您将问题移植到数字设计领域,使用有限状态机和数据路径而不是 CPU,我敢打赌 FPGA 会压垮CPU,但代价是设计的复杂性增加。