系统与设计
的意见

使用虚拟原型的持续集成和部署流

为嵌入式程序员提供了开发、集成、测试和调试代码的前硅平台。

受欢迎程度

就在不久前,嵌入式软件开发人员还在寒冷的培养实验室里挤在一起,在最终系统的物理原型上集成和测试他们的代码。除了不便之外,这种方法还有两个主要问题。在一个大型软件团队中复制原型的成本是相当大的,并且必须维护和管理这些系统。为了最大限度地利用硬件,程序员轮班工作变得很常见,这加剧了不便。转移到高度网络化的系统意味着程序员可以在他们的办公室而不是实验室工作,但这并没有降低相关的成本。

当嵌入式处理器从离散部件转移到片上系统(SoC)设备时,物理原型的最大问题出现了。定制芯片需要几个月的时间来设计和制造。物理原型在芯片从晶圆代工厂运来之前无法构建,这对于开始软件集成和测试来说在项目进度中已经太迟了。嵌入式编程是基于soc的系统计划中的主要任务之一,因此上市时间(TTM)被推迟了。此外,在硬件和软件一起运行之前,可能不会发现细微的设计错误。如果必须在生产前翻转芯片来修复这些错误,TTM将进一步下滑,项目成本将激增。

避免这些问题的唯一方法是为嵌入式程序员提供一个pre-silicon平台来开发、集成、测试和调试他们的代码。虚拟原型,即SoC和硬件系统的抽象软件仿真模型,提供了这样的解决方案。它们包含用于嵌入式处理器的快速指令集模拟器(ISSs),能够执行将在生产系统中运行的相同代码。虚拟原型可以与虚拟和真实的I/O设备交互,这是系统测试的重要组成部分。它们还可以更好地测试异常情况,包括注入可能对实际硬件造成损害的虚拟故障。它们可以在嵌入式软件团队中部署,而无需构建和维护物理原型的成本。

最重要的是,虚拟原型缩小了TTM。由于虚拟原型不需要包含许多实现细节,因此可以与SoC的寄存器传输级(RTL)硬件设计并行开发和使用。这使得真正的硬件-软件联合开发成为可能,并极大地“左移”项目进度。设计和嵌入式代码之间的不一致被及早检测,大大减少了由于功能问题而导致芯片转向的机会。

在硬件虚拟原型出现的同时,软件开发也在经历着自己的演变。现在许多编程项目都使用持续集成(CI),在这种方法中,经常将代码更改检入主存储库(有时一天多次),并立即重新构建和测试软件可执行文件。CI方法与仅在指定检查点合并所有程序员代码的传统做法形成鲜明对比。到那时,代码的各个部分可能已经有了明显的分歧,导致了一个具有挑战性的集成步骤和大量调试工作来整理问题。CI可以立即揭示这些问题,从而可以快速轻松地解决这些问题。CI有时与持续部署(CD)相结合,在这种情况下,通过所有自动化测试的成功构建将被发布到所有系统的生产环境中。

虚拟原型的嵌入式代码在很多方面都是典型的软件项目,因此SoC团队也希望从CI和CD中受益。虚拟原型除了作为交互开发平台的角色外,还可以运行自动化集成回归测试。将成功的构建传播给所有程序员和所有系统可以使整个项目团队保持同步并提高生产力。CI/CD流程推动了回归中虚拟原型的采用,并进一步自动化嵌入式软件开发过程。

Synopsys对此仿真器为虚拟原型的开发和使用提供了解决方案。该解决方案包括一系列预验证的Virtualizer开发工具包(vdk)用于流行的处理器和微控制器架构。vdk包含特定于设计的虚拟原型、调试和分析工具以及示例软件。它们适用于所有类型的软件开发,包括设备驱动程序、操作系统和中间件。vdk是在Virtualizer Studio集成开发环境(IDE)中组装和调试的,可以深入了解任何问题。

vdk可以集成到高级CI/CD流程中,为嵌入式软件开发和测试创建一个生产管道。回归测试和部署受益于容器的使用,即“一次构建,随处运行”可执行软件包,其中包括在多个计算环境中快速可靠运行所需的一切。此外,检查点/恢复功能通过避免冗余工作大大加快了测试周期。vdk通过广泛的分析和调试设施提供额外的价值,并与广泛的前沿软件开发和测试技术无缝集成,包括:

即将到来的网络研讨会使用虚拟原型加速嵌入式CI/CD设置提供了关于此解决方案的更多信息。本文将重点介绍如何使用Synopsys虚拟原型来代替物理硬件,从而加快您的测试周期,提供更深入的硬件和软件活动分析,并实现广泛而安全的故障注入。请在5月26日观看现场直播,或在您方便的时候观看。我们邀请您参加!



留下回复


(注:此名称将公开显示)

Baidu