多年来,系统复杂性一直呈指数级增长,从而推高了验证成本。硬件相关软件功能的增加是复杂性增长的主要原因。这使验证和发现缺陷成为一项具有挑战性的任务。重要的是在设计过程的早期纠正缺陷/故障,因为此时修复成本较低且所需时间较少。
MachineWare Virtual and Hybrid Studio 有助于快速创建虚拟和混合平台,并实现早期软件启动和并发硬件/软件协同验证。它允许早期软件和操作系统启动、速度、准确性和统一调试,以便在硅片之前高效地验证硬件和软件。虚拟平台对于验证专用计算平台比以往任何时候都更为重要。用于早期硅片前软件启动和并发硬件/软件协同验证的左移验证方法有助于缩短数月的计划时间。但是,设置这些环境需要一些特定的知识。
左侧是传统的芯片开发流程,在设计验证完成后,软件启动在硅片上进行。在左移开发流程中,通过在流程中引入虚拟平台缩短了时间线,如右侧所示,使软件启动成为设计验证的一部分。这有助于将软件作为设计验证的一部分运行。下面的时间线显示,在传统流程中,产品是在验证、流片、软件运行等连续步骤后发货的。然而,在虚拟平台(SW 增强型)SoC 流程中,很早就引入了一个抽象模型,让我们可以更早地进行一些软件开发。硬件开发也非常依赖它,以便尽早引入最终模型的虚拟平台以提供价值。同样,虽然模拟器和 FPGA 原型可用于在流片前运行软件,而无需构建虚拟平台的任何新要求,但两者都需要完整的设计才能以软件的方式运行。混合方法将虚拟平台的早期可用性价值与仿真和 FPGA 原型设计的低开销价值相结合。
为了构建我们的混合方法,我们从一个抽象模型开始,并随着设计的进展逐步使其更加详细。最终,我们可能会引入仿真器和原型,以提供尽可能高的性能的更多细节。这种混合过程使我们能够在逐步启动系统时执行持续验证,并在开发新组件并将其集成到平台中时将其纳入其中。虚拟平台在流程早期可用,可以专注于操作系统和中间件的正确性,但可能无法为您提供必要的性能准确性。此外,纯虚拟平台通常不能很好地解决 SoC 级集成和验证问题,因为它们往往是抽象模型,而不是您要验证的详细 RTL。仿真器和原型在使用 RTL 时提供了完全准确的平台,但可能无法显示操作系统和中间件所需的性能,尤其是在大型处理器环境中。将这两者结合成一个混合平台可以解决完整的软件堆栈问题,其中包含足够的细节,包括固件和驱动程序以及操作系统和应用程序的性能。一个挑战是虚拟平台需要最终设计,而最终设计直到验证之后才完成,这需要虚拟平台,这显然是一种循环依赖关系。增量软件驱动方法解决了这个问题。我们的产品套件和方法可以创建一个环境,帮助启动软件,其中一些在虚拟上运行,一些在模拟器上运行,并且一切都正常工作。基本步骤如下:- 1. 遵循 CPU 架构示例,包括 CPU RTL 包装器详细信息和配置选项
- 在混合平台上构建和运行 Linux 以启用 SW 调试
可以使用包含详细 RTL 代码的 FPGA 原型或模拟器构建此混合环境。MachineWare VPK 支持早期软件启动,以进行硬件-软件协同验证和调试。它为平台组装提供全面支持,支持虚拟模型的创建和调试,并提供丰富的预构建虚拟模型和混合适配器库。它的架构设计为与验证引擎本地集成,包括企业仿真平台、企业原型平台和逻辑模拟器。它通过在 RTL 准备就绪之前开始在纯虚拟和混合配置上验证嵌入式软件/固件来加速系统开发。创建下一代设计(包括移动、汽车和超大规模计算应用程序)的工程师需要在硅前平台上验证软件,以确保设计成功并满足上市时间计划。MachineWare VCML 允许设计人员构建高质量的虚拟和混合 SoC 模型。通过将 VCML 的运行时软件引擎与 FPGA 平台和 Emulation 平台进行原生集成,MachineWare VPK 软件开发人员提供了从虚拟模型到 RTL 的统一调试体验。MachineWare 虚拟和混合原型为早期硅片前软件启动提供了所需的速度,并为硅片前硬件/软件协同验证提供了准确性,所有这些都具有统一的嵌入式软件调试体验以及与验证引擎的原生集成。使用该系统,使用 SoC 的虚拟或混合模型进行验证不仅比使用纯 RTL 模型进行验证快几个数量级;它还支持在 RTL 可用之前进行早期软件启动。