基于仿真性能画像的SoC验证加速方法、系统、介质及终端与流程

摘要: 本技术涉及soc仿真验证,特别是涉及一种基于仿真性能画像的soc验证加速方法、系统、介质及终端。背景技术:1、随着系统级芯片(systemonchip,soc)...
基于仿真性能画像的SoC验证加速方法、系统、介质及终端与流程

本技术涉及soc仿真验证,特别是涉及一种基于仿真性能画像的soc验证加速方法、系统、介质及终端。

背景技术:

1、随着系统级芯片(system on chip,soc)集成度不断提升,单颗芯片中所集成的功能模块数量和类型持续增加,现代系统级芯片通常包括中央处理器(central processingunit,cpu)子系统、片上互连网络(network on chip,noc)、ddr控制器、高速接口模块、人工智能(artificial intelligence,ai)计算单元、安全模块以及多种外设控制器等。随着芯片功能复杂度、模块耦合程度以及软硬件协同程度不断提高,芯片验证对象也逐步由单一知识产权核(intellectual property,ip)级验证发展为面向多个子系统和功能模块的复杂系统级联合验证。在大规模soc研发过程中,通常需要针对不同功能、数据通路、接口协议、运行状态以及异常场景构建大量测试用例,并通过批量回归方式对芯片设计进行持续验证。因此,如何提高soc仿真验证效率、缩短验证周期并降低验证过程所占用的计算和存储资源,对于提升芯片研发效率具有重要意义。

2、现有soc仿真验证通常基于寄存器传输级设计、验证平台以及相关验证组件构建仿真环境,并依次经历编译、精化(elaboration)、系统初始化以及仿真运行等阶段。其中,在编译及精化阶段,需要对soc设计文件、验证平台文件以及相关验证组件进行处理并构建相应的仿真环境;在系统初始化阶段,通常还需要进行寄存器配置、存储器数据加载以及软件启动等操作;随后通过相应的测试用例驱动soc设计运行,并完成对应的功能验证。在大规模回归验证过程中,往往需要针对大量测试用例重复执行上述编译、精化、系统初始化以及仿真运行过程。此外,在门级仿真(gate-level simulation,gls)场景中,还需要加载门级网表、标准单元库以及标准延迟格式(standard delay format,sdf)文件,完成时序标注与环境构建,以检查芯片设计的时序一致性与工艺后行为正确性。由于门级后仿工程规模通常更大,且编译、环境构建和时序标注过程耗时较长,使得后仿验证的效率问题更加突出。

3、然而,现有soc仿真验证流程仍存在如下缺陷:

4、(1)由于soc设计规模庞大且包含的功能模块众多,全量编译与精化(elaboration)过程耗时冗长,导致编译时间显著增加,影响验证迭代效率。

5、(2)在仿真运行阶段,大量复杂功能模块均参与事件调度与信号翻转,无关复杂模块引入大量额外开销,降低整体仿真运行速度。

6、(3)在系统初始化阶段,寄存器配置、存储器加载以及软件启动等操作往往需要针对不同测试用例重复执行,其中部分寄存器配置通常通过axi、apb或ahb等前门总线事务逐项完成,导致初始化阶段效率较低。

7、(4)对于门级后仿,不同测试用例即使采用相同或基本相同的门级网表、sdf文件和验证平台配置,仍可能重复执行编译、精化及sdf标注环境构建,造成门级后仿验证成本较高。

8、(5)现有回归验证通常按照预先配置的测试用例集合和固定调度方式执行,对不同测试用例之间的配置共性、运行特征以及资源消耗差异利用不足,存在回归调度较为粗放的问题。

9、(6)对于编译方式、初始化方式、仿真模型、访问方式以及不同仿真运行模式等影响验证效率的配置,现有方案较多依赖验证人员根据项目经验进行人工选择和调整,难以根据不同测试用例的实际运行状态进行针对性参数调优,存在参数调优依赖人工经验的问题。

技术实现思路

1、鉴于以上所述现有技术的缺点,本技术的目的在于提供一种基于仿真性能画像的soc验证加速方法、系统、介质及终端,用于解决现有soc仿真验证过程存在的整体仿真验证效率低、验证周期较长的技术问题。

2、为实现上述目的及其他相关目的,本技术的第一方面提供一种基于仿真性能画像的soc验证加速方法,包括:获取待验证soc设计在执行多个历史仿真测试用例时产生的运行性能数据,并根据所述运行性能数据,生成仿真性能画像;获取当前仿真测试用例的仿真配置数据,并将所述当前仿真测试用例的仿真配置数据与各个所述历史仿真测试用例的仿真配置数据进行比较,以生成当前仿真测试用例的配置一致性分析结果;根据所述配置一致性分析结果,从所述仿真性能画像中确定与所述当前仿真测试用例相匹配的目标性能画像,并根据所述目标性能画像,生成当前仿真测试用例的瓶颈识别结果;根据所述当前仿真测试用例的配置一致性分析结果以及所述瓶颈识别结果,并基于参数启用规则,进行参数启用判定,以确定一或多个目标加速参数;根据一或多个所述目标加速参数,执行当前仿真测试用例,并在执行当前仿真测试用例的过程中,采集运行反馈数据,据以更新目标加速参数的启用优先级。

3、于本技术的第一方面的一些实施例中,所述目标加速参数包括快照复用参数;其中,根据一或多个所述目标加速参数,执行当前仿真测试用例的方式包括:在启用所述快照复用参数时,从多个已生成仿真快照结果中,确定目标仿真快照结果;加载所述目标仿真快照结果,控制当前仿真测试用例从所述目标仿真快照结果所对应的仿真状态开始运行,以执行当前仿真测试用例。

4、于本技术的第一方面的一些实施例中,所述采集运行反馈数据,据以更新目标加速参数的启用优先级的方式包括:根据所述运行反馈数据,确定目标加速参数所对应的加速收益;若所述目标加速参数所对应的加速收益满足预设收益条件,则在执行后续同类型仿真测试用例的过程中,提高目标加速参数的启用优先级;若目标加速参数所对应的加速收益不满足所述预设收益条件,则在执行后续同类型仿真测试用例的过程中,降低目标加速参数的启用优先级。

5、于本技术的第一方面的一些实施例中,所述目标加速参数包括rtl模块简化替换参数;其中,根据一或多个所述目标加速参数,执行当前仿真测试用例的方式包括:在启用所述rtl模块简化替换参数时,从待验证soc设计的多个rtl功能模块中,确定目标rtl模块;对所述目标rtl模块进行替换,并基于替换后的所述待验证soc设计,执行当前仿真测试用例。

6、于本技术的第一方面的一些实施例中,所述目标加速参数包括寄存器后门配置参数;其中,根据一或多个所述目标加速参数,执行当前仿真测试用例的方式包括:在启用所述寄存器后门配置参数时,确定允许后门访问的目标寄存器;将所述目标寄存器的配置方式由前门总线访问切换为后门访问,以执行当前仿真测试用例。

7、于本技术的第一方面的一些实施例中,所述目标加速参数包括分区编译参数;其中,根据一或多个所述目标加速参数,执行当前仿真测试用例的方式包括:在启用所述分区编译参数时,确定受影响编译分区、未受影响编译分区以及与所述受影响编译分区存在依赖关系的依赖编译分区;对所述受影响编译分区、所述依赖编译分区进行重新编译,并复用未受影响编译分区对应的历史编译结果,据以执行当前仿真测试用例。

8、于本技术的第一方面的一些实施例中,所述目标加速参数包括访问模式参数;其中,根据一或多个所述目标加速参数,执行当前仿真测试用例的方式包括:在启用所述访问模式参数时,将当前仿真测试用例对应的cpu真实执行模式切换为vip访问模式;根据cpu真实执行模式对应的软件访问意图,生成vip事务,并基于所述vip事务,执行当前仿真测试用例。

9、为实现上述目的及其他相关目的,本技术的第二方面提供一种基于仿真性能画像的soc验证加速系统,包括:性能画像采集模块,用于获取待验证soc设计在执行多个历史仿真测试用例时产生的运行性能数据,并根据所述运行性能数据,生成仿真性能画像;配置一致性分析模块,用于获取当前仿真测试用例的仿真配置数据,并将所述当前仿真测试用例的仿真配置数据与各个所述历史仿真测试用例的仿真配置数据进行比较,以生成当前仿真测试用例的配置一致性分析结果;瓶颈识别模块,用于根据所述配置一致性分析结果,从所述仿真性能画像中确定与所述当前仿真测试用例相匹配的目标性能画像,并根据所述目标性能画像,生成当前仿真测试用例的瓶颈识别结果;参数决策模块,用于根据所述当前仿真测试用例的配置一致性分析结果以及所述瓶颈识别结果,并基于参数启用规则,进行参数启用判定,以确定一或多个目标加速参数;加速管理模块,用于根据一或多个所述目标加速参数,执行当前仿真测试用例,并在执行当前仿真测试用例的过程中,采集运行反馈数据,据以更新目标加速参数的启用优先级。

10、为实现上述目的及其他相关目的,本技术的第三方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的基于仿真性能画像的soc验证加速方法。

11、为实现上述目的及其他相关目的,本技术的第四方面提供一种电子终端,包括存储器、处理器及存储在存储器上的计算机程序;所述处理器执行所述计算机程序以实现如上所述的基于仿真性能画像的soc验证加速方法。

12、如上所述,本技术的基于仿真性能画像的soc验证加速方法、系统、介质及终端,具有以下有益效果:

13、(1)减少重复编译及精化开销:通过生成仿真性能画像并结合配置一致性分析,识别具有复用条件的仿真测试用例,并根据瓶颈识别结果选择快照复用参数或者分区编译参数,使后续仿真测试用例能够复用已有仿真状态或未受文件变化影响的历史编译结果,减少重复全量编译及精化过程,提高设计迭代效率。

14、(2)降低无关rtl功能模块的仿真运行开销:通过根据rtl功能模块的处理器耗时占比、事件热点分布及信号翻转率识别高开销模块,并在不影响当前验证目标的情况下采用rtl模块简化替换参数,将无关复杂模块替换为轻量模型,减少无关事件调度和信号翻转,提高单个仿真测试用例的运行速度。

15、(3)缩短系统初始化及cpu执行耗时:对于非验证目标的寄存器配置,可以启用寄存器后门配置参数,以减少通过前门总线逐项配置所产生的事务开销;对于不依赖cpu真实软件执行流程的仿真测试用例,可以采用vip访问模式生成等价访问事务,从而减少重复寄存器配置、软件启动及指令执行带来的仿真耗时。

16、(4)降低门级后仿环境重复构建成本:通过比较当前门级后仿配置与已有门级后仿镜像的镜像配置信息,在满足匹配条件时复用门级后仿镜像,使多个后仿测试用例能够共享已有的门级网表编译、精化及sdf时序标注环境构建结果,减少重复后仿环境构建,提高门级后仿验证效率。

17、(5)提高不同仿真测试用例之间历史信息的利用程度:通过对历史仿真测试用例形成仿真性能画像,并将当前仿真测试用例与历史仿真测试用例进行配置一致性分析,可以利用历史测试用例的运行性能特征预测当前测试用例可能存在的性能瓶颈,从而针对不同仿真场景确定相应的目标加速参数,提高大规模回归验证中的参数配置针对性。

18、(6)降低加速参数选择对人工经验的依赖:通过配置一致性分析、瓶颈识别及参数启用规则自动确定一个或多个目标加速参数,并在仿真执行过程中采集运行反馈数据,根据实际加速收益动态调整相应目标加速参数的启用优先级,使加速参数能够结合历史执行效果持续优化,降低依赖验证人员人工选择和静态配置参数的问题。