最大化硬件仿真对网络设计的价值,第一部分
扫描二维码
随时随地手机看文章
为网络应用设计 ASIC 面临着独特的挑战。一是这些设备的带宽和延迟性能测试比其他类型的 IC 所需的仿真周期要长得多。当然,扩展模拟会减慢整个设计过程。为了解决这些问题和其他问题,思科工程师采用了将仿真与仿真相结合的做法,以改进和加速验证过程。
过去,思科会为每个新 IC 寻求独特的验证机制。为了节省精力和时间,该公司与其工具供应商 Mentor Graphics 合作,将可应用于多种设计的方法标准化。
“转向现成的仿真产品是有益的,尤其是大型芯片和系统的推出,”思科系统公司核心 ASIC 集团的验证经理 Afzal Malik 说。Malik 参与了用于企业和园区交换网络的专用集成电路 (ASIC) 系列的仿真,即 Catalyst 9000 系列,它是思科最成功的产品线之一。
Malik 的小组使用仿真来解决难以发现的深循环错误。如果没有仿真,这些类型的错误最终会在芯片中实现,而修复它们的成本非常高。该小组设定的目标是通过仿真检测所有错误,通过在流片前结合形式验证仿真和硬件仿真来达到 100% 的覆盖率。实现这些目标将缩短上市时间。
挑战仅始于带宽和延迟性能测试,这些测试使得模拟运行时间如此长。由于过多的构建和运行时间,复杂系统中的多芯片交互难以在仿真中进行测试。随着接口的不断发展,设计验证小组会花时间开发驱动程序和监视器。一些网络协议,例如 PTP 1588 和链路暂停和优先流控制 (PFC),是模拟密集型的,运行时间很长才能达到稳定状态。
网络 ASIC 通常是大型设计,这意味着代码覆盖和功能覆盖需要更多时间。此外,最新网络标准的验证需要增强测试台组件。最后一个挑战是硬件/软件协同验证,它涉及在流片之前在硬件上运行实际软件。
Malik 指出,仿真对于块级验证和基本集成测试是不可替代的,但随着设计尺寸的增加,仿真性能会下降,尤其是在使用多个 ASIC 的系统上。为了克服挑战,模拟是不够的。
有一些与验证过程相关的术语应该在这里定义。后门初始化和前门初始化是指如何从内存中加载或提取内容。前门流程意味着设计本身用于将数据移入和移出内存。后门流程是测试平台或软件在不使用设计的情况下将数据移入和移出内存的一种方式。测试工程师经常想要预加载内存内容,或者在测试运行结束或中途从内存中提取数据,而后门访问通常用于这种类型的内存加载或提取。
Malik 报告说,他的团队在 90% 以上的测试中使用了后门初始化模拟。仿真并不是前门验证的理想解决方案。当软件配置 ASIC 并运行生产软件时,前门初始化成为一项要求。
为了应对这些挑战,思科的设计验证工程师为此 ASIC 设计引入了 Mentor Graphics 的 Veloce2 仿真器。仿真的运行速度是仿真的千倍,并且其运行时性能不会随着设计尺寸的增加而降低。
与 FPGA 系统不同,基于 Veloce 的仿真环境提供完整的调试可见性。编译和运行步骤与仿真类似,使用简单。例如,大量的验证组件,特别是记分牌、检查器和功能覆盖点,可以在仿真中重复使用,Malik 指出。
该小组使用模拟进行设计启动。Malik 肯定,即使是仿真中的多单元级验证也是在芯片级获得前几个数据包的良好开端。
除了帮助发现在其他情况下检测起来很费时间的深循环错误之外,仿真还有助于执行真实软件、在芯片上运行性能测试以及系统级验证。仿真对于线速测试、流量控制和互联网混合 (IMIX) 测试也很方便。暂停测试、数据路径测试和负载平衡在仿真中高效执行。
软件和硬件团队都使用思科的 ASIC 验证环境。虚拟 PCIe 接口(左)通常供软件团队在通过标准 PCIe 接口与交换 ASIC 通信的控制平面上启动其操作系统或内核。从软件的角度来看,软件团队就像在使用 ASIC 一样运作。但是,设计本身在模拟器中。