您的位置 首页 数字

如何将MCU应用到FPGA中:具体操作(3)

如何将MCU应用到FPGA中:具体操作(3)-当我深入研究仅含有MCU的设计时,我发现了FPGA的其他优点:它需要很少的元件,而且可以使成本更低,性能更好的MCU获得非常好的效果。例如,仅含MCU的设计将需要更高的A52等条件来进行图像处理,此外还需要一个GPU来进行图形加速处理和更多的RAM来完成整个设计。设计完成后,最终结果仍然是一个锁定的,有限的可升级模块。有了FPGA,这些组件便可以被引入同一个芯片,所以产品级PCB设计更为简单,因为它需要较少的的组件接口,而且由此产生的模块仍然可以升级或优化。

当我开端这个项目的时分,我现已了解到FPGA的长处在于它能够将多种功用集成到单一的芯片中,并能够经过重装备而修正芯片功用。可是这种灵活性也让我想知道:我应该怎么处理FPGA与外部组件的接口以及接口连线等问题呢?由于FPGA的均匀规划周期为两到三年,而且考虑到比如USB 3.0到USB Type-C等通讯技能的更新换代,我很难了解FPGA怎么才干真实地带来长处。

和处理大多数MCU项目时相同,我计划从示例代码开端,然后经过各种示例建立自己的项目。可是关于每一个比如,我发现越来越不熟悉,而且成果也越来越紊乱。在这里代码被用来界说目标和调用函数,这在MCU里却是很常见,可是有些界说是在高阶函数里进行的,而其他的则是在另一个当地。像平常相同,这些函数被用来履行一个功用或使命,但有一些函数要依赖于其他函数而另一些函数则是独立的。正如我企图对它们宣布谈论时所发现的那样,那些没有被直接调用的代码依然是代码功用的要害。

我决定在YouTube上查找“Intel FPGA Setup Cyclone V”来寻觅示例和“Setup&Go”训练。当我阅读这些内容时,我发现一个一起的主题(图1):

1. 看似不连贯的一组指令依然有用,但好像并不完好。

2. 缺少不支持FPGA的外部模块或组件。

有了这些调查,我回忆了更多规划样本和代码,并发现了英特尔Cyclone V和HPS FPGA架构明显的优势。图1显现了HDMI指令集,其间包含一系列未被调用的代码。它们不是按次序运转的,而是并行运转的。它们的功用很像回调函数,在HPS中如果有来自较高等级控制器的数据调用时,这些回调函数就会被激活。然后编译器就会进步向MCU传递信息的才能,反之亦然。在这两者之间需求做的便是和谐界说和时刻组织。

怎么将MCU应用到FPGA中:具体操作(3)

图1:HDMI指令集,其间包含一系列未被调用的代码。

项目流程如下所示:

Linux HPS抓取图画。

Linux将OpenCV处理进程移交给FPGA。

Linux调整图画。

FPGA接纳原始图画信息,并将其编码为HDMI接口。

这是运用HPS和FPGA的完美示例。FPGA能够处理很多重复的运算并完结协议,而Linux和MCU则处理了程序的动态元素。这让我看到了FPGA的优势。

当我深入研讨仅含有MCU的规划时,我发现了FPGA的其他长处:它需求很少的元件,而且能够使本钱更低,功用更好的MCU取得非常好的作用。例如,仅含MCU的规划将需求更高的A52等条件来进行图画处理,此外还需求一个GPU来进行图形加快处理和更多的RAM来完结整个规划。规划完结后,终究成果依然是一个确定的,有限的可晋级模块。有了FPGA,这些组件便能够被引进同一个芯片,所以产等第PCB规划更为简略,由于它需求较少的的组件接口,而且由此发生的模块依然能够晋级或优化。

我头顶上的灯泡在几英里外都或许被看到。

将多功用集成到单个电路上,削减接口数量,或许依据线路修正功用等这些都是FPGA的优势,但它的长处远不止这些。FPGA改变了我为了高效完结使命而添加外部组件的方法:不是“按次序履行过程1,过程2,过程3”,现在我正在考虑这样完结使命:“履行过程A,B,C,而且当履行完B之后,就履行D”。现在,为什么要花时刻来研讨MCU到FPGA开发转化的原因也已变得越来越清楚了。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/347939.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部