Lattice Blog

Our system is going under maintenance starting May 25, 2024 at 7:00 AM Pacific and ending May 25, 2024 at 1:00 PM Pacific. During this window, the website may not be reachable. For immediate assistance, please contact techsupport@latticesemi.com.

Share:

FPGA相对于MCU的主要优势

Key_Advantages_FPGAs_vs_MCUs
Posted 09/24/2021 by Jay Aggarwal

Posted in

在开发新的电子系统时,设计人员需要做出各种决定。最关键的一个决定是选择系统架构和实现的芯片。这些组件发挥着关键功能,当前的选择也十分宽范,因此错误的决定可能意味着市场上的失败。

如果你恰好读到这篇博文,那么你可能已经熟悉现场可编程门阵列(FPGA)以及相应的替代芯片类型。我认为对比一下FPGA 与其主要竞品——微控制器(MCU)之间的一些关键差异将有所裨益。

使用FPGA设计的主要优势

使用FPGA进行设计的最大优势是它们的可编程架构,设计人员可以对其快速编程(和重新编程),执行几乎所有功能。你可以将这种结构想象成许多微小的可编程逻辑“岛屿”(单元)漂浮在可编程互连的“海洋”中。每个逻辑单元都包含一些组合逻辑和一个寄存器,并且每个单元都可以通过编程来执行所需的功能。同时,可编程互连可用于连接FPGA的通用输入/输出(GPIO)和所选逻辑单元的输入和输出(I/O),并将逻辑单元之间相互连接。此外,可以对GPIO组(bank)进行编程来支持不同的电气接口、输入阻抗和输出转换(边缘)速率。

Figure 1

FPGA的可编程结构能以大规模并行方式实现数据处理算法。例如,假设一个算法需要对一些相似的数据执行100次加法。FPGA可以配置为在同一时钟沿同时执行所有这些操作。要么在同一时间段内执行100次计算,要么以1/100的时钟频率执行相同数量的计算。

这种固有的灵活性有助于加快FPGA应用设计的上市时间,因为可以在最终确定系统设计的同时决定或更改集成的FPGA的功能。这种可重新编程的特性还能让开发人员通过软件更新来更新或更改FPGA的功能,从而延长FPGA(以及使用它们的系统)的生命周期。

使用MCU设计的主要局限性

MCU设计的思路不同。一旦硬件平台建立起来,芯片的功能就确定了,接下来就是软件开发人员的工作,他们使用C或C++等编程语言来完成他们的设计部分。随后,C/C++源代码传递给编译器,编译器生成将由MCU执行的机器代码。

虽然MCU非常擅长执行决策任务,但大多数MCU底层的冯诺依曼架构在执行许多数据处理算法方面效率低下。这是因为该架构的工作方式是从内存中检索指令、解码该指令、获取数据(如有需要)、执行指令并存储结果(如有需要)。当然,这只是高度简化的描述,但大抵如此。最终结果是MCU按串行顺序(一个接一个)执行操作。在MCU上实现DSP需要执行的大量操作还需要高速系统时钟,这会大大增加应用的功耗。

较早的系统架构一般同时使用MCU和FPGA,MCU提供决策功能,FPGA执行计算密集型数据处理。在更先进的系统架构中,工程团队则利用FPGA固有的灵活性和性能优势,完全取代MCU,并将决策和数据处理任务整合到FPGA中,大大减少了物理设计占用空间,同时降低功耗。工程师可以在FPGA中使用“软核”MCU来实现这种设计,MCU的功能在可编程架构中实现。FPGA还可能包含直接在芯片中以“硬核”实现的各种功能,包括SRAM、非易失性存储器、DSP、PLL、时钟管理器和SERDES模块。

FPGA使用入门

FPGA设计的传统方法是使用硬件描述语言(HDL),例如Verilog或VHDL,在寄存器传输级(RTL)描述设计。然后RTL源代码馈送到综合引擎(相当于“编译器”),生成用于对FPGA进行编程的配置文件。不熟悉HDL的开发人员,可以使用基于图形用户界面(GUI)的工具(例如莱迪思Propel™),通过拖放的直观界面描述设计,例如进行基于处理器的设计。此时,可以通过使用工具的GUI来选择并连接一个或多个处理器内核和相关外设功能,工具将自动生成RTL提供给综合引擎。

对于那些想要开始使用或尝试FPGA的人而言,莱迪思作为长久以来全球公认的小尺寸、低功耗、高性能FPGA供应商,是他们的理想选择。莱迪思Nexus™ FPGA平台基于28 nm FD-SOI工艺,与同类FPGA竞品相比,功耗降低75%,软错误率降低100倍。Nexus平台诞生了CrossLink™-NXCertus™-NXCertusPro™-NXMach™-NX FPGA系列产品,为开发人员提供了一系列针对应用优化的FPGA解决方案选择。

莱迪思还提供了一套直观易用的设计工具,包括Lattice Diamond®Lattice Radiant®。此外,还有Lattice Propel,这是一套完整的图形和命令行工具,可用于创建、分析、编译和调试基于FPGA的处理器系统的硬件和软件设计。

为了更轻松地使用我们的低功耗FPGA进行应用开发,莱迪思开发了模块化硬件平台、示例演示、参考设计、IP核、软件开发工具以及定制化设计服务,即莱迪思解决方案集合。这些产品有助于简化并加速基于FPGA的常见应用的开发,更好地服务于我们的目标市场。解决方案集合产品包括用于边缘AI/ML应用的Lattice sensAI™、用于嵌入式视觉的mVision™、实现工业自动化的Automate™和保障硬件安全的Sentry™

此外,莱迪思还与我们的官方培训提供商——莱迪思教育能力中心(LEC2)合作,提供丰富的培训计划,为开发人员提供创建基于莱迪思低功耗FPGA的应用所需的实践经验——包括最初的概念到实际的物理实现。这些培训将由经验丰富的FPGA开发团队开展,他们曾为各类市场设计应用,将在培训中为学员带来第一手的知识和经验。

我希望些信息对读者有所益处。如果您刚刚开始使用FPGA并希望了解更多信息,请务必查阅我们的《FPGA初探》博文和element14社区的《如何上手使用FPGA》网络研讨会(点击此处观看录像)。

Share: