对于功能验证,思科做了几件事。它为前门初始化设计了一个测试平台。它采用了所有的 C++/System C 测试检查器和模拟检查,甚至是实时检查,并将它们移植到仿真器中。它还使用 Mentor 的以太网数据包生成器监视器 (EPGM) 作为 IP 来生成以太网数据包或不同种类的数据包。
思科提出设计的步骤包括:
· 从模型库中选择一个具有他们为流片选择的内存模型规格的模型。
· TCAM、SRAM 模型必须合成到 Veloce 支持的内存模型。
· 最小的时钟和 PLL 变化
· 识别他们不模拟的设计部分,例如,为测试而设计 (DFT) 逻辑。在为仿真器编译设计时,有些可能会导致编译器删除它们。
测试台问题包括:
· 创建一个对 Veloce 友好的交易者来配置 ASIC
· 部署 EPGM 以发送和分析以太网数据包
· 在 SystemC 和 C++ 中创建仿真结束检查
· 为模拟器合成功能覆盖
设计调试的主要功能包括:
· EPGM 分析窗口
· 触发事务器捕获波形
· 其他自定义触发波形生成
· 它们可以生成的硬件实现的断言和监视器(这些关键断言是触发的异常,可以自动生成用于调试的波形。)
· 完整波形上传
Cisco 在 EPGM 上与 Mentor 合作了数年,这是一种用于网络 ASIC 的虚拟解决方案。它支持多核模型并扩展性能。它有一个基于 TCL 的界面,可以相当快地编写复杂的测试用例,并有预建的触发器来捕获波形。可变端口组是最近添加的一种超级端口模式,它允许单个构建支持多个端口模式,而不是为可能的芯片配置进行多个构建。
在调试分析方面,思科获取每个流的统计信息,例如带宽/延迟/总帧数,并且所有错误(乱序、CRC 和前导错误)都由 EPGM 捕获和报告。此外,该小组在 ASIC 内实施了自定义检查器和速率监控器。
加速方面的结果可能会有所不同,具体取决于 ASIC 和应用程序的大小。通过模拟在前门初始化大约需要 6,000 分钟。在仿真中,该小组将其缩短到 30 分钟——在这些复杂的 ASIC 上执行了数万次前门写入。通过使用 Mentor 的入站流的新优化流程,Malik 的团队将其缩短到不到五分钟,只需几分钟的前门初始化。仅使用模拟,该过程通常需要数天时间。
凭借给定配置的运行时性能,思科在模拟中每分钟可以处理 40 个数据包,在仿真中每分钟可以处理超过 600,000 个数据包。这是模拟的 15,000 倍!
Malik 指出,所描述的方法不是专有的。“这是我们对 Mentor Strato 解决方案所提供功能的实施,”他说。
现在 Malik 和他的团队是经验丰富的仿真用户,他们计划将其用于其他验证任务。硅前软件开发、多芯片系统验证、硅准备和硅前功率分析是几个感兴趣的领域。例如,在硅前软件开发期间,他们可以启动控制平面操作系统,在实际 ASIC 上运行应用程序,然后再出带。该领域是有益的,尤其是对诊断和系统软件团队而言。
软件开发也是 Malik 的团队希望投资的一个领域,以证明其在仿真方面所做的努力是合理的。Malik 和团队在流片前开发和验证诊断软件非常重要。使用实际系统软件的新验证功能也需要在流片之前在硬件中进行验证。诊断、内核和应用软件团队现在可以开始调试并在仿真平台上快速上手。
多芯片验证仍是另一个领域。思科的系统很复杂——模块化系统具有管理卡和线路卡,其中多个 ASIC 相互通信。这些是可扩展的系统,试图在模拟中验证它们是一个挑战。
硅启动和就绪是另一种可能的应用。当芯片回来时,该小组会为硅验证进行测试和 ASIC 认证。当硅回到实验室时,仿真将提供一个良好的开端。硅前功耗分析是 Mentor 支持的领域,也是 Veloce 用户思科正在积极调查的领域。
Malik 已经在展望 Cisco 的验证流程的未来,该流程将统一用于回归和覆盖分析。这样的流程需要对标准功能覆盖流程进行一些更改,其中覆盖需要在设计内部进行合成和映射。功率分析是一个正在积极研究的领域,先进的趋势和分析能力也是如此,并将它们纳入流程中。当然,正在对性能进行增量改进。
总而言之,Malik 保持的仿真帮助 Cisco 设计验证小组达到了流片 ASIC 所需的高度信心。让软件为芯片启动做好准备是一个很大的好处。仿真通常有助于左移上市时间。
Malik 总结道,仿真是对整体验证策略的重要补充。快速启动、成熟的编译和全面的可见性是关键。虽然有很多很棒的技术正在开发中,但没有什么能比模拟更能提供全面的可见性和全面的调试。