【原创】从MCU到FPGA:第3部分
和处理大多数MCU项目时一样,我打算从示例代码开始,然后通过各种示例搭建自己的项目。但是对于每一个例子,我发现越来越不熟悉,并且结果也越来越混乱。在这里代码被用来定义对象和调用函数,这在MCU里倒是很常见,但是有些定义是在高阶函数里进行的,而其他的则是在另一个地方。像往常一样,这些函数被用来执行一个功能或任务,但有一些函数要依赖于其他函数而另一些函数则是独立的。正如我试图对它们发表评论时所发现的那样,那些没有被直接调用的代码仍然是代码功能的关键。
我很迷糊。
我决定在YouTube上搜索“Intel FPGA Setup Cyclone V”来寻找示例和“Setup&Go”培训。当我浏览这些内容时,我发现一个共同的主题(图1):
看似不连贯的一组命令仍然有效,但似乎并不完整。
缺乏不支持FPGA的外部模块或组件。
有了这些观察,我回顾了更多设计样本和代码,并发现了英特尔Cyclone V和HPS FPGA架构显著的优势。
图1显示了HDMI命令集,其中包括一系列未被调用的代码。它们不是按顺序运行的,而是并行运行的。它们的功能很像回调函数,在HPS中如果有来自较高级别控制器的数据调用时,这些回调函数就会被激活。然后编译器就会提高向MCU传递信息的能力,反之亦然。在这两者之间需要做的就是协调定义和时间安排。
图1:HDMI命令集,其中包括一系列未被调用的代码。
项目流程如下所示:
+
2、Linux将OpenCV处理过程移交给FPGA。
3、Linux调整图像。
4、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开发转换的原因也已变得越来越明晰了。
请继续关注第4部分文章!
相关阅读:
【原创深度】从MCU到FPGA:第1部分
【原创深度】从MCU到FPGA:第2部分
原文链接:
https://www.mouser.cn/blog/introducing-an-mcu-guy-to-fpga-part-3-of-6
该发布文章为独家原创文章,转载请注明来源。对于未经许可的复制和不符合要求的转载我们将保留依法追究法律责任的权利。
贸泽电子微信号传播技术干货,发布此文章为独家原创文章,转载请注明如下信息:
出处:贸泽电子公众号
微信号:mouserelectronics
对于未经许可的复制和不符合要求的转载我们将保留依法追究法律责任的权利
欢迎关注获得更多信息
点击阅读原文,一起玩耍