一种验证用例生成方法及其装置与流程

摘要: 本技术涉及芯片验证领域,尤其涉及一种验证用例生成方法及其装置。背景技术:1、在芯片设计领域,验证环节是保证芯片设计质量的关键步骤,涉及逻辑和物理设计规范确认、输...
一种验证用例生成方法及其装置与流程

本技术涉及芯片验证领域,尤其涉及一种验证用例生成方法及其装置。

背景技术:

1、在芯片设计领域,验证环节是保证芯片设计质量的关键步骤,涉及逻辑和物理设计规范确认、输入输出对应测试分析等复杂验证过程。所有芯片设计过程都需要经过软件功能验证流程,芯片功能验证环节的表现好坏直接影响到芯片的表现可能是否符合预期设计。

2、随着芯片设计复杂程度的增加,功能函数与逻辑组合带来的验证空间范围随之增长,因而对人力成本与算力成本的需求同样急剧增加。传统芯片功能设计验证方法可分为基于布尔等价性的形式化求解方法和基于数据采样的黑盒优化方法。形式化求解方法需要依据人工经验预先定义求解空间,求解所需的时间开销随着验证空间规模的增加呈指数级暴增,并且对求解器质量要求较高。与之相对,黑盒优化方法虽然不需要对验证空间进行数学建模便能直接进行求解,但对应结果容易陷入到局部极值解,并且生成结果质量具有一定随机性。

3、因此,亟需一种更高效、更准确的验证用例生成方法。

技术实现思路

1、本技术提供了一种验证用例生成方法,可以提高验证用例的生成效率和质量。

2、第一方面,本技术提供了一种验证用例生成方法,所述方法包括:根据芯片的描述和所述芯片上待验证的功能点的定义,通过语言模型,生成测试指令的集合以及每个所述功能点的解释;根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码,所述每个所述功能点对应的测试代码对应于所述指令集合中的一个或多个的组合;根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例。

3、其中,指令集合中的一个或多个的组合可以称之为,功能点与指令组合结果,是指功能点与对应指令的两两匹配上的映射关系,表明功能点需要通过对应的指令组合来实现具体功能的映射关系。测试指令的集合是还没有和功能点进行匹配的指令,是组内相关的,也就是就是对应同一个功能组内下的不同具体函数集合。

4、本技术实施例中,首先根据芯片的描述以及功能点的定义通过语言模型得到测试指令的集合以及每个所述功能点的解释,然后根据测试指令的集合以及每个所述功能点的解释通过语言模型生成每个所述功能点对应的测试代码,最后根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例,相当于按照从解释到分析、再到生成的逐层深入式的递进推理关系,逐步拆解原始资料信息,引导大模型构建高质量验证用例,与现有技术相比,本实施例通过构建结构化的知识,能够更深入地挖掘芯片设计的细节,实现更精准的功能覆盖效果。从而可以提高验证用例的生成效率和质量。

5、在一种可能的实现中,所述待验证的功能点为从多个功能点中选择的,所述多个功能点为所述芯片的历史验证用例未覆盖的功能点。

6、在一种可能的实现中,所述根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码,包括:根据所述测试指令的集合、每个所述功能点的解释芯片以及指令集规范,通过语言模型,生成每个所述功能点对应的测试代码;所述测试指令的集合为高级语言描述的代码,所述测试代码为机器语言描述的代码,所述指令集规范用于指示由高级语言描述的代码到机器语言描述的代码之间的转换规则。

7、在一种可能的实现中,所述根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码,包括:根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码以及每个所述功能点的说明;所述根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例,包括:根据每个所述功能点对应的测试代码和所述说明,通过语言模型,生成所述芯片的第一验证用例。

8、在一种可能的实现中,所述解释包括功能点中包含的具体变量的描述,所述说明为功能点的整体说明。功能点解释,是指对功能组内的各个具体功能点进行解释,描述的层次偏具体内容。功能点说明,是指对功能组整体情况进行表示,描述的层次偏总结性质。具体的,解释主要是指具体每个变量,包括输入输出,计算流程和数据流通过程的描述,说明可以是指整体构成的功能所需要达成目标所设计的整体结构的描述。

9、在一种可能的实现中,所述根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例,包括:根据每个所述功能点对应的测试代码以及指示信息,通过语言模型,生成所述芯片的第一验证用例;所述指示信息用于指示所述芯片的历史验证用例已覆盖的功能点。将历史已覆盖的程序信息传递至生成阶段,以避免语言模型重复生成雷同验证用例。

10、在一种可能的实现中,所述根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例,包括:根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第二验证用例;在所述第二验证用例存在错误时,根据每个所述功能点对应的测试代码和所述第二验证用例对应的错误信息,通过语言模型,生成所述芯片的第一验证用例。

11、第二方面,本技术提供了一种验证用例生成装置,所述装置包括:

12、解释生成模块,用于根据芯片的描述和所述芯片上待验证的功能点的定义,通过语言模型,生成测试指令的集合以及每个所述功能点的解释;

13、指令生成模块,用于根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码,所述每个所述功能点对应的测试代码对应于所述指令集合中的一个或多个的组合;

14、验证用例生成模块,用于根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第一验证用例。

15、在一种可能的实现中,所述待验证的功能点为从多个功能点中选择的,所述多个功能点为所述芯片的历史验证用例未覆盖的功能点。

16、在一种可能的实现中,所述指令生成模块,用于:

17、根据所述测试指令的集合、每个所述功能点的解释芯片以及指令集规范,通过语言模型,生成每个所述功能点对应的测试代码;所述测试指令的集合为高级语言描述的代码,所述测试代码为机器语言描述的代码,所述指令集规范用于指示由高级语言描述的代码到机器语言描述的代码之间的转换规则。

18、在一种可能的实现中,所述指令生成模块,用于:

19、根据所述测试指令的集合以及每个所述功能点的解释,通过语言模型,生成每个所述功能点对应的测试代码以及每个所述功能点的说明;

20、所述验证用例生成模块,用于:

21、根据每个所述功能点对应的测试代码和所述说明,通过语言模型,生成所述芯片的第一验证用例。

22、在一种可能的实现中,所述解释包括功能点中包含的具体变量的描述,所述说明为功能点的整体说明。

23、在一种可能的实现中,所述验证用例生成模块,用于:

24、根据每个所述功能点对应的测试代码以及指示信息,通过语言模型,生成所述芯片的第一验证用例;所述指示信息用于指示所述芯片的历史验证用例已覆盖的功能点。

25、在一种可能的实现中,所述验证用例生成模块,用于:

26、根据每个所述功能点对应的测试代码,通过语言模型,生成所述芯片的第二验证用例;

27、在所述第二验证用例存在错误时,根据每个所述功能点对应的测试代码和所述第二验证用例对应的错误信息,通过语言模型,生成所述芯片的第一验证用例。

28、第三方面,本技术提供一种计算设备。计算设备包括至少一个处理器和至少一个存储器。至少一个处理器、至少一个存储器进行相互的通信。至少一个处理器用于执行至少一个存储器中存储的指令,以使得计算设备执行如第一方面或第一方面的任一种实现方式的方法。

29、第四方面,本技术提供一种计算设备集群。计算设备集群包括至少一台计算设备,至少一台计算设备包括至少一个处理器和至少一个存储器。至少一个处理器、至少一个存储器进行相互的通信。至少一个处理器用于执行至少一个存储器中存储的指令,以使得计算设备或计算设备集群执行如第一方面或第一方面的任一种实现方式的方法,或者如第二方面或第二方面的任一种实现方式的方法。

30、第五方面,本技术提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,指令指示计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式的方法,或者如第二方面或第二方面的任一种实现方式的方法。

31、第六方面,本技术提供了一种包含指令的计算机程序产品,当其在计算设备或计算设备集群上运行时,使得计算设备或计算设备集群执行上述第一方面或第一方面的任一种实现方式的方法,或者如第二方面或第二方面的任一种实现方式的方法。

32、本技术在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。