芯片仿真验证方法、系统、设备及存储介质技术方案

技术编号:29054393 阅读:20 留言:0更新日期:2021-06-26 06:23
本发明专利技术提供了一种芯片仿真验证方法、系统、设备及存储介质,该方法包括:获取芯片验证配置文件,芯片验证配置文件包括算子参数和测试参数,算子参数包括各个算子的配置参数,测试参数包括运行模式,运行模式包括单个算子测试和/或芯片模型整体测试;根据芯片验证配置文件生成随机激励数据;将随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果;根据随机激励数据和芯片的输入数据格式要求,生成输入芯片的输入文件;将输入文件输入芯片,并获取芯片的输出结果;比对仿真结果和芯片的输出结果,得到芯片验证结果。本发明专利技术应用于神经网络模型推理芯片的仿真和验证,实现了不同神经网络模型和算子的快速功能验证。了不同神经网络模型和算子的快速功能验证。了不同神经网络模型和算子的快速功能验证。

【技术实现步骤摘要】
芯片仿真验证方法、系统、设备及存储介质


[0001]本专利技术涉及数据处理
,尤其涉及一种芯片仿真验证方法、系统、设备及存储介质。

技术介绍

[0002]芯片验证一直是随着芯片设计不断发展的一个行业,功能验证在芯片的整体设计周期中占据很多时间。近年来随着计算机算力的提升,面向不同场景的各类算法模型层出不穷,一方面针对工业的实际需求场景设计和迭代不同的网络模型,另一方面,将这些模型转换成硬件支撑的算力,在模型的推理阶段,将已经训练好的神经网络模型算法写在芯片上,实现实时推理并且低功耗的目的,是很多公司的核心竞争力。芯片作为人工智能(Artificial Intelligence,AI)技术的硬件基础和产业落地的必然载体,建立一套针对AI算法的芯片验证架构用来缩短芯片的研发周期就变得越来越重要。
[0003]目前芯片验证的主流框架是通用验证方法学(Universal Verification Methodology,UVM),UVM是一种通用的验证方法学,提供一种设计模式的规范化,并为构建平台提供基础库。用户可以根据需求直接扩充功能得到自己的验证组件,搭建完整的验证平台。但是规范化的同时,也带来了入门的门槛,用户需要熟悉UVM的架构,然后根据需求构建自己的UVM测试平台。《基于UVM和FPGA的芯片软硬件仿真环境》,CN107463473A,针对UVM验证的场景受限,速度慢问题提出了一种基于UVM和FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)的芯片软硬件仿真环境,通过IP标准模型与FPGA验证平台连接,驱动FPGA进行仿真验证,将验证结果作为现场环境配置发送给UVM,UVM验证平台与IP标准模型连接,调用IP标准模型中的算法对FPGA结果进行仿真验证,可以获得更多的验证场景。这种方法的验证环境的搭建过程比较复杂。
[0004]基于C/C++/system Verilog是目前较通用的芯片验证语言,这些语言的特点是每次对验证代码的修改,都需要重新编译,当面对大规模的测试数据集时候,频繁编译的操作无疑降低了验证效率。针对这个问题,《一种片上系统芯片验证的方法和装置》,CN101515301A,提出一种将芯片验证所需的配置和模块约束条件单独生成一个配置文件的方法来产生随机测试向量,再根据定义好的指令解释模块译码配置文件的信息,传入芯片进行芯片验证。这种方法虽然将配置和激励文件单独生成减少了重复编译的操作,但是引入了指令解释模块,并且对验证调试的快速定位问题并没有改善。
[0005]《一种基于可执行文件的芯片验证方法和装置》,CN106708687A,提出一种基于可执行文件的芯片验证方法和装置,通过生成一个包含配置信息和数据包的可执行文件,该文件独立于验证环境之外,可以降低仿真的内存占用,提高算法源码的保密性。但是这里可执行文件是基于C实现的,大量测试用例测试会进行频繁的编译操作,另外在提高源码的保密性的同时也将验证过程拆分成了两步操作,降低了验证的灵活性。

技术实现思路

[0006]针对现有技术中的问题,本专利技术的目的在于提供一种芯片仿真验证方法、系统、设备及存储介质,应用于神经网络模型推理芯片的仿真和验证,实现不同神经网络模型和算子的快速功能验证。
[0007]本专利技术实施例提供一种芯片仿真验证方法,包括如下步骤:
[0008]获取芯片验证配置文件,所述芯片验证配置文件包括算子参数和测试参数,所述算子参数包括各个算子的配置参数,所述测试参数包括运行模式,所述运行模式包括单个算子测试和/或芯片模型整体测试;
[0009]根据所述芯片验证配置文件生成随机激励数据;
[0010]根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果;
[0011]根据所述随机激励数据和芯片的输入数据格式要求,生成输入芯片的输入文件;
[0012]将所述输入文件输入芯片,并获取所述芯片的输出结果;
[0013]比对所述仿真结果和所述芯片的输出结果,得到芯片验证结果。
[0014]在一些实施例中,所述芯片验证配置文件为excel文件,所述excel文件中定义至少一测试用例的算子参数和测试参数,所述测试参数还包括测试用例编号。
[0015]在一些实施例中,所述根据所述芯片验证配置文件生成随机激励数据,包括:
[0016]根据所述芯片验证配置文件中每个测试用例的算子参数和测试参数,确定测试任务信息;
[0017]根据所述测试任务信息生成对应于每个测试任务的随机激励数据。
[0018]在一些实施例中,基于Python语言构建该芯片仿真验证方法的实现环境。
[0019]在一些实施例中,根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果,包括如下步骤:
[0020]基于所述算子参数构建用于测试的仿真算子;
[0021]判断所述运行模式为单个算子测试还是芯片模型整体测试;
[0022]如果所述运行模式为单个算子测试,则将所述随机激励数据输入所对应的仿真算子,并从所对应的仿真算子获取输出数据作为仿真结果。
[0023]在一些实施例中,所述运行模式包括芯片模型整体测试时,所述测试参数还包括芯片模型整体测试时各个算子的连接关系。
[0024]在一些实施例中,根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果,包括如下步骤:
[0025]基于所述算子参数构建用于测试的仿真算子;
[0026]判断所述运行模式为单个算子测试还是芯片模型整体测试;
[0027]如果所述运行模式为芯片模型整体测试,根据所述测试参数中的各个算子的连接关系,构建将所对应的仿真算子相连接的仿真算法模型;
[0028]将所述随机激励数据输入构建好的仿真算法模型,并从所述仿真算法模型获取输出数据作为仿真结果。
[0029]在一些实施例中,所述芯片验证配置文件还包括地址参数,所述地址参数包括芯片中的输入数据地址和输出数据地址,所述芯片配置为接收到输入文件后存储于所述输入
数据地址并将输出结果存储于所述输出数据地址;
[0030]获取所述芯片的输出结果,包括从所述芯片的输出数据地址读取所述芯片的输出结果。
[0031]在一些实施例中,所述地址参数还包括芯片中的模型参数地址,所述芯片还配置为从所述模型参数地址中读取芯片模型参数。
[0032]在一些实施例中,所述获取仿真结果之后,还包括:将所述仿真结果保存为text文件;
[0033]获取所述芯片的输出结果之后,还包括:将所述芯片的输出结果保存为text文件。
[0034]在一些实施例中,如果当前为联调验证模式,所述得到芯片验证结果之后,还包括如下步骤:
[0035]判定所述仿真算法模型的输出结果和所述芯片的输出结果是否一致;
[0036]如果不一致,则在基于Python语本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种芯片仿真验证方法,其特征在于,包括如下步骤:获取芯片验证配置文件,所述芯片验证配置文件包括算子参数和测试参数,所述算子参数包括各个算子的配置参数,所述测试参数包括运行模式,所述运行模式包括单个算子测试和/或芯片模型整体测试;根据所述芯片验证配置文件生成随机激励数据;根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果;根据所述随机激励数据和芯片的输入数据格式要求,生成输入芯片的输入文件;将所述输入文件输入芯片,并获取所述芯片的输出结果;比对所述仿真结果和所述芯片的输出结果,得到芯片验证结果。2.根据权利要求1所述的芯片仿真验证方法,其特征在于,所述芯片验证配置文件为excel文件,所述excel文件中定义至少一测试用例的算子参数和测试参数,所述测试参数还包括测试用例编号。3.根据权利要求2所述的芯片仿真验证方法,其特征在于,所述根据所述芯片验证配置文件生成随机激励数据,包括:根据所述芯片验证配置文件中每个测试用例的算子参数和测试参数,确定测试任务信息;根据所述测试任务信息生成对应于每个测试任务的随机激励数据。4.根据权利要求1所述的芯片仿真验证方法,其特征在于,基于Python语言构建该芯片仿真验证方法的实现环境。5.根据权利要求1所述的芯片仿真验证方法,其特征在于,根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果,包括如下步骤:基于所述算子参数构建用于测试的仿真算子;判断所述运行模式为单个算子测试还是芯片模型整体测试;如果所述运行模式为单个算子测试,则将所述随机激励数据输入所对应的仿真算子,并从所对应的仿真算子获取输出数据作为仿真结果。6.根据权利要求1所述的芯片仿真验证方法,其特征在于,所述运行模式包括芯片模型整体测试时,所述测试参数还包括芯片模型整体测试时各个算子的连接关系。7.根据权利要求6所述的芯片仿真验证方法,其特征在于,根据所述运行模式将所述随机激励数据输入对应的仿真算子或仿真算法模型,并获取仿真结果,包括如下步骤:基于所述算子参数构建用于测试的仿真算子;判断所述运行模式为单个算子测试还是芯片模型整体测试;如果所述运行模式为芯片模型整体测试,根据所述测试参数中的各个算子的连接关系,构建将所对应的仿真算子相连接的仿真算法模型;将所述随机激励数据输入构建好的仿真算法模型,并从所述仿真算法模型获取输出数据作为仿真结果。8.根据权利要求1所述的芯片仿真验证方法,其特征在于,所述芯片验证配置文件还包括地址参数,所述地址参数包括芯片中的输入数据地址和输出数据地址,所...

【专利技术属性】
技术研发人员:谭黎敏李明慧宋捷
申请(专利权)人:上海西井信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1