一种记录仿真波形的测试装置及记录仿真波形的方法
技术领域
本发明涉及数字IC(Integrated circuit,集成电路)设计和验证领域,尤其涉及一种记录仿真波形的测试装置及记录仿真波形的方法。
背景技术
目前,数字IC设计规模越来越大,几百万门规模,甚至千万门规模设计已经很平常了,随之而来的是验证和测试的时间的成倍增加。验证中RTL(Register Transfer Leve1,寄存器传输级)仿真是IC设计必不可少的环节。
RTL仿真的优势是通过分析仿真波形,可以较快定位故障、解决问题,其劣势是仿真速度慢,尤其是开启波形记录功能的仿真,比不开启波形记录功能的仿真速度慢3到5倍。测试人员需要在测试效率和故障定位之间作出取舍,目前,这种取舍依赖于测试人员的判断。
RTL仿真过程中,事先开启波形记录功能时,可能大部分用例仿真后没有发现异常,记录的波形没有意义,浪费了仿真时间,大幅度降低了仿真测试效率;事先不开启波形记录功能时,仿真结束后根据仿真的结果,开启波形记录功能再次运行一遍发现异常的用例,等待仿真波形记录完成后,借助仿真波形进一步分析异常用例的问题。这个过程中,用例的切换交互需要人为干预,而且通常情况下人力资源分配和机器资源分配不尽合理,使得故障的解决可能在用例切换交互中延后了两三天,甚至更长时间。
综上所述,目前的RTL仿真的自动化程度低,波形记录需要人工加以干预,影响了IC研发效率。
发明内容
本发明要解决的技术问题是提供一种记录仿真波形的测试装置及记录仿真波形的方法,提高了仿真波形记录的自动化程度及测试效率。
本发明解决其技术问题所采用的技术方案是:
一种记录仿真波形的测试装置,包括:
故障处理单元,用于实时监控用例仿真进程中DUT(Design UnderTest,待测设计)的运行状态,以及在所述DUT运行状态异常时分析确定其故障类型;
波形记录策略单元,用于根据所述故障处理单元分析确定的故障类型设定波形记录策略;
波形记录单元,用于记录所述DUT相应所述波形记录策略的仿真现场的仿真波形。
上述方案中,所述测试装置还包括仿真进程现场处理单元,用于定时对仿真进程的现场进行保护,以及据其实现指定仿真现场的恢复。
上述方案中,所述波形记录策略为故障发生前后的一段时间波形记录策略、全场景波形记录策略或者故障相关模块波形记录策略。
上述方案中,所述故障处理单元用于分析确定所述DUT的故障类型前,还用于对所述故障进行告警以及记录所述故障发生的时间。
一种记录仿真波形的方法,包括以下步骤:
a、实时监控用例仿真进程中DUT的运行状态,状态异常时,分析确定所述DUT的故障类型;
b、根据所述DUT的故障类型确定相应的波形记录策略;
c、记录所述DUT相应所述波形记录策略的仿真现场的仿真波形。
上述方案中,所述仿真现场是通过重新运行所述用例加以重现的。
上述方案中,所述步骤a中,实时监控所述用例仿真进程中DUT的运行状态时,还将定时对所述仿真进程的现场进行保护。
上述方案中,所述步骤c中,所述仿真现场是恢复到指定仿真现场后,继续运行所述指定仿真现场后续的仿真进程加以重现的。
上述方案中,所述定时对仿真进程的现场进行保护是指每100万纳秒对所述仿真进程的现场进行一次记录。
上述方案中,所述步骤a中,所述DUT的运行状态异常时,首先将对故障进行告警并记录故障发生的时间。
本发明的有益效果主要表现在:本发明提供的记录仿真波形的方法可以充分利用本发明提供的测试装置,在一次仿真进程中,通过故障监控、故障分析,自动完成波形记录策略相应仿真现场的波形记录,提高了波形记录的自动化程度,节约了测试时间,节省了仿真波形的存储空间;进一步地,仿真现场可从多个断点实现恢复,从而进一步缩短了测试时间,提高了测试效率,缩短了IC研发的周期。
附图说明
图1为本发明记录仿真波形的测试装置的工作示意图;
图2为本发明记录仿真波形的方法流程图;
图3为本发明实施例一的工作流程图;
图4为本发明实施例二的工作流程图。
具体实施方式
下面结合附图对本发明作进一步的描述。
参照图1,一种记录仿真波形的测试装置,包括:
故障处理单元,用于实时监控用例仿真进程中DUT的运行状态,以及在DUT运行状态异常时,对故障进行告警、记录故障发生的时间以及分析确定DUT的故障类型;
波形记录策略单元,用于根据DUT的故障类型设定波形记录策略;波形记录策略可以为故障发生前后的一段时间波形记录策略、全场景波形记录策略或者故障相关模块波形记录策略等。
波形记录单元,用于记录DUT相应波形记录策略的仿真现场的仿真波形;
仿真进程现场处理单元,用于定时对仿真进程的现场进行保护,以及据其实现指定仿真现场的恢复。
参照图2,一种记录仿真波形的方法,包括以下步骤:
S201:实时监控用例仿真进程中DUT的运行状态,状态异常时,对DUT故障进行告警、记录故障发生的时间并分析确定DUT的故障类型;
S202:根据DUT的故障类型确定相应的波形记录策略;
S203:记录DUT相应波形记录策略的仿真现场的仿真波形。
下面,通过图3及图4所示的实施例对本发明作进一步的描述。
实施例一:采用上述测试装置,但未启用其仿真进程现场处理单元,则参照图3,记录仿真波形时包括以下步骤:
S301:进行当前用例的仿真,为加快仿真速度,此时关闭波形记录单元;
S302:故障处理单元实时监控DUT运行状态,DUT运行状态异常时,进入S303;
S303:故障处理单元对DUT故障进行告警并记录故障发生的时间;
S304:故障处理单元分析确定DUT的故障类型,如确定故障类型是涉及多个模块的流量中断;
S305:波形记录策略单元根据DUT的故障类型确定相应的波形记录策略;为了给设计人员提供充分的分析素材,此处确定的波形记录策略如下:从故障发生时刻前10万ns开始记录,到故障发生后1万ns停止,并将设计中所有模块行为的仿真波形均记录下来;
S306:重新运行当前用例,S305确定的仿真现场到达时,启动波形记录单元记录相应的仿真波形用于设计人员分析定位及解决DUT故障。
至此,当前用例仿真结束。当前用例仿真结束后,可以重新回到S301开始进行下一用例的仿真。
实施例二:采用上述测试装置,同时启用其仿真进程现场处理单元,则参照图4,记录仿真波形时包括以下步骤:
S401:进行当前用例的仿真,为加快仿真速度,此时未启动波形记录单元记录仿真波形;
S402:故障处理单元实时监控DUT运行状态,同时,启动仿真进程现场处理单元定时对仿真进程的现场进行保护,一般地,以每100万ns的时间跨度对仿真进程的现场进行一次记录,故障处理单元监控到DUT运行状态异常时,进入S403;
S403:故障处理单元对DUT故障进行告警并记录故障发生的时间;
S404:故障处理单元分析确定DUT的故障类型,如确定故障类型是涉及到缓存管理相关模块的缓存泄漏;
S405:波形记录策略单元根据DUT的故障类型确定相应的波形记录策略;为了给设计人员提供充分的分析素材,此处确定的波形记录策略如下:从故障发生时刻前5万ns开始记录,到故障发生后1万ns停止,并将设计中与缓存管理相关的模块行为的仿真波形记录下来;
S406:根据仿真现场保护的时间跨度,由仿真进程现场处理单元恢复指定的仿真现场,之后继续运行该仿真现场后续的仿真进程,S405确定的仿真现场到达时,启动波形记录单元记录相应的仿真波形用于设计人员分析定位及解决DUT故障;此处,可以指定恢复故障发生时刻之前5万ns的仿真现场,即此处没有重新运行用例实现仿真波形的记录,而是从指定恢复的仿真现场开始仿真运行,仅记录6万ns的仿真波形,相比实施例一进一步节约了仿真时间。
至此,当前用例仿真结束。当前用例仿真结束后,可以重新回到S401开始进行下一用例的仿真。
以上所述仅为本发明的实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。