设计用于网络应用程序的ASIC面临着独特的挑战。一是这些设备的带宽和延迟性能测试需要比其他类型的IC所需的仿真周期大得多的仿真周期。当然,扩展的模拟会减慢整个设计过程。为了解决这些以及其他问题,思科工程师采用了将仿真与仿真相结合的做法,以改善和加速验证过程。
过去,思科会为每个新的IC追求独特的验证机制。为了节省工作量和时间,该公司与其工具供应商Mentor Graphics合作,对可应用于多种设计的方法进行了标准化。
思科系统公司Core ASIC Group的验证经理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)确认,即使在仿真中进行多单元级验证也是在芯片级获得前几个数据包的良好起点。
仿真不仅可以帮助您发现深层的漏洞,而这些漏洞本来就很费时间进行检测,但它还可以帮助您执行真正的软件,在芯片上运行性能测试以及进行系统级验证。对于线速测试,流量控制和Internet混合(IMIX)测试,仿真也很方便。在仿真中可以有效地执行暂停测试,数据路径测试和负载平衡。
软件和硬件团队都使用Cisco的ASIC验证环境。虚拟PCIe接口(左)通常供软件团队在通过标准PCIe接口与交换ASIC进行通信的控制平面上引导其OS或内核。从软件的角度来看,软件团队的运作就像在使用ASIC一样。但是,设计本身在仿真器中。资料来源:思科
对于功能验证,思科做了两件事。它为前门初始化设计了一个测试平台。它进行了所有C ++ / System C测试检查器和模拟检查,甚至是实时检查,并将其移植到仿真器上。它还使用Mentor的以太网数据包生成器监视器(EPGM)作为生成以太网数据包或不同类型数据包的IP。
思科提出设计的步骤包括:
标识设计中未仿真的部分,例如,测试设计(DFT)逻辑。有些问题可能会导致捆绑,导致编译器在编译仿真器设计时将其删除。
Testbench问题包括:
设计调试的主要功能包括:
硬件实现的断言和它们可以生成的监视器(这些关键断言是触发的异常,可以自动生成用于调试的波形。)
完整的波形上传
思科与Mentor共同开发了EPGM,这是一种用于联网ASIC的虚拟解决方案,为期数年。它支持多核模型并扩展性能。它具有基于TCL的界面,可以相当快速地编写复杂的测试用例,并具有预置的触发器来捕获波形。可变端口组是最近增加的一种超级端口模式,它允许单个构建支持多种端口模式,而不是针对芯片的可能配置进行多次构建。
在调试分析方面,Cisco获取每流统计信息,例如带宽/等待时间/总帧数,所有错误-不按顺序,CRC和前导错误-由EPGM捕获并报告。此外,该小组在ASIC内实现了自定义检查程序和费率监视器。
关于加速的结果可能会有所不同,具体取决于ASIC和应用程序的大小。在前门中,通过仿真进行初始化大约需要6,000分钟。在仿真中,该小组将时间缩短到30分钟–在这些复杂的ASIC上进行了数以万计的前门写操作。通过使用Mentor的入站流进行新的优化流程,Malik的团队将其缩减到不到五分钟的时间,而前门初始化只需几分钟。仅使用模拟,该过程通常需要几天的时间。
借助给定配置的运行时性能,Cisco可以在仿真中每分钟处理40个数据包,而在仿真中则可以每分钟处理60万个数据包。比仿真高15,000倍!
马利克指出,所描述的方法不是专有的。他说:“这是我们对Mentor Strato解决方案所提供功能的实现。”
现在,Malik和他的团队是经验丰富的仿真用户,他们计划将其用于其他验证任务。硅前软件开发,多芯片系统验证,硅就绪性和硅前功率分析是您关注的几个领域。例如,在进行硅前软件开发期间,他们可以启动控制平面OS,并在磁带输出之前在实际的ASIC上运行应用程序。该领域是有益的,尤其是对于诊断和系统软件团队而言。
Malik的团队也希望在软件开发领域进行投资,以证明其在仿真方面所做的努力是合理的。对于Malik及其团队而言,在磁带发布之前开发和验证诊断软件非常重要。使用实际系统软件的新验证功能也需要在流片之前在硬件中进行验证。诊断,内核和应用程序软件团队现在可以开始调试,并在仿真平台上迅速提高速度。
多芯片验证仍然是另一个领域。思科的系统很复杂–模块化系统具有管理卡和带有多个ASIC相互通信的线卡。这些都是可扩展的系统,尝试在仿真中验证它们是一个挑战。
硅长大和准备就绪是另一种可能的应用。当芯片返回时,该小组将进行测试和ASIC认证以进行芯片验证。当芯片回到实验室时,仿真将为您提供领先优势。硅前功率分析,Mentor支持的领域以及Veloce用户Cisco的领域正在积极调查中。
Malik已经为思科的验证流程展望了未来,该流程将统一用于回归和覆盖范围分析。这种流程需要对标准功能覆盖流程进行一些更改,在这些功能中,需要在设计内部合成和映射覆盖范围。功率分析是一个正在积极研究的领域,高级趋势和分析功能也正在将其纳入流程。当然,为了提高性能,正在对流程进行逐步改进。
总而言之,Malik保持的仿真帮助思科设计验证小组达到了确定其ASIC所需的高度信心。使软件准备好用于硅启动是一个很大的好处。仿真通常有助于将产品推向市场的时间左移。
Malik总结说,仿真是整体验证策略的重要补充。快速启动,成熟的编译和全面的可见性是关键。尽管正在开发出色的技术,但没有什么可以像仿真那样提供完整的可见性和完整的调试的。
Lauro Rizzatti博士是硬件仿真方面的验证顾问和行业专家。
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !