技术新讯 > 计算推算,计数设备的制造及其应用技术 > 直接存储访问控制器的测试方法、系统、设备及存储介质与流程  >  正文

直接存储访问控制器的测试方法、系统、设备及存储介质与流程

  • 国知局
  • 2024-07-31 22:43:30

本发明涉及dma测试,特别是涉及一种直接存储访问控制器的测试方法、系统、设备及介质。

背景技术:

1、dma(direct memory access,直接存储访问)控制器,可以将数据从一个地址空间直接复制到另一个地址空间,提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,并且传输动作是由dma控制器来完成的,无需cpu(central processing unit,中央处理器)的控制,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为内存和io设备之间开辟了一条直接传输数据的通道,使得cpu的效率大大提高。

2、目前,进行dma控制器功能测试的方案有多种,例如一些方案中采用事务级建模,利用验证语言为dma控制器验证平台构建tlm(transaction level model,事务级模型),验证平台内部的读写事务采用了不同于信号级的粗粒度数据事务执行数据传输,这种事务模型可以让仿真时间大大减少。又如,有的方案会采用uvm(universal verificationmethodology,通用验证方法学)构建验证平台,并综合使用随机激励和定向激励对其进行功能验证。还有的方案会基于不同总线的dma控制器,将寄存器配置和数据传输存储功能分别模拟,最终实现功能覆盖率和代码覆盖率的收敛,达到预期的验证目标。

3、但是,在实际应用中发现,经过以上测试方法测试的dma控制器,有时候仍然会出现功能异常的情况。

4、综上所述,如何有效地实现dma控制器的测试,保障测试结果的可靠性,是目前本领域技术人员急需解决的技术问题。

技术实现思路

1、本发明的目的是提供一种直接存储访问控制器的测试方法、系统、设备及介质,以有效地实现dma控制器的测试,保障测试结果的可靠性。

2、为解决上述技术问题,本发明提供如下技术方案:

3、第一方面,本发明提供了一种直接存储访问控制器的测试方法,包括:

4、对预设的数据激励源按照功能类型进行分类,得到各个数据激励源类;其中,每个所述数据激励源类中包括属于同一分类的各个所述数据激励源,并且在得到的所述数据激励源类中,至少包括用于表示搬移的原始数据的数据激励源类,和用于表示对搬移的原始数据进行增加和/或删除和/或修改操作的数据激励源类;

5、设置第一随机约束条件集合;

6、基于得到的各个所述数据激励源类,得到分别对应于各个所述数据激励源的数据激励对象;

7、基于各个所述数据激励对象构建出多个测试用例,并且针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组的直接存储访问控制器的测试;

8、其中,所述第一随机约束条件集合中包括针对每个数据激励对象在变量随机化时所遵守的相应约束条件。

9、另一方面,对预设的数据激励源按照功能类型进行分类,得到各个数据激励源类,包括:

10、对预设的数据激励源按照功能类型进行分类,得到用于表示搬移的原始数据的第一数据激励源类,用于表示对搬移的原始数据进行增加和/或删除和/或修改操作的第二数据激励源类,用于表示对搬移的原始数据进行修改时的参数配置的第三数据激励源类。

11、另一方面,针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,包括:

12、针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化;

13、其中,当所述数据激励对象对应的数据激励源属于所述第一数据激励源类时,对该数据激励对象进行的变量随机化包括对搬移的原始数据的数据值和数据长度的随机化;

14、当所述数据激励对象对应的数据激励源属于所述第二数据激励源类时,对该数据激励对象进行的变量随机化包括在对搬移的原始数据进行增加和/或删除和/或修改操作时,所选用的数据随机化以及选用方式随机化;

15、当所述数据激励对象对应的数据激励源属于所述第三数据激励源类时,对该数据激励对象进行的变量随机化包括在对搬移的原始数据进行修改时,修改的起始位置随机化和修改长度随机化。

16、另一方面,基于得到的各个所述数据激励源类,得到分别对应于各个所述数据激励源的数据激励对象,包括:

17、按照预设的封装规则将每个所述数据激励源类均进行封装,得到各个封装数据激励源类;

18、将各个所述封装数据激励源类进行实例化,得到分别对应于各个所述数据激励源的数据激励对象。

19、另一方面,针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试,包括:

20、针对任意1个测试用例,通过改变k次随机种子,以进行该测试用例的k轮测试,k为不小于2的正整数;

21、在进行该测试用例的任意1轮测试时,基于所述第一随机约束条件集合,并利用当前的所述随机种子,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试。

22、另一方面,还包括:

23、为每一个所述数据激励源类预留参数传入接口;

24、在得到各个所述数据激励对象之后,确定出各个所述数据激励对象之间的依赖关系;

25、基于所述依赖关系,设置第二随机约束条件集合;

26、其中,所述第二随机约束条件集合中包括受到所述依赖关系限制的每个数据激励对象在变量随机化时所遵守的相应约束条件,并且所述第二随机约束条件集合中包括受到所述依赖关系限制的每个数据激励对象在变量随机化时的先后顺序规则;

27、并且,所述第二随机约束条件集合的约束范围,是所述第一随机约束条件的约束范围的子集;

28、相应地,针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试,包括:

29、针对任意1个测试用例中的受到所述依赖关系限制的每个数据激励对象,基于每一个所述数据激励源类的所述参数传入接口,为受到所述依赖关系限制的每个数据激励对象引入所述第二随机约束条件集合中的相应约束条件和变量随机化时的先后顺序规则;

30、针对任意1个测试用例,基于所述第一随机约束条件集合和所述第二随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试。

31、另一方面,还包括:

32、针对任意1个测试用例,设置对应于该测试用例的第三随机约束条件集合;

33、其中,针对任意1个测试用例,对应于该测试用例的第三随机约束条件集合中包括针对该测试用例中的每个数据激励对象在变量随机化时所遵守的相应约束条件;并且,所述第三随机约束条件集合的约束范围,是所述第一随机约束条件的约束范围的子集;

34、相应地,针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试,包括:

35、针对任意1个测试用例,基于所述第一随机约束条件集合和所述第三随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组直接存储器访问器件的测试。

36、第二方面,本发明提供了一种直接存储访问控制器的测试系统,包括:

37、数据激励源分类模块,用于对预设的数据激励源按照功能类型进行分类,得到各个数据激励源类;其中,每个所述数据激励源类中包括属于同一分类的各个所述数据激励源,并且在得到的所述数据激励源类中,至少包括用于表示搬移的原始数据的数据激励源类,和用于表示对搬移的原始数据进行增加和/或删除和/或修改操作的数据激励源类;

38、第一随机约束条件集合设置模块,用于设置第一随机约束条件集合;

39、数据激励对象确定模块,用于基于得到的各个所述数据激励源类,得到分别对应于各个所述数据激励源的数据激励对象;

40、测试执行模块,用于基于各个所述数据激励对象构建出多个测试用例,并且针对任意1个测试用例,基于所述第一随机约束条件集合,对该测试用例中的各个所述数据激励对象进行变量随机化,并在变量随机化之后执行该测试用例以进行可数据重组的直接存储访问控制器的测试;

41、其中,所述第一随机约束条件集合中包括针对每个数据激励对象在变量随机化时所遵守的相应约束条件。

42、第三方面,本发明提供了一种直接存储访问控制器的测试设备,包括:

43、存储器,用于存储计算机程序;

44、处理器,用于执行所述计算机程序以实现如上述所述的直接存储访问控制器的测试方法的步骤。

45、第四方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的直接存储访问控制器的测试方法的步骤。

46、申请人考虑到,在传统方案中,会发生经过测试的dma控制器仍然出现功能异常的情况,是因为在传统方案中所执行的测试,集中于完全dma式验证,即验证传输前的地址空间的数据和传输后的地址空间的数据是否是完全相同的,从而判定dma控制器是否通过了测试。这类测试方案在对常规的dma控制器进行测试是可行的,但是有些dma控制器是可数据重组的dma控制器,即除了能够实现对数据基本的搬移功能之外,还可以实现对数据的增删改的需求,基于传统的这类测试方案进行可数据重组的dma控制器的测试时,便无法保障测试结果的可靠性。

47、对此,本技术的方案中,会利用多种类型的数据激励源保障可数据重组的dma控制器的测试可靠性。具体的,需要预设多种数据激励源,并且对预设的数据激励源按照功能类型进行分类,得到各个数据激励源类,每个数据激励源类中包括属于同一分类的各个数据激励源。为了能够实现可数据重组的dma控制器的测试,在得到的数据激励源类中,至少包括用于表示搬移的原始数据的数据激励源类,和用于表示对搬移的原始数据进行增加和/或删除和/或修改操作的数据激励源类,使得后续所构建出的测试用例,能够实现在对原始数据进行了增加和/或删除和/或修改操作之后的可数据重组的dma控制器的测试。基于得到的各个数据激励源类,可以得到分别对应于各个数据激励源的数据激励对象,进而基于各个数据激励对象构建出多个测试用例。并且考虑到对任意1个测试用例中的各个数据激励对象进行变量随机化时,应当基于预先设置的第一随机约束条件集合实现变量随机化,从而避免出错,保障测试时的相关变量在合理范围内,最后,基于各个测试用例便可以进行可数据重组的dma控制器的测试;

48、综上所述,本技术的方案可以有效地实现可数据重组的dma控制器的测试,保障了测试结果的可靠性。

本文地址:https://www.jishuxx.com/zhuanli/20240730/194317.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。