FPGA设计正在重新流行吗?

已创建:November 1, 2021
已更新:July 1, 2024

从20世纪70年代ASIC革命发展而来的是MCU、MPU和FPGA革命,其中主控制器被构建在一个充满逻辑块和许多集成特性的单芯片上。到2021年,一些行业内的人士已经宣布,FPGA现在是高级应用的首选平台。看看人们都在说些什么,以及你在设计中可能会选择FPGA的原因。

我不够老,不足以记得20世纪70年代,那是ASICs开始进入市场并最终帮助实现更高级别的集成和形态因素缩减的时期。ASIC的遗产一直延续到今天,流行的制造商仍然提供广泛的芯片,这些芯片执行专门的功能,占用空间小。一些在通用可编程逻辑中很难实现的任务,当这些功能被内置在具有专门逻辑或专用特性的ASIC中时,突然变得容易实现。在同一十年的早期,英特尔引入了微控制器,为设计师提供了构建更集成系统所需的一切,而不是依赖于离散逻辑电路。

在ASIC和MCU之后,1984年出现了现场可编程门阵列,Xilinx推出了第一个组件。早期,ASIC设计师使用FPGA来模拟他们打算在ASIC设计中实现的逻辑,作为一种测试平台。随着时间的推移,FPGA在更多的生产硬件中得到实现,无论是作为典型ASIC的补充,还是实现其他处理器或ASIC中不可用的专业逻辑功能。FPGA平台上可用的接口数量也已扩展到可以将FPGA用作任何嵌入式系统的主控制器。

今天,FPGA设计在经验丰富的嵌入式开发人员中仍然很受欢迎,全球FPGA市场的预测增长率从6.4%10%不等,预计未来6-7年。仅供参考,最高估计与全球MCU市场的10.1%预测CAGR相当。对于嵌入式设计师来说,问题是,是什么驱动了FPGA相比其他平台的流行,以及FPGA是否应该是新设计的起点?我们将在比较一些新嵌入式系统的系统架构选项时,更深入地探讨这些问题。

是什么驱动新的FPGA设计?

FPGAs一直在几个广泛的情况下受到欢迎,这归功于它们的适应性,正如之前在本博客上讨论的文章中所述。FPGAs传统上成功的一些高层次领域包括:

 

  • 在紧凑平台中实现特殊逻辑,这通常需要使用MCUs中的慢速顺序逻辑来实现

  • 由于ASICs的长时间开发周期,对市场时间敏感的应用领域或产品

  • 任何需要硬件虚拟化或仿真的应用

  • 任何可能需要快速重新编程而不连接到外部系统的产品

如果你不熟悉FPGA设计和编程,但你知道一些控制FPGA操作的基本思想,那么上面的列表不应该让你感到惊讶。这些是相当广泛的领域,但它们在几个行业中转化为真实的应用。

FPGAs与MPUs/MCUs和ASICs的比较

你会注意到上面我花了很多时间提到ASICs作为FPGAs的主要竞争对手。实际上,庞大的组件范围允许嵌入式开发者混合搭配他们的MCU、特殊功能与ASICs,以及低速外设或接口。FPGAs在不同领域携带几个优势,比较所有这些选项对于嵌入式系统来说是值得的。

从上面的列表中,FPGAs可以扮演的角色应该是清楚的:适用于嵌入式系统的可适应性主控制器,与应用和操作系统无关。FPGA设计提供了升级的额外优势,只要板和系统设计可以适应这些变化。一旦我们看到一些行业中的新应用,为什么FPGAs今天更受欢迎,预计在不久的将来其受欢迎程度只会增长,这应该是清楚的。

主要行业用户

并没有一个单一的产品类别传统上负责FPGA的消耗。自从它们首次被引入,FPGAs的主要行业消费者包括电信系统、军航、汽车、轻量级消费产品,甚至石油和天然气行业。事实上,一些最初的技术,后来成为FPGAs的,最初是在Zilog下开发的,Zilog是Exxon的子公司,其IP后来被Xilinx收购。

随着FPGAs变得更加流行,焦点已经转移到其他需要在单一处理器上直接实现特殊逻辑的行业,尽管许多供应商的大量ASICs可能覆盖相同的设计。作为一个例子,军航市场中的许多机卡和女儿卡产品使用FPGAs作为一个可适应的嵌入式计算平台,提供极快的数据速率,通过背板访问多个外设和卡。电信和网络仍然是一个广泛使用FPGA设计和开发的应用领域,由于更快的市场需求时间和相对容易的升级以适应标准和技术推出的变化。

今天的FPGA设计和开发

上述提到的领域并没有看到 FPGA 使用的减少。电信是一个值得关注的领域;例如,华为是世界上最大的 FPGA 消费者之一,他们甚至推出了一个“FPGA 云”平台,提供加速的云计算服务。还有一个华为云 GitHub 仓库帮助用户开始应用开发。FPGA 在他们的基础设施中的使用也促进了他们在其他电信公司之前推出 5G 服务的能力。今天,上述识别的相同优势正在将 FPGA 设计和开发推向两个领域:机器人技术和人工智能。虽然这两个领域紧密相连,但可以说人工智能是新 FPGA 设计和开发的一个更大的驱动力。

人工智能正在推动 FPGA 设计和使用

FPGA 领域的领导者预计,在更多硬件系统中实现人工智能将推动这些组件上硅使用的重大变化。这并不是说你不能在机器人技术或轻量级人工智能中使用MCU;通过 USB 或 PCIe 桥接连接的 AI 加速器模块的普及,展示了一种努力,以适应智能嵌入式系统的 MCU/MPU 开发者。然而,FPGA 是一个更加适应性强的平台,在这里,通过并行计算可以非常快速地执行推理计算;FPGA 织物可以定制以适应算法,而 GPU/MCU/MPU 中的顺序逻辑则不能。

在包括实现板载 AI 推理的高计算嵌入式系统中使用的较新组件之一是Xilinx 的 Zynq-7000 全可编程系列 SoC。该组件的运行速度高达 866 MHz,带有基于 ARM Cortex-A9 核的应用处理器。额外的接口,如千兆以太网、DDR、Flash、PCIe 和高 GPIO 计数,使得这个组件易于集成到边缘计算系统中。低速接口如 I2C 和 SPI 也允许 Zynq 与捕获模拟传感器数据或其他标准接口(CANBus、RS-485 等)的 ASICs 操作。

Xilinx 是 FPGA 上 AI 领域的领导者之一,他们提供了大量的开发者资源。Zynq 处理器的一个有趣发展是在 Zynq 上实现 Python,或者如 Xilinx 所称的 PYNQ。其他 FPGA 供应商正在扩展他们的产品线以与 Zynq 竞争,因此嵌入式 AI 开发者将有大量选项,使用 FPGA 设计进行设备上的 AI 计算。

使用 FPGA 的挑战

FPGA 对于在更高级应用领域工作的经验丰富的开发者来说是一个很好的平台。当标准景观、ASIC 解决方案景观和 MCU/MPU 能力不足或迅速变化时,FPGA 可能是新系统的更好选择。尽管 FPGA 在一系列领域取得了成功,但它们自身带来了一系列硬件和开发挑战:

  • 热管理:就像它们的MCU/MPU表亲一样,FPGA也可以是显著的热量生成器,这取决于组件的大小。这不是一个新挑战,尽管它因紧凑的高计算系统(如边缘计算)或高功率5G设备中的设计要求而变得更加复杂。我的一些客户考虑了涉及独特散热片或将系统与外壳结合在一起的散热策略。

  • 布局和布线:在高计算应用中,布局和布线任务仍然是一个挑战,其中专有供应商软件被映射到FPGA织物上。这需要时间,因为编译软件必须使用算法找到一个映射,以支持应用程序中所有逻辑功能。这在高性能计算和数据中心是一个挑战的应用领域。在AI中,当FPGA用于系统级任务以及推理/训练时,这也可能是有问题的。

  • 开发资源:FPGA开发者社区并不像ASIC + MCU社区或整个开源软件社区那样庞大。由于Arduino和ESP32等平台极受欢迎,MCU对于没有经验的开发者来说更容易开始使用。然而,FPGA供应商在为开发者提供资源方面做得更好,以便他们可以快速在FPGA上实现解决方案。GitHub上新的FPGA项目的数量也与MCU项目保持同步,如下表所示。

FPGA将来会是什么样子?

当前的FPGA大约有50%或更多的硅面积分配给IO,因为较旧的基于FPGA的产品需要通过多个接口与大范围的外设进行接口。随着重点更多地转移到像AI这样的高计算应用,不要惊讶于更多的硅面积被专用于AI计算块,可能伴随着演变的互连和灵活的运行时数据移动。异构集成也将融入FPGA SoC,其中AI块、GPU/TPU、高带宽内存和射频前端被组合成一个紧凑的单一封装。

尽管FPGA可以根据需要在FPGA织物中实现并重新编程ASIC功能,但它们仍然是ASIC基系统的绝佳补充。一个有意义的设计架构是将可能需要升级的所有功能放入FPGA,同时使用ASIC的标准化与简单的外设如传感器和数据总线接口。这无疑减少了FPGA设计时间,因为开发者可以专注于完善最终产品中所需的高计算特性。如果你想在智能嵌入式系统中使用这种类型的架构,你可能还需要几个其他组件:

当您需要为下一个FPGA设计寻找组件时,使用Octopart中的高级搜索和过滤功能。使用Octopart的电子元件搜索引擎时,您将能够访问最新的分销商定价数据、零件库存和零件规格,并且所有这些都可以在用户友好的界面中免费访问。查看我们的集成电路页面以找到您需要的组件。

通过订阅我们的新闻通讯,随时了解我们的最新文章。

 

 

 

 

 

相关资源

返回主页
Thank you, you are now subscribed to updates.