System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 用于功能验证的随机指令生成方法、设备及系统技术方案_技高网

用于功能验证的随机指令生成方法、设备及系统技术方案

技术编号:39935585 阅读:3 留言:0更新日期:2024-01-08 22:09
本申请提供了用于功能验证的随机指令生成方法、设备及系统,其包括:获取与待测设计相关的硬件配置信息以及测试需求信息;根据所获取的信息确定待生成的测试程序中指令的层次结构及各层次关联的约束条件,以及基于各层次约束依次生成字段、构建指令、组成指令块并进而得到测试程序。在这样的测试程序中全部指令都是随机生成的,且指令的每个字段也是随机产生的,这些字段的组合方式更为多样,具有充分的随机性和灵活性,可在最大程度上覆盖各种可能的测试点,从而有利于改善验证效率和提高覆盖率。

【技术实现步骤摘要】

本申请涉及芯片验证领域,尤其涉及用于功能验证的随机指令生成方法、设备及系统


技术介绍

1、本部分的陈述仅仅是为了提供与本申请的技术方案有关的背景信息,以帮助理解,其对于本申请的技术方案而言并不一定构成现有技术。

2、芯片的功能验证通常是指验证所编写的寄存器传输级(rtl,register transferlevel)代码是否符合芯片的设计规范,其中待验证的rtl代码通常称为待测设计(designunder test,dut)。功能验证过程通常包括:根据从芯片设计规范提取的测试点编写测试用例、编译测试用例、在验证平台(testbench)上运行经编译后的测试用例生成测试序列并将其传递至dut、dut响应于输入的测试序列产生输出结果、检查输出结果与预期结果差异并收集覆盖率。这样的功能验证过程是个不断迭代的过程,往往需要验证人员不断编写或修改测试用例来覆盖可能的测试点。但对于处理器级别的复杂芯片设计,这样编写的测试用例仍然受验证人员个体经验的约束,很难覆盖所有可能的测试点,随机性不够。另外,验证过程中经常需要重新修改测试用例并重新编译,不仅灵活性不高,而且延长了验证周期,验证效率有待提高。

3、需要说明的是,上述内容仅用于帮助理解本申请的技术方案,并不作为评价本申请的现有技术的依据。


技术实现思路

1、本申请的目的是提供用于功能验证的随机指令生成方法及设备,可以自动生成覆盖率高的随机指令来对诸如处理器级别的复杂芯片设计进行快速高效的功能验证。

2、上述目的是通过以下技术方案实现的:

3、根据本申请实施例的第一方面,提供了一种用于功能验证的随机指令生成方法,其包括:获取与待测设计相关的硬件配置信息以及测试需求信息;根据所获取的信息确定待生成的测试程序中指令的层次结构及各层次关联的约束条件,其中所述测试程序包括多个指令块,所述指令块包括多个指令,所述指令由一个或多个字段构成,所述指令的层次结构自底向上至少包括字段层次、指令层次和指令块层次;以及根据所述指令的层次结构中各层次关联的约束条件生成相应指令。在该方案中,支持根据这样的指令的层次结构自底向上,首先随机地生成指令的各字段,进而通过随机生成的字段拼接成指令。由于随机生成的这些字段的组合方式更为多样,会产生很多意想不到的指令或异常场景,因此这样产生的指令具有较好的随机性。通过由这样随机生成的大量指令所构成的测试程序来进行功能验证,减少了对验证人员个体经验的依赖,可以充分地模拟处理器的各种真实运行情况,在最大程度上覆盖各种可能的测试点,从而有利于改善验证效率和提高覆盖率。

4、在一些实施例中,所述根据所述指令的层次结构中各层次关联的约束条件生成相应指令,可以包括根据与指令块层次关联的约束条件确定各个指令块中待生成的各类指令类型的数量,并通过下面的步骤生成相应数量的指令:根据所述指令的层次结构中字段层次的约束条件随机地生成指令的各个字段值;以及根据与指令层次关联的约束条件将所生成的各字段值拼接成指令。由此,从指令层次结构的最低的字段层次开始,根据各层次关联的约束条件依次随机生成字段、构建指令、组成指令块并进而得到测试程序。

5、在一些实施例中,根据所获取的信息确定待生成的测试程序中指令的层次结构及各层次关联的约束条件,可包括:

6、根据测试需求信息中指定的指令条数和指令比例,为待生成的测试程序分别确定各个指令块的指令总数,以及指令块中各类型指令的数量。

7、在一些实施例中,与待测设计相关的硬件配置信息是指与待测设计所采用的硬件架构、硬件规格和指令集相关的信息。与待测设计相关的硬件配置信息可以是与所述待测设计相关的设计规范文件中获取的。与待测设计相关的测试需求信息至少可包括与测试范围、测试内容和指令生成方式相关的信息。

8、在一些实施例中,该方法还可包括:接收与所述待测设计相关的设计规范文件,从所接收的文件中获取与待测设计相关的硬件配置信息。

9、在一些实施例中,该方法还可包括:通过预设的测试配置接口接收用户输入信息,基于所接收的用户输入信息生成与待测设计相关的测试需求信息,所述测试需求信息至少包括与测试范围、测试内容和指令生成方式相关的信息。

10、在一些实施例中,与指令块层次关联的约束条件至少可以包括与每个指令块关联的指令类型、指令总数、指令之间的关联关系。

11、在一些实施方式中,与指令层次关联的约束条件至少可以包括每种类型指令的格式、每种类型指令所支持的字段及其类型、同一指令块中指令的先后顺序、指令时序、指令可访问的寄存器地址范围、指令可访问的存储地址范围。

12、在一些实施方式中,与字段层次关联的约束条件至少可包括各个字段支持的取值或取值范围。

13、在一些实施例中,该方法还可包括:

14、响应于检测到与指令块层次关联的约束条件中包含异常检查,在生成指令的各个字段值时选择各字段支持的取值或取值范围之外的值以模拟异常情况;

15、响应于检测到与指令块层次关联的约束条件中设置了指令之间的关联关系有资源依赖,为测试程序随机生成需要使用相同存储资源的指令,以模拟资源冲突情况。

16、在一些实施例中,该方法通过下列步骤来根据所述指令的层次结构中各层次关联的约束条件生成相应指令:

17、a1)对属于同一类型指令的多个字段,根据字段层次的约束条件随机地生成各个字段值;

18、a2)根据与指令层次关联的约束条件将所生成的各字段值拼接成一条指令;

19、a3)继续执行上述a1)和a2)的过程直到所生成的指令的数量满足与指令块层次关联的约束条件中所设置的该类型的指令数量;以及

20、重复上述a1)、a2)和a3)的过程以生成同一指令块中的其他类型指令;接着依次完成不同指令块对应的指令生成后,将各指令块的指令组合在一起构成测试程序。

21、通过上述实施的方式,可以自动并快速地生成大量的随机指令,减少了时间成本和人力成本,提高了验证效率;并且由于指令的每个字段都是随机产生的、这些字段的组合方式更为多样,会产生很多意想不到的指令或异常场景,因此更有可能会覆盖到一些验证人员无法预料的缺陷,有助于验证的完备性。

22、根据本申请实施例的第二方面,提供了一种用于功能验证的随机指令生成设备,其包括存储器和处理器,存储器上存储有计算机指令,当所述计算机指令被处理器执行时实现根据本申请实施例的第一方面所述的方法。

23、根据本申请实施例的第三方面,提供了一种用于功能验证的系统,其包括与待测设计关联的验证平台以及随机指令生成器。其中随机指令生成器根据本申请实施例的第一方面所述的方法,在待测设计的设计规范文件和测试需求信息的基础上生成该待测设计的测试程序,并将其提供至验证平台。验证平台用于基于收到的测试程序生成二进制的测试序列并将其导入到待测设计中,收集和分析待测设计的执行结果,并输出测试结果。

24、在该系本文档来自技高网...

【技术保护点】

1.一种用于功能验证的随机指令生成方法,包括:

2.根据权利要求1所述的方法,所述根据所获取的信息确定待生成的测试程序中指令的层次结构及各层次关联的约束条件,包括:

3.根据权利要求1所述的方法,所述方法还包括:

4.根据权利要求1所述的方法,其中,与指令块层次关联的约束条件包括:与每个指令块关联的指令类型、指令总数、指令之间的关联关系。

5.根据权利要求1所述的方法,其中,与指令层次关联的约束条件包括:每种类型指令的格式、每种类型指令所支持的字段及其类型、同一指令块中指令的先后顺序、指令时序、指令可访问的寄存器地址范围、指令可访问的存储地址范围。

6.根据权利要求1所述的方法,其中,与字段层次关联的约束条件至少包括各个字段支持的取值或取值范围。

7.根据权利要求1-6任一项所述的方法,所述方法还包括:

8.根据权利要求1所述的方法,所述根据所述指令的层次结构中各层次关联的约束条件生成相应指令,包括:

9.根据权利要求8所述的方法,所述根据所述指令的层次结构中各层次关联的约束条件生成相应指令,包括:

10.一种用于功能验证的随机指令生成设备,其包括存储器和处理器,存储器上存储有计算机指令,当所述计算机指令被所述处理器执行时实现根据权利要求1-9中任一项所述的方法。

11.一种用于功能验证的系统,其包括与待测设计关联的验证平台以及随机指令生成器,其中:

...

【技术特征摘要】

1.一种用于功能验证的随机指令生成方法,包括:

2.根据权利要求1所述的方法,所述根据所获取的信息确定待生成的测试程序中指令的层次结构及各层次关联的约束条件,包括:

3.根据权利要求1所述的方法,所述方法还包括:

4.根据权利要求1所述的方法,其中,与指令块层次关联的约束条件包括:与每个指令块关联的指令类型、指令总数、指令之间的关联关系。

5.根据权利要求1所述的方法,其中,与指令层次关联的约束条件包括:每种类型指令的格式、每种类型指令所支持的字段及其类型、同一指令块中指令的先后顺序、指令时序、指令可访问的寄存器地址范围、指令可访问的存储地址范围。

6.根据权利要求1所述的方法...

【专利技术属性】
技术研发人员:王登运
申请(专利权)人:杭州登临瀚海科技有限公司
类型:发明
国别省市:

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

1