连接硬件和软件

长期以来,第1部分:不同的目标和方法分为硬件和软件工程团队。一些公司已经解决了这些问题,其他工作。

受欢迎程度

由于嵌入式系统的出现有之间的斗争硬件工程师试图理解软件同行的心态,反之亦然。斗争是活着,今天每个人都要花费钱。

这个分歧是充满激情,领土权和误解。延迟tapeouts,创建了错误和低效率,花时间和精力去解决,这使得芯片开发比它应该更加困难。解决方案在过去已经给工具,至少承认对方的贡献,但继续争论是否共同点可以牢固确立之间的硬件和软件工程师。

研究员克里斯•再生草和IP Group的首席技术官节奏认为,它不仅可以做,但必须做到的。因为成本上升添加任何新特性,然后第一次犯错必须修理它,这两个世界需要桥接更有效。

“芯片设计中尤其如此,但很多也是真的,甚至更具延展性建立董事会或fpga,“再生草说。“硬件人不得不说,‘好吧,如果我要做一次,这是完全正确的。它会花费我很多钱原型,和测试任何一个版本的它我将必须非常小心,在我所做的,而一般。我要等一些指标来衡量平方毫米,毫瓦,制造美元——这些实现成本。这不是完全真实的,因为毕竟,软件成本存储,和有约束,。但通常是硬件的家伙直接面临这些约束和硬件的人面临死刑是否出错。有很多岌岌可危,这让他们小心多疑。”

另一方面,软件工程师通常在更加可塑的环境中工作。“短航天飞机的设计,有一种感觉,你可以不断的原型,”他说。“你可以在几分钟内做出改变。如果你需要发送一个补丁,这不是世界末日。你可以有一个更温和的方法质量问题,和一个更大的溢价放在创新和建立真正的复杂系统,而迅速。这些东西然后回波通过你的所有其他问题处理的重用,决策过程中,指标更好的设计。硬件的人一个更好的设计是更小、更快的在兆赫等一些非常通用术语,和更高质量的没有bug或很长时间间隔时必须修改它。但他们也正在建设上面的移动平台的因为他们的指标,成本和加速,这些都是每两年要改变为新的基础半导体技术出现。所以他们知道他们有一个修订周期,但他们的修订周期测量,而软件的家伙说,“你今天完成了多少构建吗?”“

这是加剧了“分而治之”的方法来设计,这是在软件和硬件。首席执行官西蒙Davidmann治之软件软件工程师,往往集中在一点一点的软件水平,他们不认为这是整个系统的一部分。

”这一观点的一个例子就是他们做测试的方式,”他说。“如果你看看人们做的东西一个GUI,例如,他们会做单元测试整个方法是持续集成和测试。在Java世界中他们所做的JUnit测试。编译时,就会运行一些测试。在每个模块,他们建立一个小的测试工具,测试模块。所以他们有单元测试的概念,当你检查什么,离开这。但我发现他们真的不做系统级测试。与一个GUI的东西的一个例子。他们不设计构建GUI自动化测试的一种方式,所以他们最终人们不得不按钮模拟,或产品,物理的表现。”

硬件工程师,相比之下,已经很好的了解他们的设备在整个世界。“如果是一个芯片,他们可以点对点测试,但是如果是一个产品,他们做一些循环中的,比如当它在汽车、software-in-the-loop, system-in-the-loop或半,“Davidmann说。“他们[开始]大考长凳;他们的模型,物理模型的位的汽车,他们可以把位和测试它们。硬件的世界,他们往往有一个更大的系统,而在软件世界中,他们往往是集中在模块中,单位,等等。”

成功的企业已经认识到这些问题并尽可能创建的桥梁。“有一个系统团队负责带在一起,因为现在所有的硬件模块软件,也所以事情并不孤立在硬件软件。事情越来越集成,”他补充道。

但它仍然不是一个自然的啮合的想法。从一开始,每个团队有不同的事情需要担心。

“如果你正在设计硬件,最后你只有一个,也许两个镜头做适合一个特定的项目,”汤姆德舒特说,硬件原型产品营销主管Synopsys对此。“如果你的SoC没有正确的性能,它太大了,或者没有正确的电力消耗,这就是这一代的SoC。现在你需要试着让它与下一个。如果你失去了几套接字在移动,所以竞争力,它有着巨大的影响。的心态进入非常严格的设计流程,指定的东西,有非常具体的做事方式,有优势的领导对一个具体的目标。但它也有缺点,他们不是非常灵活的仅仅因为你知道你不能搞砸任何方式,设计路径,因为影响是巨大的。”

在软件方面,这是不一样的。“你有这更敏捷的方法,”他说。“最后如果不工作你就更新它,你上传一些新的软件。对我来说,那里的基地开始软件的人看硬件人说他们太固执,不愿意接受自己的想法。硬件家伙看看软件的家伙说,“你们不明白它是设计硬件。这是一个困难的事情。如果我们必须衍生版本,如果我们不做对了,就是这样。我们投入了数千万美元,我们没有得到任何回报。“来自这一背景下,这就是为什么他们得不到对方。这是一个完全不同的心态,每个人都是正确的在他们自己的背景,但如果你看看现在有一个严格的碎片在一起,一个敏捷的,您需要试着将它们映射到彼此冲突。”

换句话说,软件工程师正在寻找特性和功能添加到真正利用硬件的功能,在硬件开发人员只看设计,包括什么是必要的。他们的重点是如何降低成本,投入最少的资源,把只在需要的系统资源,没有看的复杂性或充分考虑广度或需要大量的软件,指出安德鲁•Caples高级产品经理,嵌入式产品导师图形。“你有这种平衡,并不总是平衡从软硬件的角度。”

灵活性在软件方面肯定有它的优势。“在硬件方面,当硬件工程师必须设计一个SoC他们有一个特定的市场,他们正试图解决或者他们正在推广,”费利克斯鲍姆说,产品经理为嵌入式虚拟化导师图形。“他们必须有界的芯片的物理限制,这意味着他们只能装这么多的IP。他们必须优先考虑并决定他们可以放多少核心芯片,有多少串行端口,以太网有多少,有多少IP块他们可以在这个设备使它足够通用,让它足够有趣和竞争为客户选择和使用。当你看到从软件的角度来看,我们有一个非常特殊的机会。我们可以选择相同的设备和使用它作为一个汽车应用程序,使用它作为一个医疗设备,把它作为一个工业设备。每一个这些市场将有自己的需求,自己的配置,自己的用例,我们需要这个静态件硬件人员创建和模具来匹配我们的特定的需求和用例。有些人将一个特定的部分,使用它在安全至上的设备,而其他人只是创建一些一般性的嵌入式设备,监控温度在房子里,像一个恒温器。严格的要求大大不同。”

请检查
不过,所有这一切是如何——软件,硬件,系统内部的相互作用而改变双方正在验证?

“即使在单个域,疼痛点实际上是关于集成,“Sudhir Sharma说,全球营销和战略总监有限元分析软件。“当你将子系统联系在一起,这些事情不工作,你想知道为什么。“我创造了这一块,我测试,但是现在你把它和别的东西一起,它不工作。这就是虚拟样机和仿真的重要性也扮演着关键的角色。仿真工具允许您做的是采取更高的抽象层次,你不欠,无论是软件代码或硬件代码。想象一下你有一个画布,你已经有了所有这些子系统。在一个硬件/软件的例子,你有这个工作软件,在硬件,但你不想要考虑系统分区如果你是一个设计师。你想做什么作为一个系统设计师首先是获得正确的算法。我有正确的想法,这个东西真的会奏效吗?对分区的在你走之前属于什么软件和什么属于硬件,你只是想让这个概念工作。 A simulation environment allows you to do that. Then, depending on the maturity of the tools that you are looking at, you could find a platform that allows you to now segment a design to say what needs to go in software, and what needs to go in hardware.”

所有上述还买到前提,大多数硅硬件设计从软件团队今天接受输入,德鲁Wingard,首席技术官超音速,就不能同意。“虽然每个人都说我们应该合作设计的硬件和软件,仍然不会发生。还是结束,除非客户回来和要求,大多数硅供应商对待他们的软件团队几乎就像他们是一个祸端。”

他说这个点一直沮丧他出类拔萃,因为例外是当SoC设计的硅系统公司,而不是公司。“然后,你看到一个更开明的观点,当人支付芯片设计是那些想船合并的终端设备的软件和硬件。他们看到一个非常大的软件的价值。事实上,他们中的许多人有一个非常不同的观点,硬件是一个祸端让软件运行他们想要的方式。观点几乎是阴和阳,但他们彼此并不高兴。他们几乎截然相反。”

优雅地弥合这两个世界是罕见的。“你在公司看到的一个地方,可以花费至少在每个迭代的平台——单片机公司,“Wingard说。“单片机公司必须提供一个高级软件级别的向后兼容性。传统上他们提供软件给客户,但他们进入的要求时,必须保护客户的现有软件的投资去了新版本。+,他们有更小的硬件设计团队,所以他们不能承受修改。当他们长大了,开始提供更广阔的软件,在诸如ide,图书馆,和有趣的参考板,所有这些东西,我们看到很多制造商运动背后的支持技术的东西——他们一直提出这个想法的向后兼容的保护这些api。如果我把其他方法,我说如果我是一个大系统公司认为芯片设计是一个重要的元素,因为他们没有可用的或我有一些分化技术之类的,然后你看到一个更开明的观点。然后,软件团队更与硬件集成团队很多这些决策是集体或有时甚至软件家伙决定硬件人他们要做什么。”

鉴于上面所有的证据,显然仍有一个巨大的战斗在硬件和软件团队之间的斗争。成功的公司是那些掌握弥合差距以及一个亲密的了解如何最好地方法无论市场机遇后他们会。


本系列的第二部分将检查硬件和软件工程团队如何看待和IP重用方法考虑到今天这是系统设计的关键部分。



留下一个回复


(注意:这个名字会显示公开)

Baidu