具有自动优化配置功能的芯片仿真加速系统转让专利

申请号 : CN202310057919.3

文献号 : CN115809622B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李辉范佳欣

申请人 : 南京集成电路产业服务中心有限公司

摘要 :

本发明提供一种具有自动优化配置功能的芯片仿真加速系统,识别配置模块,得到第一关键信息,根据第一关键信息得到芯片仿真设备对目标芯片的第一配置信息;统计模块,用于对第一测试代码按照代码段功能进行分段得到多个第二测试代码,统计每个第二测试代码所对应的测试预设结果;确定模块,用于对各第二测试代码所对应的预设输出端口统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表;获取模块,统计具有时序的目标输出端口得到输出端口集合;验证仿真模块,用于基于仿真验证表对输出端口集合进行验证得到问题端口集合,根据问题端口集合确定与第二测试代码对应的多个第三测试代码。

权利要求 :

1.具有自动优化配置功能的芯片仿真加速系统,其特征在于,包括:

识别配置模块,用于在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息;

所述在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息,包括:接收到对目标芯片的仿真指令时,调取与目标芯片所对应的芯片规格书,对芯片规格书进行识别得到芯片的第一关键信息,所述第一关键信息至少包括芯片面积信息、最高频率信息、CPU类型信息、接口类型信息、核心功能信息、IP信息、PVT信息;

将所述第一关键信息发送至芯片仿真设备的控制装置,以使芯片仿真设备按照所述第一配置信息进行芯片仿真;

统计模块,用于确定所述目标芯片所对应的第一测试代码,对所述第一测试代码按照代码段功能进行分段得到多个第二测试代码,统计每个第二测试代码所对应的测试预设结果;

确定模块,用于确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表;

所述确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表,包括:对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,将预设端口集合内的预设输出端口的信号输出顺序进行排序得到每个预设端口集合的端口输出序列;

按照所述端口输出序列中预设输出端口的顺序,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表;

获取模块,用于在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合;

所述在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合,包括:在对目标芯片仿真时,对目标芯片的目标输出端口进行监测,得到每个目标输出端口的输出目标信息,确定每个输出目标信息所对应的时序标签;

按照所有输出目标信息的时序标签对所有目标输出端口的输出目标信息进行统计排序,基于所述输出目标信息的统计排序对所有目标输出端口进行排序得到输出端口集合的端口输出序列;

验证仿真模块,用于基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对芯片仿真;

所述基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对目标芯片仿真,包括:若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数;

在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数;

在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数;

对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对芯片仿真。

2.根据权利要求1所述的具有自动优化配置功能的芯片仿真加速系统,其特征在于,所述若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数,包括:确定输出端口集合中存在、预设端口集合中所不存在的目标输出端口,作为第一种类型的目标输出端口,确定输出端口集合中不存在、预设端口集合中存在的目标输出端口,作为第二种类型的目标输出端口;

对第一种类型的目标输出端口、第二种类型的目标输出端口进行统计,得到第一问题端口集合;

根据第一种类型的目标输出端口的第一种类数量、第二种类型的目标输出端口的第二种类数量进行量化计算,得到第一问题系数,通过以下公式计算第一问题系数,;其中, 为第一问题系数,为第一种类数量, 为第一种类权重,为第二种类数量, 为第二种类权重,为问题数量权重。

3.根据权利要求2所述的具有自动优化配置功能的芯片仿真加速系统,其特征在于,所述在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数,包括:对预设端口集合的端口输出序列中每个预设输出端口进行标号,得到具有第一标号的预设输出端口,对输出端口集合的端口输出序列中每个目标输出端口进行标号,得到具有第二标号的目标输出端口;

统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的相同数量,得到端口相同数量;

统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的不同数量,得到端口不同数量;

根据所述端口相同数量、端口不同数量进行计算得到第二问题端口集合量化处理的第二问题系数,通过以下公式计算第二问题系数,;其中, 为第二问题系数, 为端口不同数量, 为端口相同数

量,为端口数量权重。

4.根据权利要求3所述的具有自动优化配置功能的芯片仿真加速系统,其特征在于,所述在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数,包括:统计目标输出端口的输出目标信息与相应的预设输出信息相同的数量,得到信息相同数量;

统计目标输出端口的输出目标信息与相应的预设输出信息不同的数量,得到信息不同数量;

根据所述信息相同数量、信息不同数量进行计算得到第三问题端口集合量化处理得到第三问题系数,通过以下公式计算第三问题系数,;其中, 为第三问题系数, 为端口不同数量, 为端口相同

数量,为信息数量权重。

5.根据权利要求4所述的具有自动优化配置功能的芯片仿真加速系统,其特征在于,所述对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对目标芯片仿真,包括:统计每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行综合计算,得到综合问题系数;

将所述综合问题系数与预设问题系数进行比对得到系数差值,根据所述系数差值、预设代码数量进行计算得到第三测试代码的代码挑选数量,通过以下公式计算第三测试代码的代码挑选数量,;其中, 为计算第三测试代码的代码挑选数

量,为预设问题系数,为系数归一化值, 为预设代码数量,为数量权重值;

若所述代码挑选数量不为整数,则对所述代码挑选数量进行四舍五入的整数化处理,按照代码挑选数量在代码数据库中挑选与第二测试代码相同类型的第三测试代码;

在判断用户对目标芯片再次进行修正后,基于所挑选的第三测试代码再次对目标芯片仿真。

6.根据权利要求5所述的具有自动优化配置功能的芯片仿真加速系统,其特征在于,还包括:若判断用户针对所述第三测试代码的代码挑选数量进行调整,则将用户调整后的代码挑选数量与所计算的代码挑选数量进行比对得到代码数量调整值;

若所述代码数量调整值大于0,则权重训练模型根据所述代码数量调整值对数量权重值进行增大训练,将增大训练后的数量权重值对增大训练前的数量权重值进行调整;

若所述代码数量调整值小于0,则权重训练模型根据所述代码数量调整值对数量权重值进行减小训练,将减小训练后的数量权重值对减小训练前的数量权重值进行调整,权重训练模型通过以下公式对数量权重值进行训练,;其中, 为增大训练后的数量权重

值, 为用户调整后的代码挑选数量, 为增大训练系数, 为减小训练后的数量权重值, 为减小训练系数。

说明书 :

具有自动优化配置功能的芯片仿真加速系统

技术领域

[0001] 本发明涉及数据处理技术,尤其涉及一种具有自动优化配置功能的芯片仿真加速系统。

背景技术

[0002] 芯片仿真通常是利用大量的代码程序对芯片进行验证的手段,如果芯片能够无错执行相应的仿真代码,那么在模拟器上执行所生成的仿真结果应该与预设结果一致,因此,对芯片仿真可以用于验证芯片的稳定性,由于需要进行大量代码的反复仿真验证,因而芯片仿真执行是一个非常耗时的过程。
[0003] 因此,如何针对不同芯片的错误部分进行针对性仿真验证成为亟待解决的问题。

发明内容

[0004] 本发明实施例提供一种具有自动优化配置功能的芯片仿真加速系统,可以针对芯片的问题部分进行针对性仿真验证,在确保仿真结果的同时节省了仿真验证时间。
[0005] 本发明实施例的第一方面,提供具有自动优化配置功能的芯片仿真加速系统,包括:
[0006] 识别配置模块,用于在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息;
[0007] 统计模块,用于确定所述目标芯片所对应的第一测试代码,对所述第一测试代码按照代码段功能进行分段得到多个第二测试代码,统计每个第二测试代码所对应的测试预设结果;
[0008] 确定模块,用于确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表;
[0009] 获取模块,用于在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合;
[0010] 验证仿真模块,用于基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对芯片仿真。
[0011] 可选地,在第一方面的一种可能实现方式中,所述在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息,包括:
[0012] 接收到对目标芯片的仿真指令时,调取与目标芯片所对应的芯片规格书,对芯片规格书进行识别得到芯片的第一关键信息,所述第一关键信息至少包括芯片面积信息、最高频率信息、CPU类型信息、接口类型信息、核心功能信息、IP信息和/或PVT信息;
[0013] 将所述第一关键信息发送至芯片仿真设备的控制装置,以使芯片仿真设备按照所述第一配置信息进行芯片仿真。
[0014] 可选地,在第一方面的一种可能实现方式中,所述确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表,包括:
[0015] 对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,将预设端口集合内的预设输出端口的信号输出顺序进行排序得到每个预设端口集合的端口输出序列;
[0016] 按照所述端口输出序列中预设输出端口的顺序,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表。
[0017] 可选地,在第一方面的一种可能实现方式中,所述在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合,包括:
[0018] 在对目标芯片仿真时,对目标芯片的目标输出端口进行监测,得到每个目标输出端口的输出目标信息,确定每个输出目标信息所对应的时序标签;
[0019] 按照所有输出目标信息的时序标签对所有目标输出端口的输出目标信息进行统计排序,基于所述输出目标信息的统计排序对所有目标输出端口进行排序得到输出端口集合的端口输出序列。
[0020] 可选地,在第一方面的一种可能实现方式中,所述基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对目标芯片仿真,包括:
[0021] 若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数;
[0022] 在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数;
[0023] 在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数;
[0024] 对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对芯片仿真。
[0025] 可选地,在第一方面的一种可能实现方式中,所述若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数,包括:
[0026] 确定输出端口集合中存在、预设端口集合中所不存在的目标输出端口,作为第一种类型的目标输出端口,确定输出端口集合中不存在、预设端口集合中存在的目标输出端口,作为第二种类型的目标输出端口;
[0027] 对第一种类型的目标输出端口、第二种类型的目标输出端口进行统计,得到第一问题端口集合;
[0028] 根据第一种类型的目标输出端口的第一种类数量、第二种类型的目标输出端口的第二种类数量进行量化计算,得到第一问题系数,通过以下公式计算第一问题系数,[0029] 。
[0030] 其中, 为第一问题系数, 为第一种类数量, 为第一种类权重, 为第二种类数量, 为第二种类权重, 为问题数量权重。
[0031] 可选地,在第一方面的一种可能实现方式中,所述在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数,包括:
[0032] 对预设端口集合的端口输出序列中每个预设输出端口进行标号,得到具有第一标号的预设输出端口,对输出端口集合的端口输出序列中每个目标输出端口进行标号,得到具有第二标号的目标输出端口;
[0033] 统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的相同数量,得到端口相同数量;
[0034] 统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的不同数量,得到端口不同数量;
[0035] 根据所述端口相同数量、端口不同数量进行计算得到第二问题端口集合量化处理的第二问题系数,通过以下公式计算第二问题系数,
[0036] 。
[0037] 其中, 为第二问题系数, 为端口不同数量, 为端口相同数量,为端口数量权重。
[0038] 可选地,在第一方面的一种可能实现方式中,所述在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数,包括:
[0039] 统计目标输出端口的输出目标信息与相应的预设输出信息相同的数量,得到信息相同数量;
[0040] 统计目标输出端口的输出目标信息与相应的预设输出信息不同的数量,得到信息不同数量;
[0041] 根据所述信息相同数量、信息不同数量进行计算得到第三问题端口集合量化处理得到第三问题系数,通过以下公式计算第三问题系数,
[0042] 。
[0043] 其中, 为第三问题系数, 为端口不同数量, 为端口相同数量,为信息数量权重。
[0044] 可选地,在第一方面的一种可能实现方式中,所述对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对目标芯片仿真,包括:
[0045] 统计每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行综合计算,得到综合问题系数;
[0046] 将所述综合问题系数与预设问题系数进行比对得到系数差值,根据所述系数差值、预设代码数量进行计算得到第三测试代码的代码挑选数量,通过以下公式计算第三测试代码的代码挑选数量,
[0047] 。
[0048] 其中, 为计算第三测试代码的代码挑选数量, 为预设问题系数, 为系数归一化值, 为预设代码数量, 为数量权重值;
[0049] 若所述代码挑选数量不为整数,则对所述代码挑选数量进行四舍五入的整数化处理,按照代码挑选数量在代码数据库中挑选与第二测试代码相同类型的第三测试代码;
[0050] 在判断用户对目标芯片再次进行修正后,基于所挑选的第三测试代码再次对目标芯片仿真。
[0051] 可选地,在第一方面的一种可能实现方式中,还包括:
[0052] 若判断用户针对所述第三测试代码的代码挑选数量进行调整,则将用户调整后的代码挑选数量与所计算的代码挑选数量进行比对得到代码数量调整值;
[0053] 若所述代码数量调整值大于0,则权重训练模型根据所述代码数量调整值对数量权重值进行增大训练,将增大训练后的数量权重值对增大训练前的数量权重值进行调整;
[0054] 若所述代码数量调整值小于0,则权重训练模型根据所述代码数量调整值对数量权重值进行减小训练,将减小训练后的数量权重值对减小训练前的数量权重值进行调整,权重训练模型通过以下公式对数量权重值进行训练,
[0055] 。
[0056] 。
[0057] 其中, 为增大训练后的数量权重值, 为用户调整后的代码挑选数量,为增大训练系数, 为减小训练后的数量权重值, 为减小训练系数。
[0058] 本发明提供的一种具有自动优化配置功能的芯片仿真加速系统,会针对不同的目标芯片的规格不同对应配置相应的第一配置信息进行仿真验证,对进行仿真验证的第一测试代码按照功能不同进行分类测试验证,并将仿真过程中得到实际的输出端口集合中的输出目标信息与仿真验证表进行对比后确定问题端口集合,将问题端口集合对应的第二测试代码作为第三测试代码,基于第三测试代码再次对芯片仿真验证,从实现了针对芯片的问题部分挑选相应的仿真验证代码,再通过挑选过得仿真验证代码进行针对性仿真验证。
[0059] 本发明提供的技术方案,会分别对与预设端口集合的种类不一致的问题端口、与输出端口集合中存在顺序问题的端口和与预设输出信息不对应的问题端口分别进行量化处理得到第一问题系数、第二问题系数和第三问题系数,并根据第一问题系数、第二问题系数以及第三问题系数进行综合计算得到综合问题系数,根据综合问题系数确定代码挑选数量,使得本发明可以依据芯片仿真时问题的多少针对性的挑选相应数量的仿真代码进行后续的仿真,提升芯片仿真验证的效率。
[0060] 本发明提供的技术方案,拥有自主学习训练的过程,当用户发现仿真训练的代码量过大,系统则会主动记录用户调小的过程,并对权重加以减小训练使得后续输出的代码数量更适合,当用户发现仿真训练的代码量过小,系统则会主动记录用户调大的过程,并对权重加以增大训练使得后续输出的代码数量更适合。

附图说明

[0061] 图1为本发明所提供的一种具有自动优化配置功能的芯片仿真加速系统的结构示意图。

具体实施方式

[0062] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0063] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
[0064] 应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0065] 应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0066] 应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
[0067] 应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
[0068] 取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
[0069] 下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0070] 本发明提供一种具有自动优化配置功能的芯片仿真加速系统,如图1所示,具体如下:
[0071] 识别配置模块,用于在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息。
[0072] 其中,芯片规格书为每个芯片对应的规格说明书,可以理解的是,每个芯片都有其对应的规格说明书,规格说明书中包含了芯片对应的所有参数信息也就是第一关键信息。
[0073] 需要说明的是,每个芯片对应的参数不同相应的依据不同参数对芯片仿真设备的配制数据也不同,因此需要根据不同芯片的第一关键信息对芯片仿真设备进行配置相应的第一配置信息。
[0074] 通过上述实施方式,可以针对不同芯片配置不同的仿真环境,使得后续的仿真结果较为准确。
[0075] 在一些实施例中,识别配置模块(在接收到对目标芯片的仿真指令时,对芯片规格书进行识别得到芯片的第一关键信息,根据所述第一关键信息得到芯片仿真设备对目标芯片的第一配置信息)中的包括:
[0076] 接收到对目标芯片的仿真指令时,调取与目标芯片所对应的芯片规格书,对芯片规格书进行识别得到芯片的第一关键信息,所述第一关键信息至少包括芯片面积信息、最高频率信息、CPU类型信息、接口类型信息、核心功能信息、IP信息和/或PVT信息。
[0077] 可以理解的是,当接收到仿真指令时,会从与目标芯片所对应的芯片规格书中提取出相应的关键词,从而提取到相应的第一关键信息,第一关键信息至少包括芯片面积信息、最高频率信息、CPU类型信息、接口类型信息、核心功能信息、IP信息和/或PVT信息等,方便后续芯片仿真设备依据相应的参数进行配置合适的仿真环境。
[0078] 将所述第一关键信息发送至芯片仿真设备的控制装置,以使芯片仿真设备按照所述第一配置信息进行芯片仿真。
[0079] 其中,第一关键信息为对芯片规格书进行关键词提取后得到的关键词信息,芯片仿真设备依据第一关键信息配置相应的第一配置信息,从而生成与目标芯片相适应的仿真环境。
[0080] 可以理解的是,不同芯片的参数不同适应的仿真环境不同,因此需要依据不同芯片的参数去配置合适的仿真环境,方便后续进行芯片的仿真验证。
[0081] 统计模块,用于确定所述目标芯片所对应的第一测试代码,对所述第一测试代码按照代码段功能进行分段得到多个第二测试代码,统计每个第二测试代码所对应的测试预设结果。
[0082] 其中,第一测试代码为所有测试的代码,例如:对红绿灯芯片进行检测,第一测试代码包括对三岔路口的红绿灯测试、对十字路口的红绿灯测试等,也可以是对行走小车进行检测,第一测试代码包括转弯、直行、转圈、停顿等在此不做限定,包括了所有测试情况。
[0083] 第二测试代码为按照代码段功能对第一测试代码进行分段得到的测试代码,可以理解的是,三岔路口的红绿灯测试为一个第二测试代码段,对十字路口的红绿灯测试为另一个第二测试代码段,以功能对第一测试代码进行分段得到多个第二测试代码,并统计每个第二测试代码所对应的测试预设结果,其中,测试预设结果为每个第二测试代码进行测试后的预设正确结果。
[0084] 通过上述方式,通过代码段功能对第一测试代码进行分段处理得到多个第二测试代码,每个第二测试代码都以一个功能为基础对应着一个测试场景,并且获取了每个第二测试代码对应的测试预设结果,方便后续通过实际检测结果与测试预设结果进行比对发现是否存在错误。
[0085] 确定模块,用于确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表。
[0086] 其中,预设输出端口为目标芯片的输出端口,可以理解的是,不同第二测试代码对应着不同的检测情况,检测情况不同应该输出信号的引脚(端口)不同,例如:三叉路口的红绿灯检测理论输出端口为端口1、端口2和端口3,十字路口的红绿灯检测理论输出端口为端口3、端口4和端口5。
[0087] 预设输出信息为每个预设端口集合中预设输出端口的理论输出信息,例如:三叉路口的红绿灯检测理论输出端口为端口1:高电平、端口2:低电平和端口3:高电平。
[0088] 可以理解的是,统计每个情况下芯片的预设输出端口以及相应的预设输出信息,可以得到每种情况下芯片的每个端口的实际输出情况从而得到仿真验证表。
[0089] 通过上述方式,方便后续将实际验证结果与理论结果进行比对发现容易出错的情况对应的代码,方便后续依据错误挑选相对应的仿真代码。
[0090] 在一些实施例中,确定模块(确定所述目标芯片的多个预设输出端口,对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表)中的包括:
[0091] 对每一个第二测试代码所对应的所有预设输出端口进行统计得到预设端口集合,将预设端口集合内的预设输出端口的信号输出顺序进行排序得到每个预设端口集合的端口输出序列。
[0092] 可以理解的是,会统计每一个第二测试代码理论上的预设输出端口从而得到预设端口集合,并且按照时间顺序对预设端口集合内的预设输出端口的信号输出顺序进行排序得到端口输出序列,例如:三叉路口的红绿灯检测理论输出端口为端口1(1s)、端口2(2s)和端口3(3s),端口输出序列为:端口1(1s)‑端口2(2s)‑端口3(3s),预设端口集合为端口1、端口2和端口3,需要说明的是,端口输出序列是按照预设输出端口输出信号的时间先后顺序进行排序得到的序列。
[0093] 按照所述端口输出序列中预设输出端口的顺序,统计每个预设端口集合中预设输出端口的预设输出信息得到仿真验证表。
[0094] 可以理解的是,统计每个第二测试代码对应的预设输出端口、预设输出端口的输出顺序以及预设输出端口的预设输出信息从而得到仿真验证表,仿真验证表中包含了每个第二测试代码对应的理论输出结果。
[0095] 获取模块,用于在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合。
[0096] 可以理解的是,在对对目标芯片进行仿真时,按照时间顺序获取每个目标输出端口的输出目标信息,其中,输出目标信息为目标输出端口输出的实际信息,并统计所有实际的目标输出端口得到输出端口集合,方便后续将实际情况的输出端口集合和按照时序进行输出的输出目标信息与理论的仿真验证表进行比对,确定相应的问题端口。
[0097] 在一些实施例中,获取模块(在对目标芯片仿真时,按照时序获取每个目标输出端口的输出目标信息,统计具有相对应时序的目标输出端口得到输出端口集合)中的包括:
[0098] 在对目标芯片仿真时,对目标芯片的目标输出端口进行监测,得到每个目标输出端口的输出目标信息,确定每个输出目标信息所对应的时序标签。
[0099] 其中,目标输出端口为目标芯片的实际输出端口;输出目标信息为每个实际输出端口输出的实际信号,例如可以是高电平或低电平;时序标签为每个输出目标信息所对应的时间顺序标签,例如:端口1在1s后发出信号,端口2在2s后发出信号。
[0100] 可以理解的是,在对目标芯片仿真时,会对目标芯片的所有目标输出端口进行监测,从而得到每个目标输出端口的输出目标信息,输出目标信息可以是高电平,也可以是地电平在此不做限定,并确定输出目标信息所对应的时序标签,方便后续依据时序标签对所有目标输出端口的输出目标信息进行统计排序。
[0101] 按照所有输出目标信息的时序标签对所有目标输出端口的输出目标信息进行统计排序,基于所述输出目标信息的统计排序对所有目标输出端口进行排序得到输出端口集合的端口输出序列。
[0102] 其中,输出端口集合的端口输出序列为基于目标信息的时序标签对相应目标输出端口的输出目标信息进行排序得到的序列。
[0103] 可以理解的是,输出端口集合的端口输出序列为对每个第二测试代码进行仿真验证时的实际输出的信号序列,方便后续将实际和理论进行比对发现容易出现问题的端口。
[0104] 验证仿真模块,用于基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对芯片仿真。
[0105] 可以理解的是,将理论的仿真验证表与实际的输出端口集合进行比对从而确定问题端口,统计所有问题端口得到问题端口集合;选择与出现问题端口的第二测试代码功能相同的多个第三测试代码,将容易出现问题的第三测试代码再次对芯片仿真。
[0106] 例如:对目标芯片进行十字路口的仿真验证,十字路口有3个方向进行显示,但有1个未进行显示,因此获取专门用于验证方向的代码段作为第三测试代码,进行后续的仿真。
[0107] 在一些实施例中,获取模块(基于所述仿真验证表对所述输出端口集合进行验证得到问题端口集合,根据所述问题端口集合确定与第二测试代码所对应的多个第三测试代码,基于所述第三测试代码再次对目标芯片仿真)中的包括:
[0108] 若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数。
[0109] 可以理解的是,如果第二测试代码在进行测试时的实际输出端口集合与预设的理论端口集合种类对比不一致,则可以确定实际输出端口集合中出现种类问题的端口得到第一问题端口集合,并对第一问题端口集合量化处理得到第一问题系数。
[0110] 例如:在进行三叉路口测试时的实际输出端口集合为端口2、端口3和端口4,但三叉路口测试理论上的预设端口集合为端口1、端口2和端口3,从而确定第一问题端口集合为端口4、端口1。
[0111] 在一些实施例中,(若存在第二测试代码在进行测试所得到的输出端口集合与预设端口集合的种类比对不一致,则确定输出端口集合中存在种类问题的端口得到第一问题端口集合,对所述第一问题端口集合量化处理得到第一问题系数)中的包括:
[0112] 确定输出端口集合中存在、预设端口集合中所不存在的目标输出端口,作为第一种类型的目标输出端口,确定输出端口集合中不存在、预设端口集合中存在的目标输出端口,作为第二种类型的目标输出端口。
[0113] 可以理解的是,当实际的输出端口集合中存在的端口且理论中的预设端口集合不存在相应的端口,则确定该端口为第一种类型的目标输出端口;如果某端口不存在于实际的输出端口集合中且存在于理论的预设端口集合中,则将该端口作为第二种类型的目标输出端口。
[0114] 例如:在进行三叉路口测试时的实际输出端口集合为端口2、端口3和端口4,但三叉路口测试理论上的预设端口集合为端口1、端口2和端口3,第一种类型的目标输出端口为:端口4,第二种类型的目标输出端口为:端口1。
[0115] 对第一种类型的目标输出端口、第二种类型的目标输出端口进行统计,得到第一问题端口集合。
[0116] 可以理解的是,对第一种类型的目标输出端口、第二种类型的目标输出端口进行统计从而得到所有的第一问题端口集合,例如:第一问题端口集合为{端口4、端口1}[0117] 根据第一种类型的目标输出端口的第一种类数量、第二种类型的目标输出端口的第二种类数量进行量化计算,得到第一问题系数,通过以下公式计算第一问题系数,[0118] 。
[0119] 其中, 为第一问题系数, 为第一种类数量, 为第一种类权重, 为第二种类数量, 为第二种类权重, 为问题数量权重,可以理解的是,第一问题系数 与第一种类数量 成正比,第一问题系数 与第二种类数量 成正比,由于第一种类型的目标输出端口为不应该存在的问题端口,因此第一种类权重 大于第二种类权重 。
[0120] 可以理解的是,通过对第一种类型的目标输出端口的第一种类数量、第二种类型的目标输出端口的第二种类数量进行量化计算,得到第一问题系数,方便后续根据第一问题系数和其他问题系数对仿真验证代码进行挑选。
[0121] 在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数。
[0122] 可以理解的是,在完成种类对比后,将理论的预设端口集合的端口输出序列与实际的输出端口集合的端口输出序列进行比对,查看实际的出端口集合中是否存在顺序问题的端口,如果存在出现顺序问题的端口则将该输出端口作为第二问题端口集合,并对第二问题端口集合量化处理得到第二问题系数。
[0123] 例如:三叉路口的红绿灯检测理论预设端口集合的端口输出序列为端口1(1s)‑端口2(2s)‑端口3(3s),而实际的输出端口集合的端口输出序列为端口1(1s)‑端口3(2s)‑端口2(3s),因此第二问题端口集合为{端口3、端口2}。
[0124] 在一些实施例中,(在种类比对完成后,将预设端口集合的端口输出序列与输出端口集合的端口输出序列进行比对,确定输出端口集合中存在顺序问题的端口得到第二问题端口集合,对所述第二问题端口集合量化处理得到第二问题系数)中的包括:
[0125] 对预设端口集合的端口输出序列中每个预设输出端口进行标号,得到具有第一标号的预设输出端口,对输出端口集合的端口输出序列中每个目标输出端口进行标号,得到具有第二标号的目标输出端口。
[0126] 可以理解的是,对预设端口集合的端口输出序列中每个预设输出端口进行标号得到具有第一标号的预设输出端口,并同时对输出端口集合的端口输出序列中每个目标输出端口进行标号得到具有第二标号的目标输出端口,其中,第一标号、第二标号可以是端口1、端口A等在此不做限定。
[0127] 统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的相同数量,得到端口相同数量。
[0128] 可以理解的是,统计理论输出端口和实际输出端口相同标号的数量,得到端口相同数量,方便后续进行量化。
[0129] 统计相同数字的第一标号和第二标号分别对应的预设输出端口和目标输出端口的不同数量,得到端口不同数量。
[0130] 可以理解的是,统计理论输出端口和实际输出端口不相同标号的数量,得到端口不同数量,方便后续进行量化。
[0131] 根据所述端口相同数量、端口不同数量进行计算得到第二问题端口集合量化处理的第二问题系数,通过以下公式计算第二问题系数,
[0132] 。
[0133] 其中, 为第二问题系数, 为端口不同数量, 为端口相同数量, 为端口数量权重,可以理解的是,第二问题系数 与端口不同数量 成正比,端口数量权重 可以是人为提前设置的,当不同的数量越多相应的第二问题系数越大。
[0134] 在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数。
[0135] 可以理解的是,再对端口输出序列比对完成后,基于仿真验证表确定实际的输出端口集合中与预设输出信息不对应的输出目标信息的预设输出端口,例如:端口1理论的预设输出信息为高电平,但实际的输出目标信息为低电平,因此得到第三问题端口集合,并对所述第三问题端口集合量化处理得到第三问题系数。
[0136] 在一些实施例中,(在端口输出序列比对完成后,基于仿真验证表确定输出端口集合中与预设输出信息不对应的目标输出端口,得到第三问题端口集合,对所述第三问题端口集合量化处理得到第三问题系数)中的包括:
[0137] 统计目标输出端口的输出目标信息与相应的相同的数量,得到信息相同数量。
[0138] 可以理解的是,统计实际的目标输出端口的输出目标信息和相应的理论的预设输出信息相同的数量从而得到信息相同数量,方便后续进行量化处理。
[0139] 统计目标输出端口的输出目标信息与相应的预设输出信息不同的数量,得到信息不同数量。
[0140] 可以理解的是,统计实际的目标输出端口的输出目标信息和相应的理论的预设输出信息不相同的数量从而得到信息不同数量,方便后续进行量化处理。
[0141] 根据所述信息相同数量、信息不同数量进行计算得到第三问题端口集合量化处理得到第三问题系数,通过以下公式计算第三问题系数,
[0142] 。
[0143] 其中, 为第三问题系数, 为端口不同数量, 为端口相同数量, 为信息数量权重,可以理解的是,第三问题系数 与端口不同数量 成正比,端口不同数量越多相应的第三问题系数越大。
[0144] 对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对芯片仿真。
[0145] 可以理解的是,根据对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计从而确定相应的第三测试代码的代码挑选数量,问题系数越大相应的挑选数量越大,选取与代码挑选数量对应的第三测试代码再次对芯片仿真。
[0146] 在一些实施例中,(对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行统计,确定与第二测试代码所对应的第三测试代码的代码挑选数量,选取与代码挑选数量对应的第三测试代码再次对芯片仿真)中的包括:
[0147] 统计每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行综合计算,得到综合问题系数。
[0148] 可以理解的是,对每一个第二测试代码所对应的第一问题系数、第二问题系数以及第三问题系数进行综合计算从而得到综合问题系数,方便后续根据综合问题系数生成代码挑选数量。
[0149] 将所述综合问题系数与预设问题系数进行比对得到系数差值,根据所述系数差值、预设代码数量进行计算得到第三测试代码的代码挑选数量,通过以下公式计算第三测试代码的代码挑选数量,
[0150] 。
[0151] 其中, 为第三测试代码的代码挑选数量, 为预设问题系数, 为系数归一化值, 为预设代码数量, 为数量权重值,可以理解的是,第三测试代码的代码挑选数量 与第三问题系数 成正比,第三测试代码的代码挑选数量 与第二问题系数
成正比,第三测试代码的代码挑选数量 与第以问题系数 成正比,预设代码数量
可以是人为提前设置的,问题系数越大相应的代码挑选数量越大。
[0152] 若所述代码挑选数量不为整数,则对所述代码挑选数量进行四舍五入的整数化处理,按照代码挑选数量在代码数据库中挑选与第二测试代码相同类型的第三测试代码。
[0153] 可以理解的是,如果代码挑选数量不为整数,则通过四舍五入的方式将代码挑选数量整数化处理,基于代码挑选数量在代码数据库中挑选与第二测试代码相同类型的第三测试代码,选取容易出现问题的代码进行再次仿真验证。
[0154] 在判断用户对目标芯片再次进行修正后,基于所挑选的第三测试代码再次对目标芯片仿真。
[0155] 可以理解的是,在仿真过程中发现目标芯片出现问题后则进行修正,修正后则挑选容易出现问题的第三测试代码再次对目标芯片仿真。
[0156] 在上述实施例的基础上,还包括:
[0157] 若判断用户针对所述第三测试代码的代码挑选数量进行调整,则将用户调整后的代码挑选数量与所计算的代码挑选数量进行比对得到代码数量调整值。
[0158] 可以理解的是,如果用户发现第三测试代码的代码挑选数量过多或过少则会进行相应的调整,将代码挑选数量进行调大或调小,根据用户调整后的代码挑选数量与系统自动计算出的代码挑选数量进行比对得到代码数量调整值,方便后续根据代码数量调整值对权重进行训练。
[0159] 若所述代码数量调整值大于0,则权重训练模型根据所述代码数量调整值对数量权重值进行增大训练,将增大训练后的数量权重值对增大训练前的数量权重值进行调整。
[0160] 可以理解的是,如果代码数量调整值大于0,则说明第三测试代码的代码挑选数量过少,用户将相应的代码数量进行了调大处理,权重训练模型根据代码数量调整值对数量权重值进行增大训练。
[0161] 若所述代码数量调整值小于0,则权重训练模型根据所述代码数量调整值对数量权重值进行减小训练,将减小训练后的数量权重值对减小训练前的数量权重值进行调整。
[0162] 可以理解的是,如果代码数量调整值小于0,则说明第三测试代码的代码挑选数量过多,用户将相应的代码数量进行了调小处理,权重训练模型根据代码数量调整值对数量权重值进行减小训练。
[0163] 权重训练模型通过以下公式对数量权重值进行训练,
[0164] 。
[0165] 其中, 为增大训练后的数量权重值, 为用户调整后的代码挑选数量,为增大训练系数, 为减小训练后的数量权重值, 为减小训练系数,可以理解的
是,增大训练后的数量权重值 与代码数量调整值 成正比,减小训练后的
数量权重值 与代码数量调整值 成反比。
[0166] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。