如何设计和验证 5G 系统,第 4 部分
扫描二维码
随时随地手机看文章
5G前传设计验证
许多应用程序和用例推动了 5G 复杂性的增加,过多的设备配置加剧了这种情况,导致需要比 4G进行更广泛的测试。这包括包含大多数现代验证技术的更大功能验证套件,例如形式验证断言和覆盖率、故障、测试设计 (DFT)、制造设计 (DFM) 等。扩展分析必须用于性能和功耗,互操作性、协议合规性、压力测试、分析等。
5G 产品中使用的半导体经常采用复杂的前沿技术。为了防止发现不兼容、功能错误或安全漏洞,而修复它们为时已晚(而且成本太高),每个设备都需要在将设计数据库发布到制造之前进行彻底的硅前验证,以及在从铸造厂返回的第一块硅。
硅前测试
如今,硅前验证工程师可以从一系列验证引擎和方法中进行选择,从传统的寄存器传输级 (RTL) 仿真到使用由一个或多个现场可编程门阵列 (FPGA) 构建的原型进行的基于硬件的验证)。
在知识产权 (IP) 块的精确软件模型上运行的 RTL 仿真提供了多功能性、交互性和强大的调试功能。这些优势使其成为早期测试 IP 块的必要工具。然而,RTL 文件的巨大大小和复杂性无法在大多数计算机上以接近“实时”的速度运行,这使得执行系统级验证和嵌入式软件验证变得困难或不可能。
或者,使用 FPGA 进行硬件原型设计提供的测试速度比 RTL 仿真快三到四个数量级,但它的运行速度仍然比实际硅慢一到两个数量级。较慢的速度将大多数验证活动的范围限制在执行运行中的选定时间窗口,在启动操作系统和运行计算密集型应用程序时可能涉及数万亿个时钟周期。此外,基于 FPGA 的验证不具备 RTL 模拟器的灵活性和调试能力。
在 RTL 模拟器和 FPGA 原型设计之间是硬件仿真。现代硬件仿真器可以选择性地执行许多任务,这些任务通常由 RTL 仿真器在软件中实现。与纯软件策略不同,它可以在几乎无限大小的设计上执行这些任务,速度比模拟快几个数量级。简单地说,硬件仿真在任何验证流程中都是强制性的。
硅后测试
硅后测试通常通过内部构建的测试仪或临时自动测试设备在实验室中进行。在此示例中,我们将使用 Mentor 的 X-STEP 系统来说明如何使用硬件仿真工具来验证和测试 5G 设备的芯片。X-STEP由 Mentor, a Siemens Business 开发,带有一个大型预验证测试套件库,源自完全符合标准的 5G 协议。这消除了为内部软件模拟创建激励所涉及的时间、费用和潜在风险。它还消除了开发自己的原型环境的需要。
X-STEP 测试仪环境,包括设置文件、激励文件和运行测试仪所需的对象。该系统包括用于创建设置文件和使用高级分析分析 DUT 结果的工具和软件。
统一的硅前和硅后验证
从历史上看,硅前和硅后测试发生在两个不共享数据、方法或人员的独立验证站中。这个过程本质上是低效且耗时的,并且会影响关键的上市时间。
一个统一的前/后硅验证策略的提议提高了效率,以及 5G 设计/产品的早期互操作性验证。该方法要求创建一个模拟硅后设置的硅前环境,并能够在两个设置之间共享和交换测试参数和其他关键数据。使这成为可能的技术是驱动模拟器的测试环境的虚拟化。该模型是Veloce VirtualLAB 库的一部分,可以在最先进的仿真平台或领先的原型系统中运行。唯一的区别是从硬件测试环境到原型设计再到仿真时,执行速度会降低。
由于设置准确,配置任务减少到最低限度,验证团队可以随意在硅前和硅后切换,测试硅前的所有性能案例的带宽、延迟等。捕捉了硅前和硅后的本质统一策略,并突出显示与通过 X-STEP 执行的硅后测试共享的通用设置。
总而言之,描绘了统一验证策略实现的所有验证选项,以及可在 5G 嵌入式产品开发周期的任何地方插入的一整套验证工具。
硅前/硅后统一测试环境能够彻底验证硬件和验证嵌入式软件,包括在开发周期的每个阶段进行系统验证。从本质上讲,它允许在开发周期的验证范围内向上和向下移植任何测试,创建一个全面的验证库,可以在单个公司的内部项目或在测试产品互操作性的两个供应商之间在产品之间互换。
例如,假设 A 公司开发了一款 5G 芯片,B 公司将在其 DU 中使用该芯片。通过统一验证,B 公司能够在系统集成期间使用与 A 公司为验证其芯片功能而运行的完全相同的测试来测试其 DU。
验证 5G 设备中使用的 SoC 是一项艰巨的任务,因为它们支持的标准极其复杂,旨在支持许多应用程序和用例。这对验证团队提出了严峻的挑战,他们必须满足高质量产品的上市时间要求。
传统的硅前/后测试策略需要两个独立的团队使用两种独立的方法已不再可接受。最有前途的方法之一是将硅前和硅后测试方法合并到统一的验证策略中。硅后物理测试环境的虚拟化在现代仿真器上执行时,建立了一个双向流程,允许设计人员在仿真器和 X-STEP 测试仪上运行相同的测试。借助 X-STEP,合作伙伴可以交换可执行格式的前传测试配置,以实现生态系统范围内的合作、全面验证以及不同供应商设备之间的互操作性。