技术新讯 > 计算推算,计数设备的制造及其应用技术 > 一种AXI总线测试激励源及其芯片功能验证方法与流程  >  正文

一种AXI总线测试激励源及其芯片功能验证方法与流程

  • 国知局
  • 2024-11-25 15:18:10

本发明涉及仿真测试的,尤其涉及一种axi总线测试激励源及其芯片功能验证方法。

背景技术:

1、在对芯片进行功能验证的过程中,通常需要对关键数据节点的通信延迟和数据吞吐量进行详细的验证,以确保芯片在流片后能够达到需要的性能需求。其中,关键数据节点通常包括片上网络(noc,network on chip)、ddr控制器(ddr controller)、高速缓冲存储器(cache)等。总线通常为axi总线,测试过程会通过向被测模块的ip核发起不同的测试激励(如不同的burst length、outstanding)以验证被测模块能否在满足数据正确性的前提下达到设计需要的通信延迟指标和数据吞吐量指标,该环节是芯片功能验证过程中的关键项之一,对高性能芯片的流片成功起决定性作用。

2、芯片功能验证过程中通常包含软仿真、emulator验证以及fpga验证,不同环节提供了不同的验证速度及信号可观测性,难以互相替代,其中emulator验证以及fpga验证要求测试中用到的总线激励源必须是可综合的rtl代码,否则会导致代码编译失败。但是,由于可综合的rtl代码相比于软仿真代码的代码灵活度更低、编写难度更高、实现同样的功能需要更多的研发周期。因此,现有的emulator验证方案和fpga验证方案中只会提供简单的测试激励,或不提供测试激励,需要使用者自行编写。

3、现有的emulator验证方案和fpga验证方案无法满足高性能芯片验证所需要的测试激励源。以xilinx公司的vivado工具为例,虽然vivado工具的业务信息发送器(trafficgenerator)可以产生axi总线的不同burst length的激励源,但是现有的验证方案还存在如下问题:1、现有的验证方案无法校验读出数据与写入数据是否匹配,即无法对被测模块的数据正确性进行校验;2、现有的验证方案仅支持outstanding=1的场景,该限制会导致发起的测试激励在通信延迟较高时,下一次数据传输必须等到上一次数据传输完毕后才能发起,从而影响到对数据吞吐量的指标评估,无法在功能测试时得到被测模块的真实极限。

技术实现思路

1、本发明提供一种axi总线测试激励源及其芯片功能验证方法,能够提供outstanding>1的测试激励,从而满足高吞吐量和数据校验的验证需求。

2、为达到上述目的,本发明采用如下技术方案:

3、第一方面,本发明提供一种axi总线测试激励源,该测试激励源包括参数配置模块、写操作模块以及读操作模块;

4、所述参数配置模块用于根据接收到的配置参数对所述写操作模块和所述读操作模块进行参数配置,并在完成所述参数配置后对应触发写操作开始信号和读操作开始信号;

5、所述写操作模块用于在接收到所述写操作开始信号,并检测到存在未被占用状态的写操作id后,为本次写操作分配目标写id,将所述目标写id更改为占用状态,并依据获取的本次写操作的目标写地址和所述目标写id将本次写操作的写入数据发送至目标被测器件,在本次写操作结束后将所述目标写id更改回未被占用状态;

6、所述读操作模块用于在接收到所述读操作开始信号,并在检测到存在未被占用状态的读操作id后,为本次读操作分配目标读id,将所述目标读id更改为占用状态,并依据获取的本次读操作的目标读地址和所述目标读id从所述目标被测器件中读取对应的写入数据,在本次读操作结束后将所述目标读id更改回未被占用状态;

7、所述读操作模块还用于在本次读操作结束后,根据读取的所述写入数据与预设写入值进行数据正确性校验。

8、在一种可能的实现方式中,所述配置参数包括:读操作起始地址或终止地址、写操作起始地址或终止地址、连续传输长度参数、outstanding参数、读写模式参数、读写循环次数参数、写操作数据pattern设置参数以及是否进行读操作数据验证参数。

9、在一种可能的实现方式中,所述写操作模块包括:

10、写地址控制器,用于在接收到所述写操作开始信号后,获取未被占用状态的写操作id,将该写操作id作为目标写id赋值给axi总线写地址通道的awid,同时将所述连续传输长度参数赋值给所述axi总线写地址通道的awlen;

11、所述写地址控制器还用于在检测到本次写操作的写地址操作结束后,将所述目标写id更改为占用状态;

12、数据生成器,用于根据所述写操作起始地址或终止地址、以及所述写操作数据pattern设置参数生成所述目标写id对应的写入数据;

13、写数据控制器,用于获取所述目标写id对应的写入数据,并根据所述连续传输长度参数按照axi总线协议规定的时序将所述目标写id对应的写入数据发送至目标被测器件;

14、写响应控制器,用于在接收到所述目标被测器件针对所述目标写id对应的写入数据的目标写响应信号后,将所述目标写id更改回未被占用状态;所述目标写响应信号为所述axi总线写响应通道的bvalid信号、bready信号以及bresp信号同时被拉高。

15、在一种可能的实现方式中,所述写地址控制器还用于在检测到本次写操作的写地址操作结束后,将所述目标写id更改为占用状态,具体为:

16、所述写地址控制器还用于检测所述axi总线写地址通道的awvalid信号和awready信号,并在检测到所述awvalid信号和所述awready信号同时被拉高后,认为本次写操作的写地址操作结束,将所述目标写id更改为占用状态。

17、在一种可能的实现方式中,所述写操作模块还包括:

18、第一寄存器,用于存储写操作id;所述写操作id的最大存储数量等于最大预设outstanding参数;

19、第二寄存器,用于存储未进行写入数据发送的目标写id;所述未进行写入数据发送的目标写id为占用状态的写操作id。

20、在一种可能的实现方式中,所述读操作模块包括:

21、读地址控制器,用于在接收到所述读操作开始信号后,获取未被占用状态的读操作id,将该读操作id作为目标读id赋值给axi总线读地址通道的arid,同时将所述连续传输长度参数赋值给所述axi总线读地址通道的arlen;

22、所述读地址控制器还用于在检测到本次读操作的读地址操作结束后,将所述目标读id更改为占用状态;

23、读数据控制器,用于根据axi总线协议规定的时序,依据获取的本次读操作的目标读地址和所述目标读id从所述目标被测器件中读取对应的写入数据,并在接收到所述目标被测器件针对所述目标读id对应的目标读响应信号后,将所述目标读id更改回未被占用状态;所述目标写响应信号为所述axi总线读数据通道的rvalid信号、rready信号以及rlast信号同时被拉高;

24、数据校验器,用于在所述读操作数据验证参数为是时,在本次读操作结束后,根据读取的所述写入数据与预设写入值进行数据正确性校验;所述预设写入值根据所述写操作数据pattern设置参数确定。

25、在一种可能的实现方式中,所述读操作模块还包括:

26、第三寄存器,用于存储读操作id;所述读操作id的最大存储数量等于最大预设outstanding参数;

27、第四寄存器,用于存储未被占用状态的读操作id。

28、第二方面,本发明提供一种基于axi总线测试激励源的芯片功能验证方法,该方法包括:

29、根据接收到的配置参数对写操作模块和读操作模块进行参数配置,并在完成所述参数配置后对应触发写操作开始信号和读操作开始信号;

30、在接收到所述写操作开始信号,并检测到存在未被占用状态的写操作id后,为本次写操作分配目标写id,将所述目标写id更改为占用状态,并依据获取的本次写操作的目标写地址和所述目标写id将本次写操作的写入数据发送至目标被测器件,在本次写操作结束后将所述目标写id更改回未被占用状态;

31、在接收到所述读操作开始信号,并在检测到存在未被占用状态的读操作id后,为本次读操作分配目标读id,将所述目标读id更改为占用状态,并依据获取的本次读操作的目标读地址和所述目标读id从所述目标被测器件中读取对应的写入数据,在本次读操作结束后将所述目标读id更改回未被占用状态;

32、在本次读操作结束后,根据读取的所述写入数据与预设写入值进行数据正确性校验。

33、在一种可能的实现方式中,在根据读取的所述写入数据与预设写入值进行数据正确性校验之后,所述方法还包括:

34、根据获取的本次写操作结束时间和本次读操作结束时间,确定本次数据传输过程的通信延迟;

35、根据获取的目标时间段内写入目标被测器件的写入数据数量,确定本次数据传输的数据吞吐量。

36、第三方面,本发明提供一种电子设备,该电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现上述任一项中的axi总线测试激励源的芯片功能验证方法。

37、第四方面,本发明提供一种计算机可读存储介质,该存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现上述任一项中的axi总线测试激励源的芯片功能验证方法。

38、本发明实施例提供的axi总线测试激励源的读操作模块能够在读操作时,验证读操作之前写操作写入数据的正确性,从而验证目标被测器件的数据正确性;本发明的axi总线测试激励源通过写操作id和读操作id对多个不同的传输请求进行区分,在一笔传输完毕之前该数据传输过程独享一个id号,此时,若需要发起下一笔传输请求则必须选用不同的id号,且在数据读取过程中,由于返回数据可能与发起请求的顺序不同,因此读操作模块能够根据响应的id号进行区分,避免混淆数据对应关系,实现了outstanding>1的场景,从而满足高吞吐量和数据校验的验证需求。

本文地址:https://www.jishuxx.com/zhuanli/20241125/337230.html

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