虚拟原型设计: 加速SoC的关键嵌入式软件开发

Synopsys Editorial Staff

Jan 12, 2021 / 1 min read

任何验证方法的首要目标是减少开发时间。在SoC设计过程的各个环节中实现尽可能多的并行设计和验证,为有效压缩设计时间提供了重要机会。这就是芯片级虚拟原型验证的真正价值所在。

具体来说,虚拟原型验证可以为SoC软件开发过程带来一些关键的好处:

  • 软件开发可以更早开始,通常在硅片上市前12到18个月就可以开始。
  • 调试和分析速度更快,开发人员的工作效率更高。
  • 由于基于软件的虚拟原型可以很容易地部署在主机服务器群上,因此回归测试非常方便。
  • 通过虚拟原型的软件易于分发获得,实现了开发组内部和整个供应链的协作,允许在芯片回片前共享设计,更容易定制,并随着硬件设计的发展而逐步开发。
  • 从验证的角度来看,虚拟原型提供了灵活、可扩展和可获得的手段,可以更早地证明设计,并使公司能够实现硬件和软件的并行开发。
虚拟原型设计

虚拟原型不是一项新技术,但随着EDA工具(如我们提供的工具)功能更强大、集成度更高的设计环境的出现,以及SoC复杂性的增加,虚拟原型的方法也变得更加复杂。我们拥有多年的开发和实战经验,将完整的虚拟原型解决方案整合在一起,其中包括编写工具、模型库、软件调试和分析工具、设计方法和服务。

我们的重点是提供一个增强的开发环境,使SoC开发团队能够充分利用虚拟原型的优势,并在整个SoC开发流程中提供无缝集成,包括软件开发、验证和硬件/软件集成。

SoC设计流程图

独特的软件开发

在现代SoC设计中,整个设计过程中软件开发部分的时间和成本很容易超过硬件部分。除此之外,设计性能直接受到器件上运行的软件的影响,因此验证和优化嵌入式软件的性能和功耗至关重要。

但是,大型软件团队不可能孤立地工作数周或数月,然后再尝试集成和测试成品。提高生产率的一个关键是让软件开发人员在有任何物理硅片芯片或者硬件原型之前就能访问他们的目标硬件设计。一个成功的虚拟原型验证策略需要一个硬件设备的模型,在抽象层次上模拟其功能,允许高效的运行时间和交互式调试实际嵌入式软件的能力。虚拟原型可以提供整个系统的可视性和控制,包括内核、互连和外设。

就软件开发而言,虚拟原型是硬件系统的软件可执行和全功能模型,它是在高于用于硬件仿真的详细硬件描述(例如RTL)的抽象层次上编写的。事实上,虚拟原型并不依赖于寄存器传输层,可以在RTL提供之前的几个月交付。虚拟原型提供了高性能和深入的洞察力,以执行详细的软件调试和分析。

从软件程序员的角度来看,快速、准确的功能模型对于软件的早期开发至关重要,包括器件驱动程序和固件等底层功能,这对于新硬件平台的上线至关重要。这些模型也可用于移植或开发更高层次的软件栈,如中间件和操作系统。

这些模型确实需要很高的功能精度,功能等效性是软件开发环境的目标。但不一定要求周期精度,因为主要目标是实现软件开发而不是系统性能分析。对于软件性能分析来说,只有时钟周期数才是感兴趣的。模型越抽象,它的仿真速度就越快,因此在运行基准时,周转速度就越快。

软件质量可以提高,因为虚拟原型系统可以对软件进行更长时间的自动测试。由于全功能的虚拟原型验证系统可以与流行的嵌入式软件调试器接口,它们为软件开发人员提供了一个全面的平台。因此,它们能够通过更高效地开发硬件驱动程序、引导代码等组件的软件开发,以及操作系统和中间件的上线,提高开发人员的工作效率。由于硬件和软件团队在设计产品的每一个方面时都在进行协作,而且并行开发会引入更早和更长的验证周期,这必然会获得更高质量的软件。

通过使用上述的快速功能模型,软件开发人员有足够的细节来模拟硬件,并专注于为他们的预期用例创建软件。此外,虚拟原型可以随着硬件规格的稳定而逐步更新。随着部分设计的稳定,可以开始建模。开发人员可以从硬件规范的一个简单子集开始,并逐步扩展它。这使得软件团队可以在设计完成之前就对软件进行迭代开发,并在必要时快速调整。

一旦虚拟原型被开发出来并工作,就可以根据需要进行多次复制,以支持一个庞大的软件开发团队。它可以在几分钟内而不是几周内向全球大量用户分发,并设置为在用于回归测试服务器群上运行。这种可扩展性有助于加速整个组织的软件调试和测试,更容易促进回归测试。

在实物芯片之前分发的好处还延伸到整个供应链。半导体集团可以将虚拟原型交付给客户,客户可以在拥有工作实物芯片之前就开始开发。如今,虚拟原型可以在芯片上市前12个月交付,为系统开发人员提供了一个重要的先机,使他们可以根据自己的具体使用情况定制设计。

虚拟化器开发套件 (VDK) 提供更高的生产力

我们提供了一个强大的开发环境,以我们的Virtualizer解决方案为基础,对虚拟原型进行建模和组装,Virtualizer解决方案是一个由一套紧密集成的工具和技术组成的平台,可以实现虚拟原型的开发和部署。

Virtualizer可以生成Virtualizer开发包(VDK),这是一种软件开发包,包含特定设计的虚拟原型以及调试/分析工具和示例软件。由于这些VDK是基于软件模型,不依赖于硬件的可用性,因此可以在设计周期中更早地创建,最多可以在硬件可用之前12个月创建。VDKs就像收到了一块硬件开发板,只不过是原型平台的虚拟和可扩展版本。

VDKs与熟悉的嵌入式软件调试器无缝对接,提供的调试数据和控制能力超越了任何其他仿真和调试系统。这使得软件开发人员能够在不改变现有软件开发环境的情况下,更早地开始软件升级。该套件可实现硬件/软件工程的同时进行,并在从规范到部署的整个设计流程中实现更高效的软件开发、集成和测试。虚拟原型和VDK可以代表从处理器内核、SoC或硬件板到电子设备或设备网络的系统。

广泛的模型库

使用虚拟原型的产品开发团队需要一套全面的事务级模型(TLM),作为虚拟原型的构件。虚拟原型通常由用特殊用途语言(如SystemC)编写的连接组件模型组成。使用标准语言可以将来自不同来源的组件模型组合到一个适合运行现实世界软件工作负载的虚拟原型中。

我们的虚拟原型解决方案包括丰富的处理器、互连、外设和参考设计组合,使开发人员能够快速组装搭建虚拟原型。我们还提供广泛的模型,包括ARM、Tensilica、CEVA和Synopsys ARC处理器模型、Synopsys DesignWare模型和许多其他半导体专有模型。

虚拟原型设计缩短了整体开发时间

通过Synopsys虚拟原型解决方案,设计人员可以对物理系统进行建模,并将此表示法用于多项任务,包括架构设计、软件开发和系统测试。对于嵌入式软件来说,由于完整系统的快速、全功能软件模型可以执行未经修改的生产代码,并提供无与伦比的调试效率,因此可以压缩开发时间。因此,这种方法可以实现更快的软件开发、提高软件质量和更好的硬件/软件设计协同设计。
此外,与相邻的物理原型(FPGA)设计和验证流程、物理仿真、HDL仿真、其他硬件验证和系统验证的仿真器的集成,使虚拟原型成为验证连续体中的重要环节。

Continue Reading