0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何将MCU与FPGA进行配对达到提高系统效率的目的

电子设计 来源:郭婷 作者:电子设计 2019-03-21 08:39 次阅读

FPGA已经变得如此具有成本效益,因此它们越来越多地与MCU结合使用,以提高整体系统效率。用途包括在最小的电路板空间中添加额外的功能,为复杂算法的前端添加节能处理,聚合多个外部设备以卸载高性能MCU或作为使现有设计适应新的所需的“粘合”逻辑在接口要求方面,FPGA提供了标准MCU中常常缺乏的额外灵活性。本文将快速回顾一些最受欢迎的应用,其中FPGA和MCU“配对”,以展示如何通过降低功耗,减小电路板空间,提高处理性能或接口灵活性来提高系统效率,从而显着改善您的下一个设计。

FPGA作为MCU配套器件

您为设计选择的MCU多久没有完全具备您需要的所有接口通道?或许您对MCU的初始选择非常合适,但是出现了新的要求,因为您的最佳客户需要为其最新设计添加一些额外的接口。您可能可以使用更复杂的MCU,但这可能会增加显着的电路板空间(因为它仅在高引脚数封装中可用),功率增加(因为它只能提供比您真正需要的更多闪存和SRAM) )或者更高的成本(出于上述两个原因)。

解决这个难题的一种方法是通过在MCU旁边添加FPGA来规划对额外接口的需求。 FPGA可以轻松提供额外的接口,只需提供您需要的接口,同时限制电路板空间,成本和功耗的增加。实际上,与使用更复杂的MCU的选项相比,通常最终会减少电路板空间,降低成本并降低功耗。

例如,莱迪思iCE40超低功耗FPGA可在极小的2.078 mm×2.078 mm电路板占板面积内提供多达26个信号IO,并且由于这些器件是通过片上NVM配置的,您不需要额外的电路板空间用于配置设备。这些FPGA还有两个专用的I 2 C接口和两个专用SPI接口,具有大量可配置逻辑,可以根据应用需要添加更多接口(直到用完引脚)。莱迪思ICE5LP1K-SWG36ITR50的框图如图1所示。

如何将MCU与FPGA进行配对达到提高系统效率的目的

图1:莱迪思iCE5LP FPGA的框图。 (由Lattice Semiconductor提供)

该器件还具有高达80 kbits的嵌入式Block RAM,可用于接口FIFO和缓冲器,因此MCU可以等待整个数据包准备好进行处理。在将数据发送到MCU之前,DSP模块还可用于对原始传感器数据进行低级数据处理,作为预处理步骤。当FPGA可以在中断MCU之前智能地聚合数据时,可以大幅降低MCU功耗。此外,莱迪思的iCE5LP FPGA专为超低功耗应用而设计,核心电源静态电流仅为71μA。添加更多接口只需要额外的电路板空间或功率。查看您最喜欢的MCU与更高引脚数之间的当前价格差异,然后将其与Digi-Key网站上的莱迪思iCE5PL1K FPGA价格进行比较,看看可能还有哪些成本节省。

快速响应FPGA接口请求

使用FPGA配套器件时,快速响应FPGA的服务请求非常重要。例如,音频接口可能需要具有比传感器数据更高的优先级访问权,因为必须避免音频数据中的“停顿”或者用户体验可能显着降低。通常,能够支持各种中断优先级有助于提高FPGA伙伴的实用性,并进一步提高整体系统性能和功效。

有效使用DMA还有助于进一步卸载MCU并提高效率。例如,FPGA可能首先缓冲预处理原始数据的完整数据包,以减小需要存储和传输的消息的大小。 FPGA可以中断MCU并启动DMA传输,将整个消息移动到MCU存储器中。一旦DMA传输完成并且整个消息准备好进行处理,就可以中断CPU并开始对消息进行高级处理。

Atmel 32位AT32UC3A MCU,例如,有一个DMA控制器和一个中断控制器,两者都是可编程优先级。中断控制器图(如图2左侧所示)在右侧有一个优先级块,它为CPU产生中断级。优先级块选择具有最高优先级的中断,由与每个中断源相关的中断优先级寄存器(IPRn)中的中断级别字段定义。因此,可以在I 2 C端口上为较高优先级的源(例如实时音频接口)分配比低频传感器更高的优先级,以保证更快的处理。

如何将MCU与FPGA进行配对达到提高系统效率的目的

如何将MCU与FPGA进行配对达到提高系统效率的目的

图2:Atmel AT32UC3A MCU的中断控制器和DMA控制器框图。 (由Atmel提供)

AT32UC3A MCU的DMA控制器,其框图如图2右侧所示,连接到许多不同的外设,如DMA框图右侧所示。外设DMA控制器根据与每个外设相关的DMA通道号(外设由配置寄存器分配给通道,因此它们是完全可编程的)优先考虑每个外设DMA请求,其中较低的通道号具有较高的优先级。这样可以轻松地对DMA传输进行分组和优化,以实现最高效的数据传输。如果算法的某些部分支持一种类型的传输而不是另一种传输,则优先级甚至可以重新分配。

传感器融合进一步提高了系统效率

如前所述,FPGA可用于通过使用DSP技术预处理传感器数据。特别是,具有DSP模块的FPGA可以实现许多常见的滤波算法,例如有限脉冲响应(FIR)滤波器,无限脉冲响应(IIR)滤波器和快速傅里叶变换(FFT)。由于这些硬件模块可以串行或并行方式运行,因此您可以根据带宽和功率要求构建滤波器以实现最佳配置。例如,如果需要过滤多个传感器输出,FPGA可以为每个传感器使用单独的滤波器块(如果带宽要求足够高),或者使用单个滤波器块并在多个传感器之间复用(如果带宽要求是足够低)。

除了对原始传感器数据进行预处理外,FPGA还可以智能方式组合来自多个传感器的读数,以进一步降低MCU的处理要求。在通知MCU需要处理之前,本地组合多个传感器读数的传感器“融合”算法可以显着提高系统效率。例如,结合心率,温度和排汗读数以及将组合与FPGA内的设定警报水平进行比较,可以为MCU提供比原始数据更有价值的信息

MCU通常需要但是,要自己做一些数据处理。它不能将所有内容都留给FPGA。幸运的是,即便是廉价的MCU现在也具有DSP处理功能,可以有效地处理大量数据。例如,着名的Microchip PIC MCU系列具有面向DSP的系列成员,如DSPIC 33EP(例如DSPIC33EP32MC202),其工作速率高达70 MIPS,一些指令可同时执行多达8个操作。面向过滤器的指令可以受益于40位累加器,以提高定点精度。 DSPIC33EP中专用硬件DSP引擎的框图如图3所示。

如何将MCU与FPGA进行配对达到提高系统效率的目的

图3:Microchip DSPIC33 MCU中的DSP引擎框图。 (由Microchip提供)

DSP引擎包括一个17 x 17乘法器/缩放器,具有零回填和符号扩展,可创建40位结果。除法运算通过使用19次迭代的重复循环的单独硬件除法块实现,并且可中断以减少最坏情况的中断延迟。桶形移位器有助于为40位加法器和双40位累加器正确对齐数据。这种丰富的面向DSP的处理硬件是常规ALU的补充,它提供16位加,减和位操作。凭借这一系列广泛的数据处理硬件,甚至可以非常有效地支持复杂的操作。

用于硬件加速和基于MCU处理的SoC FPGA

FPGA与MCU是FPGA的良好伴侣供应商甚至将MCU伴侣放在他们的设备上。当这些片上系统(SoC)FPGA用作高端MCU的配套产品时,更复杂的功能可以转移到FPGA上。一个常见的例子是FPGA处理大部分系统接口,不仅使用标准外设,还使用外部存储器。由于SoC FPGA具有重要的片上存储器,用于管理数据缓冲和处理通信帧的MCU以及外部存储器控制器,因此您可以获得实现完整通信通道控制器,桥接器或聚合器所需的所有功能。这可以让主MCU管理更高级别的功能,例如人机界面(HMI),过程控制和服务质量优化。

一些SoC FPGA具有额外的功能,可以卸载更低的功能来自主机MCU的电平处理。例如,Microsemi SmartFusion2 SoC FPGA系列(M2S050-FGG896的框图如图4所示),不仅具有完整的ARM Cortex子系统,而且还具有重要的片上Flash NVM和SRAM模块作为MCU的一部分子系统。这些存储器可与处理器结合使用,作为代码和数据存储,片外DDR控制器作为大型缓冲存储器,PCIe和以太网控制器作为FIFO存储器。智能DMA控制器可以在不中断处理器的情况下管理大部分数据传输。

如何将MCU与FPGA进行配对达到提高系统效率的目的

图4:Microsemi SmartFusion2 SoC FPGA框图。 (由Microsemi提供)

SmartFusion2 SoC FPGA还具有片上安全硬件,可用于保护远程代码更新免受黑客攻击和其他安全威胁。大型片上闪存可用于存储受保护的引导代码,这使得支持安全引导操作成为可能,即使对于没有本机安全功能的主机处理器也是如此。大量的可编程结构可以提供定制的硬件加速,以进一步从主机控制器卸载处理。例如,在底盘控制系统中,可编程结构可用于传感器数据的DSP预处理,传感器融合组合电压,电流和温度读数,机箱风扇控制系统温度的电机控制,控制台接口,本地诊断监控和控制,或通过PCIe桥接到其他控制平面功能。使用SoC,FPGA伙伴实际上可以承担比主机更多的处理,在作为主要参与者的MCU和仅作为辅助支持角色的FPGA之间切换传统角色。

结论

有许多应用,其中MCU和FPGA配对,可以通过更低的功耗,更小的电路板空间,改进的处理或更高的灵活性来显着提高系统效率。了解如何通过在这两个设备之间分配功能来实现某些改进可能是您下一次设计成功的关键。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1602

    文章

    21309

    浏览量

    593130
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16011

    浏览量

    343545
  • 控制器
    +关注

    关注

    112

    文章

    15214

    浏览量

    171149
收藏 人收藏

    评论

    相关推荐

    labview中如何将如何将时间精度提高

    请问诸位大神:labview中如何将如何将时间精度提高?就是像wait函数的精度是ms,能否使一个循环的时间比ms更短呢?
    发表于 05-20 20:04

    如何将FPGA连接到Matlab?

    你好我是FPGA的初学者。我正在使用Nexys 4 Artix-7板。它有USB-UART桥。我有兴趣在FPGA和Matlab之间发送和接收数据。请解释一下,如何将FPGA连接到Mat
    发表于 11-05 08:19

    如何将DAC与FPGA接口?

    你好,如何将DAC与FPGA接口我需要一个小小的教程。谢谢
    发表于 03-30 10:34

    如何提高VLD的吞吐量和执行效率

    本文讨论一种新型的VLD解码结构,它通过并行侦测多路码字,Buffer中的多个可变长码一次读出,这将极大地提高VLD的吞吐量和执行效率。然后采用FPGA对这种并行VLD算法的结构
    发表于 04-28 06:08

    如何将MCUFPGA进行配对

    FPGA已经变得如此具有成本效益,因此它们越来越多地与mcu结合使用,以提高整体系统效率。用途包括在的电路板空间中添加额外的功能,为复杂算法
    发表于 11-01 08:59

    提高MCU设计效率的方法

    MCUs扩散到越来越多的权力约束的设计,加工效率成为提高系统设计的关注。在更小的功率下获得额外的处理能力的驱动器不仅在电池操作的产品中是重要的,而且,越来越多地,功率也被限制在许多“插件”模块中
    发表于 02-08 07:45

    FPGA企业内训是什么 最终需要达到什么目的

    定制方案,并且上门来进行现场的培训。 最终达到目的  一次成功的FPGA企业内训应该如发起人最初所想的那样,顺利的解决之前发现的某些问题,所以在明德扬的导师还没有来临的时候,就要先把这
    发表于 02-17 09:35

    怎么提高MCU在运行过程的中的代码执行效率

    怎么提高MCU在运行过程的中的代码执行效率
    发表于 10-12 07:07

    MCUFPGAs提高系统效率

    FPGA已经变得如此有效,他们越来越多地用于连接微控制器来提高系统的整体效率。使用包括在一个最小的电路板空间添加额外功能,添加高效处理复杂算法的前端,聚集多个外部设备,将高性能单片机或
    发表于 05-25 15:00 12次下载
    <b class='flag-5'>MCU</b>对<b class='flag-5'>FPGA</b>s<b class='flag-5'>提高</b><b class='flag-5'>系统</b><b class='flag-5'>效率</b>

    如何将MCU应用到FPGA中:关于FPGA(1)

    最近,我接手一个项目,这个项目不仅要求我使用FPGA,而且还要求我使用功能更强大的ARM。这都是我从未接触过的领域。在这个系列博客中,我将介绍我是如何将自己现有的MCU知识和经验运用到FPGA
    发表于 05-08 15:41 3647次阅读

    如何将MCUFPGA进行配对达到提高系统效率目的

    或作为使现有设计适应新的所需的“粘合”逻辑在接口要求方面,FPGA提供了标准MCU中常常缺乏的额外灵活性。本文将快速回顾一些的应用,其中FPGAMCU
    发表于 03-03 16:44 504次阅读

    如何将MCUFPGA进行配对达到提高系统效率目的

    FPGA已经变得如此具有成本效益,因此它们越来越多地与mcu结合使用,以提高整体系统效率。用途包括在的电路板空间中添加额外的功能,为复杂算法
    发表于 10-25 18:21 15次下载
    <b class='flag-5'>如何将</b><b class='flag-5'>MCU</b>与<b class='flag-5'>FPGA</b><b class='flag-5'>进行</b><b class='flag-5'>配对</b><b class='flag-5'>达到</b><b class='flag-5'>提高</b><b class='flag-5'>系统</b><b class='flag-5'>效率</b>的<b class='flag-5'>目的</b>?

    如何将MCUFPGA进行配对达到提高系统效率目的

    FPGA已经变得如此具有成本效益,因此它们越来越多地与mcu结合使用,以提高整体系统效率
    发表于 02-08 16:56 0次下载
    <b class='flag-5'>如何将</b><b class='flag-5'>MCU</b>与<b class='flag-5'>FPGA</b><b class='flag-5'>进行</b><b class='flag-5'>配对</b><b class='flag-5'>达到</b><b class='flag-5'>提高</b><b class='flag-5'>系统</b><b class='flag-5'>效率</b>的<b class='flag-5'>目的</b>?

    如何将MCUFPGA进行配对达到提高系统效率目的

    本文将快速回顾一些的应用,其中FPGAMCU配对”,以展示如何通过降低功耗,减小电路板空间,提高处理性能或接口灵活性来提高
    发表于 02-08 17:06 7次下载
    <b class='flag-5'>如何将</b><b class='flag-5'>MCU</b>与<b class='flag-5'>FPGA</b><b class='flag-5'>进行</b><b class='flag-5'>配对</b><b class='flag-5'>达到</b><b class='flag-5'>提高</b><b class='flag-5'>系统</b><b class='flag-5'>效率</b>的<b class='flag-5'>目的</b>

    微控制器配对FPGA提高系统效率

    有许多应用,其中的MCU和一个FPGA配对在一起,可以显着地经由较低功耗,减少电路板空间,提高了处理,或增加的灵活性提高
    的头像 发表于 11-03 14:48 163次阅读