首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何了解硬件/软件协同设计对特定应用是否有用?

如何了解硬件/软件协同设计对特定应用是否有用?
EN

Stack Overflow用户
提问于 2011-07-29 22:27:54
回答 5查看 448关注 0票数 2

下个学期我将进入最后一年(电气和计算机工程),我正在寻找嵌入式系统或硬件设计的毕业设计。我的教授建议我搜索当前的系统,并尝试使用硬件/软件协同设计来改进它,他给了我一个“自动车牌识别系统”的例子,在这个系统中,我可以使用VHDL或verilog的专用硬件来使系统性能更好。

我搜索了一下,发现一些youtube视频显示系统工作正常。

所以我不知道是否还有改进的空间。如何知道某些算法或系统是否很慢,是否可以从codesign中受益?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-01 05:35:12

如何知道某些算法或系统是否很慢,是否可以从协同设计中受益?

在许多情况下,这是一个架构问题,只有通过大量的经验甚至更多的系统建模和分析才能得到答案。在其他情况下,信封背面的5分钟可能会显示专门的协处理器增加了数周的工作,但没有性能改进。

任何现代移动电话处理器都是一个很难处理的例子。看看TI的OMAP5430。请注意,它至少有10个不同类型的处理器(仅PowerVR块就有多个执行单元)和数十个完全自定义的外围设备。任何时候你想要从‘主’CPU卸载一些东西,潜在的总线带宽/硅面积/上市时间成本都必须考虑在内。

一个简单的例子就像你的教授提到的那样。DSP/GPU/FPGA将执行图像处理任务,如2D卷积,比CPU快几个数量级。但是像文件管理这样的“内务”任务是不能用FPGA来处理的。

在你的情况下,我不认为你的教授期望你做一些“真实”的事情。我认为他想要的是您对CPU/GPU/DSP擅长什么,以及定制硬件擅长什么的理解。您可能希望寻找一个有趣的利基问题,例如those in bioinformatics

票数 2
EN

Stack Overflow用户

发布于 2011-07-29 22:42:40

我不知道codesign是什么,但我以前做过一些verilog;我认为简单的图像(或信号)处理任务很适合这种嵌入式系统,因为它们很多时候都涉及到实时处理大量数据(最好是SIMD操作)。

图像处理任务通常看起来很简单,因为我们的大脑为我们做了令人难以置信的复杂处理,但实际上它们非常具有挑战性。我认为这个挑战才是重要的,而不是如果之前实现了这样的系统。我会去实现Hough变换(首先是直线和圆,而不是广义的-它被认为是图像处理中一种很慢的算法),并进行一些实时分割。我确信,随着它的发展,这将是一项具有挑战性的任务。

票数 2
EN

Stack Overflow用户

发布于 2011-08-01 20:27:37

分区时要做的第一件事是查看数据流。绘制一个方框图,说明每个“子算法”的适用位置,以及进出的数据。任何时候,当您必须将大量数据从一个域移动到另一个域时,开始寻找将问题的一部分移动到拆分的另一边。

例如,考虑一个图像处理流水线,它先进行边缘检测,然后与阈值进行比较,然后进行更多的处理。边缘检测的输出将是(比方说)16位带符号的值,每个像素一个。最终的输出是一个二进制图像(一个位集合指示“有效”边缘的位置)。

一种(显然很幼稚,但它很有道理)的实现可能是在硬件中进行边缘检测,将边缘图像发送到软件,然后对其进行阈值处理。这涉及到“跨越分水岭”传送16位值的整个图像。

更好的是,在硬件上也要做阈值。然后你可以移动8个“1位像素”的/byte。(或者甚至运行长度编码)。

一旦你有了一个合理的带宽分区,你就必须找出适合每个域的块是否适合那个域,或者考虑一个不同的分区。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6874666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档