对连续HW-SW集成

增加的复杂性和异质性是促使新方法,可以避免意外的设计周期。

受欢迎程度

软件运行的硬件只是一样好,随着系统复杂性的增加,软件是落后的。

弥合这一差距的方法是提高方法开发软件的。包括确保更新验证和测试设备,才被赶走添加同样的详细检查,芯片制造商用于开发硬件在过去。

试图改变软件开发进一步离开并不是一个新想法,当然可以。许多方法已经开发多年来解决这个问题。敏捷软件方法由池为例,试图减少错误的努力工作同时在两个或两个以上的软件开发人员的代码。持续集成,与此同时,从不同的角度解决了问题。在本质上,代码检查到一个共享库或持续发展分支,然后验证了频繁的自动化构建提前发现问题。

“越来越多的开发团队使用持续集成来简化整个开发过程,并避免不愉快的惊喜在集成阶段的发展,“沃伦Kurisu说,在嵌入式产品管理部门主管导师,西门子业务。“基于模型设计的方法支持的过程做的大部分工作预先通过模拟和自动代码生成。”

持续集成,开发数字双与真正的机器,同时理想从最初的概念。方法还允许开发团队工作更加孤立的团队,持续集成的概念可能适用的系统,成为一个“何时”的问题代码准备集成到系统中。

”这种方法鼓励持续集成的模型,因为方法使设计的验证,并允许开发人员来验证他们的代码和测试系统配置与数字双模型、“Kurisu说。“作为一个简单的例子,考虑Linux进程。该建筑设计允许应用程序开发人员创建应用程序在桌面开发系统,只要他们坚持Linux编程模型,这些应用程序可以集成在最后阶段,甚至后加载系统部署。如果系统架构师需要更严格的分离模型,他们可以使用独立的执行环境,如Linux容器或集装箱码头工人。这个模型不仅对Linux。实时操作系统包括一个过程模型,允许使分离就像Linux进程。”

一旦代码运行在进程或分区可用,它可以包含在持续集成流。虽然这可能看起来像一个明显的步骤,它可以迅速失控的混合异构组件。

“例如,把Xilinx UltraScale + MPSoC一体四臂Cortex-A53核心,Cortex-R5核心,和一个FPGA结构,与多个功率飞机使功能分离,“Kurisu说。“希望多个开发团队编写代码SoC-one核心团队开发Linux应用程序,另一个团队开发安全应用程序的实时内核,和另一个实现算法的FPGA结构。在架构上,每一个应用领域可能通过定义接口进行通信。尽管这些个人团队可能使用持续集成方法构建的代码运行在他们的核心,集成的主要部分开始一旦所有的那部分系统是可用的。在这里,持续集成的问题与当代码准备完整系统集成的问题。”

潜在的问题
复杂性一直稳步增长,在某种程度上是因为没有人确切知道需要什么样的芯片或功能的一大片的新兴市场,比如虚拟/增强现实、汽车、医疗、工业物联网更深的学习。通常的做法是把多个处理器类型和功能到一个芯片上,因为这是一种更廉价的替代方案比试图把一切都成一个单一的ASIC,并与软件,然后粘在一起。

“最终的配置创建基于目标市场或客户的需求,”博Zalewski说,总经理Aldec的硬件部门。“可扩展性的子系统允许您快速增长的规模和复杂性。这不是一个问题规模从双核到四核,这些天,例如,但它可能是一个问题要赶上合适的工具。此外,项目的硬件部分不再是主导元素。该软件层添加到项目很大的复杂性。所以不是只有晶体管的数量。这也是对目标函数本身。”

直接影响整个系统的质量,最终是一个测量的各种方法用于创建系统的有效性。

“当你看质量的挑战是,不仅仅是芯片的质量,”说,主任模型技术手臂。“这是整个系统。这创建了一个分割问题。有你关心的事情在每一个设计,但是对于汽车、工业和企业计算这些都是不同的。一些涉及到不同的硬件。其他涉及到不同的应用程序相同的硬件。如果你需要文档的处理安全问题,一个解决方案在这个空间是关于软件过程以及底层硬件。质量只是一样好你可以证明这一点。”

最小化痛点
无论多么好的方法,不过,事情总是错误的。这里的目标是最小化末尾的惊喜,但什么都不会完全消除它们。

“当你编写应用程序,您真的要运行它们真正的目标,因为你可能没有正确的内存分配,或者你可能有二进制只读库和符合他们只能在一个手臂,因为很多人试着在x86嵌入式系统测试,”说,公司的首席执行官治之软件使用模拟器下连续运行的代码。“詹金斯,一个开源的自动化服务器,经常提到的,所以当代码是感动,它可以运行在手臂,MIPS、瑞萨和得到一个,“是的,它通过,在几分钟内没有任何的管理工作。与詹金斯你可以说,‘这是我的机器。我有4台机器你可以运行测试,和其他人们可以共享的资源。它甚至可以简化最简单的程序。即使你有一个项目与一个文件,这是一种算法,它允许您构建,很简单,一点点的自动化,这样当你改变它,它完全测试它对你和你有记录。是的,你必须学习如何产品和詹金斯作品或模拟器是如何工作的,但对于几千美元你可以可以提供非常有效的系统编译、构建、测试和验证,这样即使在小型项目。”

面临的挑战是能够与嵌入式系统测试它,这就是一个坚实的方法进入重点。

“我们生产的软件工具,允许人们开发软件,”艾伦·沃森说,MetaWare产品经理Synopsys对此。“例如,我们的客户拿我们的工具,并使用我们的工具编写嵌入式软件。但是我们的工具软件。有一些差异,但在一天结束的时候我们都是写软件,它是相当复杂的软件。在我们小组中,我们使用持续集成。我们没有看到一个替代选择。我们有多个开发人员编写软件的最终作为一个产品,但他们都是在不同的东西。通常,他们所有的工作的软件他们会做一些测试在单元测试,当他们准备好了他们会检查到软件的主流开发分支。”

并不是每个人都同意这个概念,不过。格雷厄姆·贝尔,负责营销的副总裁Uniquify认为,应把重点放在持续而不是持续集成。

“连续不断没有休息,和之间的持续意味着暂停活动,”他说。“当然,对嵌入式软件集成工作经历一个循环integration-testing-revision直到功能蔓延结束或错误计数签字时的水平。这就是在这个过程中有一个暂停。这种集成回路发生一次又一次的设计从一个硅虚拟样机硬件原型最终硅产品的消费者。一些人也许会说,这些阶段的集成现在重叠,因为各种设计工作的设计团队需要知识尽可能早地加速批准的抽象级别。如果是这样的话,那么我们可以说这些同时努力领导持续集成的嵌入式软件。”

这不仅仅是hair-splitting定义。它影响的基本方法。但是排队的公司数量的不断持续增长与持续集成。

首席执行官Sanjay皮莱奥氏体回火设计系统,认为持续集成是实现最佳上市时间的唯一途径。“当前复杂的soc和他们的开发时间表不能意识到使用一个串行硬件固件和软件的开发方法。工程集团现在必须包括嵌入式软件硬件开发人员和设计师,他们经常超过硬件同行。他们开始在这个项目在一起,并肩工作在整个项目周期。”

但随着异构元素设计数量的继续扩大,这只是一个选项简化了开发过程。

“人们可能会争论说,今天的先进的软件和硬件会妨碍对持续集成的需要,“导师的Kurisu说。“基于模型设计实际激励方法,实际上创造了利用持续集成方法。”



留下一个回复


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

Baidu