多年来,虚拟原型开发一直是开发产品的一种重要方法,即构建开发中产品的模型,并在制作最终产品的物理原型之前对其进行仿真以验证其设计。这种方法在许多领域都被广泛采纳,例如,汽车公司使用虚拟原型开发物理发动机部件。

 

使用虚拟原型开发半导体 SoC 同样是一种有价值的策略。在这种情况下,虚拟原型被用作电子硬件的替代品,目的是开发可在电子系统上执行并实现其预期功能的嵌入式软件(与开发电子硬件本身相对)。该方法已在移动和消费类 SoC 应用等节奏极快的市场中被采用,如汽车、网络和无线调制解调器等领域。虚拟原型验证可应用于任何与软件开发、集成和测试相关的且工作量和时间不断增加的垂直市场。

 

 

缩短开发时间,提高生产力

验证的首要目标只有一个:减少开发时间。芯片级虚拟原型验证的真正价值,就是在 SoC 设计过程的各个环节实现尽可能多的并行设计和验证,有效压缩设计时间。

 

具体来说,虚拟原型验证可以为 SoC 软件开发提供以下优势:

● 软件开发可以更早开始,通常在芯片上市前 12 到 18 个月即可开始。

 

● 调试和分析速度更快,开发人员的工作效率更高。

 

● 基于软件的虚拟原型可以很容易地部署在主机服务器群上,因此回归测试非常方便。

 

● 通过虚拟原型的软件易于分发获得,实现了开发组内部和整个供应链的协作,允许在芯片回片前共享设计,更容易定制,并随着硬件设计的发展而逐步开发。

 

● 从验证的角度来看,虚拟原型提供了最灵活、可扩展和可获得的手段,可以更早地证明设计,实现硬件和软件的并行开发。

 

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

 

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

 

 

独特软件开发

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



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

 

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

 

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

 


软件开发环境的目标是功能等效性,因此这些模型需要很高的功能精度。但因主要目标是实现软件开发而不是系统性能分析,所以周期精度不是必需的。从软件性能分析角度看,只有时钟周期数才是开发者最感兴趣的。模型越抽象,仿真速度就越快,在运行基准时,周转速度就越快。


虚拟原型系统可以对软件进行更长时间的自动测试,从而提高软件质量。功能齐全的虚拟原型验证系统可与最流行的嵌入式软件调试器进行交互,为软件开发人员提供一个全面的平台让他们能够更高效地开发硬件驱动程序、引导代码等组件的软件开发,上线操作系统和中间件,从而提高开发人员的工作效率。硬件和软件团队在设计产品的每一个方面都要相互协作从而能够获得更高质量的软件,同时,并行开发也将导致更早和更长的验证周期。

 

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

 


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

 

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

 

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

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

 

虚拟化器可以生成虚拟化器开发套件(VDKs),这是一种包含特定设计的虚拟原型以及调试 / 分析工具和示例软件的软件开发包。由于这些 VDKs 主要基于软件模型,而不依赖于硬件的可用性,因此可以在设计周期中更早地被创建,且最早可在硬件可用前 12 个月被创建。VDKs 就像接收硬件开发板一样,但原型平台的虚拟和可扩展版本除外。

 


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

 

 

提供最广泛的模型库

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


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

 

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

使用新思科技(Synopsys)的虚拟原型解决方案,设计人员可以对物理系统进行建模,并用于包括架构设计、软件开发和系统测试等多项任务。对于嵌入式软件来说,完整系统的快速、全功能软件模型可以执行未经修改的生产代码并提供无与伦比的调试效率,开发时间因此可以被压缩。这种方法还可以实现更快的软件开发、提高软件质量和更好的硬件 / 软件协同设计。

 

此外,与相邻的物理原型(FPGA)设计和验证流程、物理仿真、HDL 仿真、其他硬件验证和系统验证的仿真器的集成,使虚拟原型成为验证连续体中的重要环节。