在开发新的电子系统时,设计人员需要做出各种决定。最关键的一个决定是选择系统架构和实现的芯片。这些组件发挥着关键功能,当前的选择也十分宽范,因此错误的决定可能意味着市场上的失败。
如果你恰好读到这篇博文,那么你可能已经熟悉现场可编程门阵列(FPGA)以及相应的替代芯片类型。我认为对比一下FPGA 与其主要竞品——微控制器(MCU)之间的一些关键差异将有所裨益。
使用FPGA设计的主要优势
使用FPGA进行设计的最大优势是它们的可编程架构,设计人员可以对其快速编程(和重新编程),执行几乎所有功能。你可以将这种结构想象成许多微小的可编程逻辑“岛屿”(单元)漂浮在可编程互连的“海洋”中。每个逻辑单元都包含一些组合逻辑和一个寄存器,并且每个单元都可以通过编程来执行所需的功能。
同时,可编程互连可用于连接FPGA的通用输入/输出(GPIO)和所选逻辑单元的输入和输出(I/O),并将逻辑单元之间相互连接。此外,可以对GPIO组(bank)进行编程来支持不同的电气接口、输入阻抗和输出转换(边缘)速率。
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模块。
编辑:jq
全部0条评论
快来发表一下你的评论吧 !