一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于硬件仿真的集成电路的测试方法、装置及电子设备与流程

2022-11-23 12:47:19 来源:中国专利 TAG:


1.本技术涉及集成电路技术领域,尤其涉及一种基于硬件仿真的集成电路的测试方法、装置、电子设备及可读存储介质。


背景技术:

2.随着超大规模集成电路的发展,验证的难度和速度都是亟待解决问题之一。对设计阶段,可采用采用软件模拟(software simulation)以及现场可编程门阵列(fpga,field-programmable gate array)进行验证,而上述两种方式,在整个芯片层面,如果依然采用软件模拟,其耗时非常长,而采用fpga验证,对于全芯片设计的综合时间需要数个小时,而且在实际运行中出现问题难以快速定位,在这种情况下,采用硬件仿真加速器(emulator)成为了一个非常合理的选择。
3.硬件仿真加速器解决了芯片在流片前大规模测试时的测试速度慢的问题,但是现有技术中,业界搭建验证平台(testbench)的主流验证工具uvm,用uvm搭建的测试平台,在和emulator上的被测电路即被测设备(dut,device under test)进行数据交换时,首先需要在服务器上用sv编译,再把数据打包,而后经过接口(interface)调用直接编程接口(dpi,direct programming interface)进行数据交换,由于经过上述较为繁琐的步骤,导致与dut进行数据交换时速度较慢。


技术实现要素:

4.有鉴于此,本技术实施例提供一种基于硬件仿真的集成电路的测试方法、装置、电子设备及可读存储介质,能够有效提高基于硬件仿真的集成电路的测试速度。
5.第一方面,本技术实施例提供一种基于硬件仿真的集成电路的测试方法,应用于测试平台,所述测试方法包括:接收所述集成电路发送的测试请求;根据所述测试请求及预设测试策略,生成测试激励;将所述测试激励直接向所述集成电路发送。
6.第二方面,本技术实施例提供基于硬件仿真的集成电路的测试装置,应用于测试平台,所述测试装置包括:第一接收模块,用于接收所述集成电路发送的测试请求;生成模块,用于根据所述测试请求及预设测试策略,生成测试激励;发送模块,用于将所述测试激励直接向所述集成电路发送。
7.第三方面,本技术实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实现方式所述的基于硬件仿真的集成电路的测试方法。
8.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述任一实现方式所述的基于硬件仿真的集成电路的测试方法。
9.本实施例的基于硬件仿真的集成电路的测试方法、装置、电子设备及可读存储介质,通过接收集成电路发送的测试请求,在根据测试请求及预设测试策略,生成测试激励,并将测试激励直接向集成电路发送,由于生成测试激励后,直接向集成电路发送,省去了现有技术中编译、打包的过程,简化了向集成电路发送测试激励的过程,能够有效提高基于硬件仿真的集成电路的测试速度。
附图说明
10.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
11.图1为uvm搭建的测试平台与dut的框架图;
12.图2为uvm搭建的测试平台与dut数据交互的示意图;
13.图3为使用uvm搭建的测试平台发送测试激励的示意图;
14.图4为本技术一实施例提供的基于硬件仿真的集成电路的测试方法的流程示意图;
15.图5为本技术一实施例使用c 搭建的测试平台与dut的框架图;
16.图6为本技术一实施例使用c 搭建的测试平台与dut进行数据交互的示意图;
17.图7为本技术一实施例使用c 搭建的测试平台发送测试激励的示意图;
18.图8为本技术一实施例中测试平台、dut以及内存控制器的结构示意图;
19.图9为本技术一实施例中的基于缓存一致性协议得出的状态转移图;
20.图10为本技术一实施例的c_tb与dut的架构图;
21.图11为本技术一实施例的测试平台的结构图;
22.图12为本技术一实施例提供的基于硬件仿真的集成电路的测试装置的结构示意图;
23.图13为本技术一实施例提供的电子设备的结构示意图。
具体实施方式
24.下面结合附图对本技术实施例进行详细描述。应当明确,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
25.如背景技术所言,随着超大规模集成电路的发展,验证的难度和速度都是亟待解决问题之一。
26.电路规模的扩大这一发展趋势在给电路设计带来了巨大挑战的同时,也使得电路的仿真验证相比之前更为困难。当前在子模块设计阶段,设计人员主要采用软件模拟(software simulation)进行初步验证,但是在整个芯片层面如果依然采用软件模拟,其耗时非常长,往往模拟一个大量处理数据的功能的时间需要数个小时甚至一周;而如果采用fpga验证,对于全芯片设计的综合时间需要数个小时,而且在实际运行中出现问题难以快速定位,每次添加观测信号都需要重新综合。在调试开始的阶段,整体设计中不完善的部分
还非常多,如果只采用软件模拟和fpga硬件仿真,其调试效率无法达到一个合理的速度。在这种情况下,采用硬件仿真加速器就成为了一个非常合理的选择。它在仿真速度上介于软件模拟和fpga原型系统之间,但是对内部信号的观测与下载要比fpga方便,能够提供与软件模拟相类似的波形观测能力,且在修改rtl代码后重新综合的时间也与软件模拟相近,要比同一款芯片进行fpga综合的时间减少很多。
27.具体而言,emulator是通过使用zebu,veloce之类的硬件加速器,在此基础上移植cpu的设计,开发验证平台,可以实现了khz到mhz级别仿真速度,相比于传统软件仿真工具vcs(10hz)实现了最高十万倍的提速。
28.emulator的引入解决了芯片在流片(tapeout)前大规模测试时的测试速度慢和测试指令规模小的问题。但是业界搭建testbench的主流验证工具uvm,参见图1和图2,在emulator上uvm的支持还没有达到高速适配的境界。参见图3,用uvm搭建的测试平台,在和emulator上的被测电路即被测设备(dut,device under test)进行数据交换时,首先需要在服务器上用sv编译,再把数据打包,而后经过接口(interface)调用直接编程接口(dpi,direct programming interface)进行数据交换,因为uvm在server上的速度不能和emulator运行的速度达到完美的匹配,其实就是服务器的运行速度慢,uvm的emulator的testbench是eda仿真速度的5~40倍之间,uvm的加入会大大降低emulator的速度,因此,如何处理emulator和testbench之间的关系才能不影响原本emulator的速度是至关重要的。
29.基于此,本技术提出一种基于硬件仿真的集成电路测试方法,能够提高集成电路的测试速度。
30.为使本领域技术人员更好地理解本技术实施例的技术构思、实施方案和有益效果,下面通过具体实施例进行详细说明。
31.本技术一实施例提供的一种基于硬件仿真的集成电路的测试方法,应用于测试平台,所述测试方法包括:接收所述集成电路发送的测试请求;根据所述测试请求及预设测试策略,生成测试激励;将所述测试激励直接向所述集成电路发送,能够有效提高基于硬件仿真的集成电路的测试速度。
32.图4为本技术一实施例提供的基于硬件仿真的集成电路的测试方法的流程示意图,如图4所示,本实施例的基于硬件仿真的集成电路的测试方法,应用于测试平台,本实施例的测试方法,可以包括:
33.本实施例的测试平台可以由c 语言编写。参见图3,由c 编写的测试平台在服务器上运行,通过pcie与硬件仿真的集成电路进行数据交互。
34.s101、接收集成电路发送的测试请求。
35.本实施例的集成电路可为由硬件仿真技术仿真得到的电路。
36.本实施例的集成电路为被测设备dut。本实施例中的集成电路可为通过emulator进行硬件仿真得到的电路。
37.在集成电路满足进行测试的条件时,可向测试平台发送对其进行测试的请求。在一些例子中,集成电路的各项参数配置已经配置完成,并且已经运行起来后,可向测试平台发送测试请求。
38.s102、根据测试请求及预设测试策略,生成测试激励。
39.测试平台接收到集成电路的测试请求后,可根据预设的测试策略,生成测试激励。
预设的测试策略可与测试目的相关。如对内存某一地址进行连续测试时,生成的测试激励中包含该内存地址的相关信息。
40.s103、将测试激励直接向集成电路发送。
41.在生成测试激励后,可将测试激励直接向集成电路发送。
42.在一些例子中,参见图5、图6和图7,c 测试平台生成测试激励,通过dpi数据传输给emulator上的被测设备dut。
43.本实施例,通过接收集成电路发送的测试请求,在根据测试请求及预设测试策略,生成测试激励,并将测试激励直接向集成电路发送,由于生成测试激励后,直接向集成电路发送,省去了现有技术中编译、打包的过程,简化了向集成电路发送测试激励的过程,能够有效提高基于硬件仿真的集成电路的测试速度。
44.为了验证集成电路是否死锁,本技术又一实施例,与上述实施例基本相同,不同之处在于,在将测试激励直接向集成电路发送之后,本实施例的方法还可以包括:
45.s104、接收集成电路返回的响应。
46.本实施例的响应可为集成电路根据测试激励执行相应操作而得到。
47.当接收到集成电路返回的响应时,可判断集成电路没有发生死锁。如果没有接收到集成电路返回的响应,则可以判断集成电路可能发生死锁。
48.在一些例子中,测试目的为集成电路的存储一致性时,本实施例的根据测试请求及预设测试策略,生成测试激励(s102),可以包括:
49.s102a、根据测试请求及存储一致性测试策略,生成测试激励。
50.本实施例的存储一致性测试策略,可为缓存的一致性测试策略,也可为内存的一致性测试策略。
51.为了实现对集成电路的存储一致性进行验证,在上述实施例的基础上,本技术一实施例中,在接收集成电路返回的响应之后,所述方法还可以包括:
52.s105、根据预设的处理策略,对响应进行处理,以对集成电路的存储一致性进行验证。
53.在集成电路包括数据互联网络的情况下,本技术再一实施例,与上述实施例基本相同,不同之处在于,本实施例的根据测试请求及一致性测试策略,生成测试激励(s102a),可以包括:
54.s102aa、多处理器模拟核心中的第一处理器模拟核心,根据测试请求及存储一致性测试策略,生成测试激励。
55.本实施例中的第一处理器模拟核心是多个处理器模拟核心中的任一模拟核心。
56.可以理解的是,本实施例的数据互联网络可与多个处理器模拟核心进行数据交互,在验证数据互联网络是否支持多核处理器系统的存储一致性时,本实施例针对一个处理器模拟核心与数据互联网络的数据交互过程进行说明。
57.对应地,本实施例的将测试激励直接向集成电路发送(s103),可以包括:
58.s103a、将测试激励直接向数据互联网络发送。
59.本实施例的接收集成电路返回的响应(s104),可以包括:
60.s104a、接收数据互联网络返回的响应。
61.本实施例的响应可为数据互联网络根据测试激励执行相应操作而得到的。
62.本实施例的根据预设的处理策略,对响应进行处理,以对集成电路的存储一致性进行验证(s105),可以包括:
63.s105a、将响应与预测信息比对,确定数据互联网络是否支持多核处理器系统的存储一致性。
64.响应中可包括与预测信息相对应的信息。
65.在对数据互联网络是否支持多核处理器系统的内存一致性进行验证时,本技术一实施例与上述实施例基本相同,不同之处在于,本实施例的多处理器模拟核心中的第一处理器模拟核心,根据测试请求及存储一致性测试策略,生成测试激励(s102aa),可以包括:
66.a1、多处理器模拟核心中的第一处理器模拟核心生成读请求。
67.本实施例的读请求中可以包括读请求所要操作的第一内存地址。
68.本实施例中的接收数据互联网络返回的响应(s104a),可以包括:
69.s104aa、接收数据互联网络针对读请求的响应。
70.本实施例的响应中可以包括从内存读取的第一数据。
71.本实施例的第一数据可为从第一内存地址中读取的数据。
72.本实施例中的将响应与预测信息比对,确定数据互联网络是否支持多核处理器系统的存储一致性(s105a),可以包括:
73.s105aa、将第一数据与第一预测数据进行比对,确定第一数据和第一预测数据是否一致。
74.本实施例中的第一预测数据为对第一内存地址进行操作的第一写请求中包括的数据;第一写请求为在读请求之前且距离读请求时间最短的、对第一内存地址进行写数据的写请求。
75.s105ab、根据第一数据和第一预测数据是否一致,确定数据互联网络是否支持多核处理器系统的内存一致性。
76.数据互联网络支持多核处理器系统的内存一致性,即从内存地址中读取的数据是距离本次读请求时间最短的、对该内存地址进行写请求中的数据。
77.本实施例中,对经由数据互联网络从内存中读取的数据,是否与距离本次读请求时间最短的、对该内存地址进行写请求中的数据一致,确定数据互联网络是否支持内存一致性进行验证。
78.在一些例子中,在将第一数据与第一预测数据进行比对之前,所述方法还可以包括:
79.s105ac、接收内存控制器通过数据互联网络发送的、读请求到达内存控制器的时间。
80.参见图8,在多核处理器系统中,如果多个处理器核心同时读写同一个地址,经过数据互联网络到达内存的顺序是不可预测的,这导致结果也不能预测,但是请求到达内存控制器的顺序和实际内存的操作顺序是一致的,基于此,可以通过内存控制器监测各个请求到达内存控制器的时间,并经由数据互联网络发送给测试平台。
81.本实施例中,接收内存控制器通过数据互联网络发送的、读请求到达内存控制器的时间。
82.s105ad、根据第一内存地址和时间,在预先按照时间排序的各处理器模拟核心发
送的各个写请求中包括的内存地址和数据的对应关系,确定第一预测数据。
83.根据读请求中的第一内存地址以及该读请求到达内存控制器的时间,可在预先按照时间排序的各处理器模拟核心发送的各个写请求中包括的内存地址和数据的对应关系中,根据读请求中的第一内存地址,确定与该第一内存地址一致的内存地址与数据的对应关系,再根据该读请求到达内存控制器的时间,在与该第一内存地址一致的内存地址与数据的对应关系中,确定与读请求到达内存控制器的时间距离最近的时间对应的数据,该数据即为第一预测数据。
84.在一些例子中,预先按照时间排序的各处理器模拟核心发送的各个写请求中包括的内存地址和数据的对应关系,可以根据如下步骤确定:
85.b1、接收内存控制器通过数据互联网络发送的、各处理器核心发送的各个写请求到达内存控制器的时间。
86.本实施例中,内存控制器对到达内存控制器的写请求进行监测,并将内存到达内存控制器的写请求的时间通过数据互联网络发送给测试平台。
87.b 2、根据各个写请求到达内存控制器的时间的先后顺序,对各处理器核心发送的各个写请求中包括的内存地址和数据的对应关系进行排序。
88.在对数据互联网络是否支持多核处理器系统的缓存一致性进行验证时,本技术一实施例与上述实施例基本相同,不同之处在于,本实施例的数据互联网络包括缓存,测试激励可以包括命令类型和测试激励所要操作的第二内存地址,且第二内存地址的类型为缓存类内存地址;响应包括缓存中的第一缓存行的当前状态;第一缓存行为测试激励所要操作的第二内存地址在缓存中的缓存行。
89.数据互联网络包括的缓存可为一个级别的缓存。
90.命令类型可以包括读、写、剔除和探测等类型。
91.内存地址的类型可包括缓存类内存地址和非缓存类内存地址,其中缓存类内存地址上的数据可根据需要存在缓存中,非缓存类内存地址上的数据不可存入缓存。第一缓存行的状态可为invalid(i)、shared(s)、exclusive(e)、modified(m)和owned(o)。
92.本实施例中的将响应与预测信息比对,确定数据互联网络是否支持多核处理器系统的存储一致性(s105a),可以包括:
93.s105ae、根据第二内存地址,从预设的内存地址与缓存行状态之间的对应关系中,确定第一缓存行的状态。
94.根据第二内存地址,可以在预设的内存地址与缓存行状态之间的对应关系中,确定第一缓存行的状态。
95.预设的内存地址与缓存行状态之间的对应关系可与第一处理器模拟核心对应。
96.s105af、基于第一缓存行的状态、命令类型以及预设的基于缓存一致性协议的状态转移规则,预测第一缓存行的状态,得到第一缓存行的预测状态。
97.根据第一缓存行的状态、命令类型及预设的基于缓存一致性协议的状态转移规则,对第一缓存行的状态进行预测,得到第一缓存行的预测状态。
98.参见图9,基于缓存一致性协议的状态转移规则可为基于缓存一致性协议得出的状态转移规则,该规则可为状态转移图,对应的状态转移表如表1所示,对应的状态解释如表2所示。
99.表1
[0100][0101]
表2
[0102][0103]
在一些例子中,基于缓存一致性协议的状态转移规则可为基于moesi协议的状态转移表,该表中包括cacheline状态、命令类型与预测的cacheline状态的对应关系。
[0104]
s105ag、将第一缓存行的当前状态与预测状态比对,确定数据互联网络是否支持多核处理器系统的缓存一致性。
[0105]
将第一缓存行的当前状态,与s105af中确定的第一缓存行的预测状态比对,从而
确定数据互联网络中的缓存是否符合缓存一致性,具体地,当缓存行的当前状态与预测状态一致,则数据互联网络支持多核处理器系统的缓存一致性;当缓存行的当前状态与预测状态不一致,则数据互联网络不支持多核处理器系统的缓存一致性。
[0106]
为了有效地使用测试激励对数据互联网络是否支持多核处理器系统的缓存一致性进行验证,在一些例子中,将测试激励直接向数据互联网络发送(s103a),可以包括:
[0107]
s103aa、第一处理器模拟核心根据预设的基于缓存一致性协议的状态转移规则、预设的内存地址与缓存行状态之间的对应关系、以及测试激励中包括的命令类型和第二内存地址,对所述一致性验证请求进行校验,确定是否能够将测试激励向数据互联网络发送。
[0108]
根据测试激励中的第二内存地址,在预设的内存地址与缓存行状态之间的对应关系中确定与第二内存地址对应的缓存行状态,再根据确定的与第二内存地址对应的缓存行状态、命令类型及预设的基于缓存一致性协议的状态转移规则,确定测试激励是否能够向数据互联网络发送。参见图9,例如根据预设的基于缓存一致性协议的状态转移规则可知,shared状态对应的命令类型可为读击中(read hit)或探测读击中(probe read hit)而不能是其它的命令类型。
[0109]
s103ab、如果能够向数据互联网络发送,则将所述测试激励直接向所述数据互联网络发送。
[0110]
在s103aa中确定能够向数据胡亮网络发送测试激励的情况下,将测试激励直接向数据互联网络发送。
[0111]
在一些例子中,在多处理器模拟核心中的第一处理器模拟核心,根据测试请求及存储一致性测试策略,生成测试激励(s102aa)之后,将第一缓存行的当前状态与所述预测状态比对(s105ag)之前,所述方法还可以包括:
[0112]
s106、读取内存地址配置信息。
[0113]
本实施例中,内存地址配置信息可以包括内存地址空间与内存地址类型的对应关系,其中,内存地址类型可包括缓存类内存地址。
[0114]
s107、根据内存地址空间与内存地址类型的对应关系,确定第二内存地址的类型为缓存类内存地址。
[0115]
为了便于对本实施例的测试激励之后的测试激励按照上述实施例的步骤确定数据互联网络是否支持多核处理器系统的缓存一致性,在一些例子中,在第一缓存行的当前状态与预测状态一致的情况下,使用第二内存地址,以及缓存行的当前状态,对预设的内存地址与缓存行状态信息之间的对应关系进行更新。
[0116]
为了便于识别测试激励及与测试激励对应的响应,在一些例子中,将测试激励直接向数据互联网络发送(s103a),可以包括:
[0117]
s103ac、第一处理器模拟核心生成标签。
[0118]
该标签与正在使用的标签不同。
[0119]
s103ad、使用标签对测试激励进行标记。
[0120]
使用标签对测试激励进行标记,能够使标记后的测试激励与其它测试激励进行区分。
[0121]
s103ae、将标记后的测试激励直接向数据互联网络发送。
[0122]
将带有标签的测试激励直接向数据互联网络发送。
[0123]
为了对向数据互联网络发送的测试激励进行有效处理,在一些例子中,在多处理器模拟核心中的第一处理器模拟核心,根据测试请求及存储一致性测试策略,生成测试激励(s102aa)之前,所述方法还包括:
[0124]
s108、每个处理器模拟核心接收数据互联网络发送的、数据互联网络处理每个处理器模拟核心发送请求的最大数量值。
[0125]
数据互联网络可向处理器模拟核心发送表示能够处理每个处理器模拟核心的最大量,每个处理器模拟核心的最大量可相同,也可不同。
[0126]
所述第一处理器模拟核心生成标签(s103ac),可以包括:
[0127]
c1、第一处理器模拟核心根据所述最大数量值及当前正在使用的第一标签,生成第二标签作为所述测试激励的标签;其中,所述第二标签不同于第一标签。
[0128]
第一处理器模拟核心收到数据互联网络发送的、表示能够最多处理第一处理器核心发送的请求的量,如最大量为20个,这样,可生成的标签为1-20,如果正在使用的标签为1、3、4和5,则本次生成的标签可为1-20中除1、3、4和5之外的标签。
[0129]
可以理解的是,当前正在使用的第一标签可为第一处理器模拟核心发出测试激励但是并没有收到响应时的标签。
[0130]
为了便于下一次生成测试激励时,对应地生成标签,在一些例子中,在生成第二标签作为一致性验证请求的标签之后,所述方法还可以包括:
[0131]
c2、将第二标签作为当前正在使用的标签进行存储。
[0132]
响应中包括测试激励的标签;在接收数据互联网络返回的响应之后,所述方法还可以包括:
[0133]
s109、从当前正在使用的标签中,查找与响应中的标签一致的标签,并将响应中的标签从当前正在使用的标签中删除。
[0134]
从当前正在使用的标签中,查找与响应中的标签一致的标签,并将响应中的标签从当前正在使用的标签中删除,这样,在下次针对生成的测试激励,生成的标签,可使用本次删除的标签,如从当前正在使用的标签中删除的标签为2,那么在下次生成标签时,可生成2。
[0135]
下面以一具体实施例,对本技术的方案中的测试平台进行详细说明。
[0136]
参见图10和图11,本实施例的测试平台,是基于验证大规模处理器互联搭建的平台c_tb,测试平台c_tb和dut直接通过适配器adapter(dpi)互通信息,验证人员通过c_tb留个用户的上层接口,写direct sequence或者random sequence相关激励给dut,由于c_tb是基于验证大规模处理器互联搭建的平台,所以激励是产生符合接口协议的request请求。本实施例中的dut可为数据互联网络。
[0137]
1、首先,测试平台的glb_cfg通过读取cfg.txt得到dut的寄存器配置信息以及c_tb中各个cpu_model的一些约束信息。dut的寄存器配置通过相应的接口发送给dut,各个cpu_model的约束信息会分发到相应的cpu_cfg中。
[0138]
dut的寄存器配置信息可以包括对内存地址空间划分为缓存类型和非缓存类型,还包括与测试平台中包括的处理器模拟核心的数量等信息。各个cpu_model可以根据读取的约束信息,以及在sequence中预设的策略,生成测试激励。
[0139]
cpu_model为模拟的处理器核心即处理器模拟核心,与数据互联网络进行数据交
互,以此模拟多处理器系统。
[0140]
2、dut开始复位的流程,dut在根据寄存器配置信息配置寄存器,启动起来之后,会通过dpi向c_tb发送测试请求,即c_tb可以相dut发送测试激励,测试激励可以包括读/写的请求。
[0141]
发送的测试请求中可以包括可以处理每个cpu_model发送的最多的测试激励的数量。
[0142]
3、c_tb收到dut的测试请求后,c_tb的sequence模块会根据cpu_cfg中的约束信息以及预设的测试策略,生成测试激励。
[0143]
在一些例子中,测试激励可包括命令类型以及所要操作的内存地址。在cache_model中记录了内存地址以及缓存行的状态的对应关系,可根据基于缓存一致性协议的状态转移规则,对生成的测试激励进行检测,确定本次生成的测试激励是否合理以及是否可以向数据互联网络发送。
[0144]
通过tag_management模块生成一个标签,并且将包括标签的测试激励存入inflight request queue里面,该标签用于标识不同的测试激励,并且该标签是基于数据互联网络发送的处理每个处理器模拟核心最大的测试激励的数量以及之前存储在inflight request queue里面的标签生成的,在本次生成标签inflight request queue里面没有本次生成的标签。
[0145]
4、将生成的、含有标签的测试激励通过dpi pack-unpack模块打包请求信息通过dpi发送给dut。
[0146]
5、dut在处理完测试激励后通过dpi回复结果即响应给c_tb,在c_tb里根据标签在inflight request queue模块里面提取到发送的测试激励对应的标签,在inflight request queue里面删除该标签,并通过tag management模块回收标签。
[0147]
针对测试激励中的内存地址为缓存类内存地址的情况,可根据cache_model中记录了内存地址以及缓存行的状态的对应关系、所述命令类型以及预设的基于缓存一致性协议的状态转移规则,预测内存地址对应的缓存行的状态,与响应中包括的缓存行的状态信息对比,确定数据互联网络是否支持多核处理器系统的缓存一致性。
[0148]
6、对于读请求的响应,read data checker模块会将读到的数据和该模块预测的数据进行比较来确定读数据的正确性。
[0149]
具体地,read data checker模块会维护一个c_tb里所有访问过的内存地址以及记录这个内存地址中的数据。在多核cpu系统中,如果多个cpu核同时读写同一个地址,经过互联模块到达内存的顺序是不可预测的,这导致结果也不能预测,但是请求到达内存控制器的顺序和实际内存的操作顺序是一致的,基于此,c_tb中会记录各个请求到达内存控制器的顺序,以此来预测结果。如核心cpu0向地址a发出了写请求,想要写入的数据是b,核心cpu1向地址a发出了读请求,读取数据,如果记录到写请求先到达内存控制器,读请求后到,于是就能预测核心cpu1的读请求的结果应该是b。此时c_tb既检查了互联网络是否正确的将想要写入的数据b传递给了内存控制器,也检查了互联网络是否正确的将内存中读取的数据正确的传递给了c_tb。
[0150]
本实施例,在不拖慢emulator运行速度的情况下,实现了大规模处理器互联硬件仿真的高效快速的验证,为迅速找到可能存在的设计问题打下了基础,
[0151]
本技术一实施例提供的基于硬件仿真的集成电路的测试装置,应用于测试平台,所述测试装置包括:第一接收模块,用于接收所述集成电路发送的测试请求;生成模块,用于根据所述测试请求及预设测试策略,生成测试激励;发送模块,用于将所述测试激励直接向所述集成电路发送,能够有效提高基于硬件仿真的集成电路的测试速度。
[0152]
图12为本技术一实施例提供的基于硬件仿真的集成电路的测试装置的结构示意图,如图12所示,本实施例的基于硬件仿真的集成电路的测试装置,应用于测试平台,所述测试装置包括:第一接收模块11,用于接收所述集成电路发送的测试请求;生成模块12,用于根据所述测试请求及预设测试策略,生成测试激励;发送模块13,用于将所述测试激励直接向所述集成电路发送。
[0153]
本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0154]
本实施例的装置,通过接收集成电路发送的测试请求,在根据测试请求及预设测试策略,生成测试激励,并将测试激励直接向集成电路发送,由于生成测试激励后,直接向集成电路发送,省去了现有技术中编译、打包的过程,简化了向集成电路发送测试激励的过程,能够有效提高基于硬件仿真的集成电路的测试速度。
[0155]
作为一可选实施方式,所述装置还包括:第二接收模块,用于在所述发送模块将所述测试激励直接向所述集成电路发送之后,接收所述集成电路返回的响应;所述响应为所述集成电路根据所述测试激励执行相应操作而得到的。
[0156]
作为一可选实施方式,所述生成模块,包括:生成子模块,用于根据所述测试请求及存储一致性的测试策略,生成测试激励。
[0157]
作为一可选实施方式,所述装置还包括:所述装置还包括:第三接收模块,用于所述发送模块将所述测试激励直接向所述集成电路发送之后,接收所述集成电路返回的响应;所述响应为所述集成电路根据所述测试激励执行相应操作而得到的;处理模块,用于根据预设的处理策略,对所述响应进行处理,以对所述集成电路的存储一致性进行验证。
[0158]
作为一可选实施方式,所述集成电路包括数据互联网络;所述生成子模块,包括:生成单元,用于通过多处理器模拟核心中的第一处理器模拟核心,根据所述测试请求及存储一致性的测试策略,生成测试激励;所述发送模块,包括:发送子模块,用于将所述测试激励直接向所述数据互联网络发送;所述第二接收模块,包括:接收子模块,用于接收所述数据互联网络返回的响应;所述响应为所述数据互联网络根据所述测试激励执行相应操作而得到的;所述处理模块,包括:确定子模块,用于将所述响应与预测信息比对,确定所述数据互联网络是否支持多核处理器系统的存储一致性。
[0159]
作为一可选实施方式,所述生成单元,具体用于:多处理器模拟核心中的第一处理器模拟核心生成读请求;所述读请求中包括所述读请求所要操作的第一内存地址;所述接收子模块,具体用于:接收所述数据互联网络针对所述读请求的响应,所述响应中包括从内存读取的第一数据;所述确定子模块,具体用于:将所述第一数据与第一预测数据进行比对,确定所述第一数据和所述第一预测数据是否一致;其中,所述第一预测数据为对所述第一内存地址进行操作的第一写请求中包括的数据;所述第一写请求为在所述读请求之前且距离所述读请求时间最短的、对所述第一内存地址进行写数据的写请求;根据所述第一数据和所述第一预测数据是否一致,确定所述数据互联网络是否支持多核处理器系统的内存
一致性。
[0160]
作为一可选实施方式,所述装置还包括:第三接收模块,用于在所述确定子模块将所述第一数据与第一预测数据进行比对之前,接收内存控制器通过所述数据互联网络发送的、所述读请求到达所述内存控制器的时间;
[0161]
第一确定模块,用于根据所述第一内存地址和所述时间,在预先按照时间排序的各处理器模拟核心发送的各个写请求中包括的内存地址和数据的对应关系,确定第一预测数据。
[0162]
作为一可选实施方式,所述预先按照时间排序的各处理器模拟核心发送的各个写请求中包括的内存地址和数据的对应关系,根据如下步骤确定:
[0163]
接收所述内存控制器通过所述数据互联网络发送的、各处理器核心发送的各个写请求到达所述内存控制器的时间;
[0164]
根据所述各个写请求到达所述内存控制器的时间的先后顺序,对各处理器核心发送的各个写请求中包括的内存地址和数据的对应关系进行排序。
[0165]
作为一可选实施方式,所述数据互联网络包括缓存;所述测试激励包括命令类型和所述测试激励所要操作的第二内存地址,且所述第二内存地址的类型为缓存类内存地址;所述响应包括所述缓存中的第一缓存行的当前状态;所述第一缓存行为所述测试激励所要操作的第二内存地址在所述缓存中的缓存行;所述确定子模块,具体还用于:根据所述第二内存地址,从预设的内存地址与缓存行状态之间的对应关系中,确定所述第一缓存行的状态;基于所述第一缓存行的状态、所述命令类型以及预设的基于缓存一致性协议的状态转移规则,预测所述第一缓存行的状态,得到所述第一缓存行的预测状态;将所述第一缓存行的当前状态与所述预测状态比对,确定所述数据互联网络是否支持多核处理器系统的缓存一致性。
[0166]
作为一可选实施方式,所述发送子模块,具体用于:所述第一处理器模拟核心根据预设的基于缓存一致性协议的状态转移规则、预设的内存地址与缓存行状态之间的对应关系、以及所述测试激励中包括的所述命令类型和所述第二内存地址,对所述测试激励进行校验,确定是否能够将所述测试激励向所述数据互联网络发送;如果能够向所述数据互联网络发送,则将所述测试激励直接向所述数据互联网络发送。
[0167]
作为一可选实施方式,在所述生成单元通过多处理器模拟核心中的第一处理器模拟核心,根据所述测试请求及存储一致性测试策略,生成测试激励之后,所述确定子模块将所述第一缓存行的当前状态与所述预测状态比对之前,所述装置还包括:读取模块,用于读取内存地址配置信息;其中,所述内存地址配置信息包括内存地址空间与内存地址类型的对应关系,所述内存地址类型包括缓存类内存地址;第二确定模块,用于根据内存地址空间与内存地址类型的对应关系,确定所述第二内存地址的类型为缓存类内存地址。
[0168]
作为一可选实施方式,所述装置还包括:更新模块,用于在所述第一缓存行的当前状态与所述预测状态一致的情况下,使用所述第二内存地址,以及所述缓存行的当前状态,对预设的内存地址与缓存行状态信息之间的对应关系进行更新。
[0169]
作为一可选实施方式,所述发送子模块,包括:生成单元,用于通过所述第一处理器模拟核心生成标签;标记单元,用于使用所述标签对所述测试激励进行标记;发送单元,用于将标记后的所述测试激励直接向所述数据互联网络发送。
[0170]
作为一可选实施方式,所述装置还包括:第四接收模块,用于在所述生成单元多处理器模拟核心中的第一处理器模拟核心,根据所述测试请求及存储一致性测试策略,生成测试激励之前,通过每个处理器模拟核心接收所述数据互联网络发送的、所述数据互联网络处理每个处理器模拟核心发送请求的最大数量值;所述生成单元,用于通过所述第一处理器模拟核心根据所述最大数量值及当前正在使用的第一标签,生成第二标签作为所述测试激励的标签;其中,所述第二标签不同于第一标签。
[0171]
作为一可选实施方式,所述装置还包括:存储模块,用于在所述生成单元生成第二标签作为所述一致性验证请求的标签之后,将所述第二标签作为当前正在使用的标签进行存储。
[0172]
作为一可选实施方式,所述响应中包括所述测试激励的标签;所述装置还包括:删除模块,用于在所述接收子模块接收所述数据互联网络返回的响应之后,从当前正在使用的标签中,查找与所述响应中的标签一致的标签,并将所述响应中的标签从当前正在使用的标签中删除。
[0173]
上述实施例的装置,可以用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0174]
图13为本技术一实施例提供的电子设备的结构示意图,如图13所示,可以包括:壳体61、处理器62、存储器63、电路板64和电源电路65,其中,电路板64安置在壳体61围成的空间内部,处理器62和存储器63设置在电路板64上;电源电路65,用于为上述电子设备的各个电路或器件供电;存储器63用于存储可执行程序代码;处理器62通过读取存储器63中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例提供的任一种基于硬件仿真的集成电路的测试方法,因此也能实现相应的有益技术效果,前文已经进行了详细说明,此处不再赘述。
[0175]
上述电子设备以多种形式存在,包括但不限于:
[0176]
(1)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:pda、mid和umpc设备等,例如ipad。
[0177]
(2)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
[0178]
(3)其他具有数据交互功能的电子设备。
[0179]
相应的,本技术的实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述实施例提供的任一种基于硬件仿真的集成电路的测试方法,因此也能实现相应的技术效果,前文已经进行了详细说明,此处不再赘述。
[0180]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在
包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0181]
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
[0182]
尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0183]
为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本技术时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
[0184]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来请求相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等。
[0185]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献