拥有数十亿或更多门的大型片上系统 (SoC) 已成为硬件和嵌入式软件验证的关键设计挑战。这些复杂的 SoC 设计集成了大量嵌入式软件,需要数十亿个时钟周期进行验证。它导致了一种多管齐下的 SoC 验证方法,允许将嵌入式软件验证的某些方面从硅后阶段转移到硅前阶段。
为了做好准备,让我们看看传统验证工具在服务于软件密集型 SoC 设计时面临的限制。然后,我们可以看到将这些工具与虚拟技术相结合如何可以在流片前改进大型硬件和软件系统的测试。
寄存器传输级 (RTL) 模拟器处理硬件设计模型。它非常适合硬件调试,因为它相对容易使用,而且设置和编译速度很快。但是,RTL 模拟器不适合嵌入式软件验证,因为需要的验证周期数达到数十亿。
传统硬件仿真
传统硬件仿真将 RTL 中定义的 SoC 设计编译到硬件平台上,并在其上运行验证测试,速度比仿真快 5 到 6 个数量级。然而,尽管它可以有效地调试硬件和软件交互,但仿真器传统上被配置为在线仿真 (ICE) 模式,其中大量电缆将被测设计 (DUT) 连接到外围设备。它是通过将 DUT 连接到现实世界的速度适配器来执行的。
随着复杂 SoC 设计的外围设备数量增加,外围设备的虚拟化大大增加了可用于硬件仿真的使用模型。
FPGA 原型设计主要用于验证芯片设计。传统上,软件开发人员使用 FPGA 原型进行软件验证,因为它比仿真速度更快,并且允许更长的软件运行时间。然而,FPGA 原型设计涉及大量的人工干预,这使得在大型 SoC 设计中调试软件成为一项乏味而痛苦的任务。
虚拟机的兴起
进入虚拟化原型设计和仿真,提供多种选择来验证和验证复杂 SoC 设计中的软件。许多公司现在开始使用仿真工具来确保软件开发在其 IC 设计中的协同作用。例如,多媒体、移动和网络市场的一些主要参与者正在使用Mentor Veloce 仿真平台来访问虚拟和传统方法的混合验证。
首先,有虚拟原型系统,从简单的存根代码到在 QEMU 中运行的虚拟板,再到更高级的虚拟原型系统,以帮助工程师验证他们的代码。其次,随着现代 SoC 中外围设备数量的增加,需要更精确的模型来要求接口虚拟化。
在这里,由模拟器和虚拟机组成的混合模型可以极大地简化 SoC 验证环境。混合和虚拟方法比在仿真或仿真上运行的 RTL 模型更快,因为处理器和一些周围的外围设备是在更抽象的级别上建模的。更抽象的模型更容易创建和验证,并且更易于移植。
Mentor Veloce 仿真平台允许通过 Codelink 等工具调试软件堆栈。
Veloce 仿真平台使用虚拟原型设计和类似虚拟实验室的环境,允许 SoC 设计人员通过 Codelink 和 WarpCore 等工具执行软件调试。以 WarpCore 为例,它结合了虚拟机和 RTL 执行环境,只有在不涉及太多硬件的情况下才会发挥作用。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !