虚拟原型技术加速软件创新,产品上市快人一步

Guanyi Wang

Aug 15, 2022 / 1 min read

我们正身处一个由软件定义、以软件为先的时代。决胜软件,才能决胜于数字时代。

在过去十年里,软件在各类产品与应用中的使用都呈指数级增长,且增长至今没有放缓的迹象。无论手机、电视、智能家电,还是日常用品,几乎所有应用场景都在依赖软件来为人们提供日常所需的各项功能。

在汽车应用领域也是如此,现代汽车包含多达1.5亿行代码,汽车软件市场的预期年增长率超过15%,并有望在2030年达到一千亿美元的体量。

基于此,开发者们对软件质量、性能和安全要求也就越来越高。虚拟原型技术现已逐渐取代物理原型技术,成为帮助开发者们应对软件挑战的重要工具。

物理原型:革旧鼎新

在虚拟原型工具问世以前,嵌入式软件开发者必须等待芯片设计完成,才能在实验室系统的物理原型设备上集成和测试代码。这种传统的原型验证方法严重拖慢了产品上市进度,因为开发者们必须等到物理原型完成后,再来加班加点地对代码进行检查和调试。

除上市时间(TTM)较长外,物理原型技术还会产生高昂的成本,并且严重缺乏便捷性。此外,物理原型系统必须进行持续维护与管理,因此开发者们往往需要轮班工作,从而最大限度地利用硬件。高度网络化系统的出现在一定程度上缓解了这一问题,这类系统能让开发者在办公室而非实验室中工作,但成本依旧居高不下。

如今,处理器已不再仅仅是系统的一个组件,而是一个完全基于片上系统(SoC)的独立设备。这也是原型开发的一个转折点。定制芯片的设计和生产往往需要数月的时间,而物理原型必须等到芯片完工才能进行。项目耗时长、成本高,这就导致物理原型必将被淘汰。
虚拟原型因此诞生。

利用虚拟原型工具进行流片前测试与调试

对于嵌入式程序开发者来说,若想缩短TTM并降低成本,拥有一个能够开发、集成、测试并调试代码的流片前测试平台至关重要。虚拟原型由SoC的抽象软件仿真模型与硬件系统组成,开发者可以用等效的软件模型代替硬件,从而更早地进行软件开发。
本质上,虚拟原型是能够执行嵌入式软件代码的完整系统的全功能软件模型。虚拟原型包含快速指令集,可执行与最终产品系统中相同的代码,具有诸多好处:

  • 能够同时与虚拟和现实世界的输入/输出(I/O)设备交互。
  • 能够引入可能导致系统硬件损害的虚拟故障,为异常情况提供更好的测试环境。
  • 能够尽早发现设计与嵌入代码不一致的地方,降低芯片故障率。
  • 能够在彼此分散的软件团队之间进行部署,免去构建和维护物理原型的相关成本。

此外,虚拟原型的最大好处之一,是能够大大缩短TTM。由于虚拟原型不需要大量实施细节,它可以与SoC的RTL级硬件设计并行开发,将项目进度左移。

持续集成,持续部署

软件开发的模式也在稳步发展。在日常应用的软件内容规模的驱动下,为满足产品性能要求,持续集成(CI)已成为软件开发团队的必备要素。所谓CI,是指软件开发人员将代码更改合并到共享的主线代码库或主存储库上。这个动作通常每天都会进行多次,以便测试代码性能。

按照传统做法,开发运营团队必须在指定检查点合并所有代码更改,届时,代码各个部分可能会严重偏离,从而影响集成过程,并给调试与修复问题带来挑战。CI则与此相反,它能让团队更早地发现并修复不兼容问题,此时解决问题更加容易,成本也更低。

CI需要一套稳健、高度自动化的构建和测试周期方可正常工作。这套系统需要对提交的更改进行快速验证,在最新软件栈的上下文中进行测试,确保不破坏现有功能。它还需要为软件开发者提供诸如代码覆盖率、质量和有效性等关键领域的快速反馈。

此外,CI还常常与持续部署(CD)结合在一起。所谓CD,是指将所有成功通过各项自动化测试的代码构建部署到生产中。通过对CI的实践,CD能够进一步将代码发布过程自动化,一旦新代码被合并到主存储库,并通过了所有自动化测试,就能以流线化过程推向生产。

虚拟原型,价值几何

SoC设计团队若在CI/CD设置中使用虚拟原型,便可将构建及时分配给各个开发者和系统,从而提高生产力。虚拟原型若与容器化技术相结合,还有助于建立高效的CI/CD管道,助力对硬件和软件活动进行深入分析,运行自动化回归测试,同时继续发挥其作为交互开发平台的功能。

新思科技虚拟原型系列解决方案可提供一系列工具与服务,帮助实现早期软件开发,为项目成功保驾护航。这一系列解决方案包括经过预验证的虚拟化开发工具包(VDK),内含针对具体设计的虚拟原型,适合各类软件开发。新思科技VDK还包含功能强大的调试与分析工具,并且不依赖于RTL设计,这意味着最早可在硬件可用前12个月即可进行软件开发。
新思科技VDK可轻松实现与现有CI/CD设置的集成。无论是“一次构建,随处运行”的可执行软件包、检查点和恢复功能,还是有助于进行回归测试和部署的容器化技术,

VDK所涵盖的大量功能可为嵌入式软件开发提供更精简、更高效的管道。此外,新思科技VDK还可与GitLab和Jenkins开发运营平台、Docker容器、Kubernetes容器编排系统等业内软件开发与测试技术进行无缝集成。

Continue Reading