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

一种测试环境开发方法、系统、设备以及介质与流程

2022-07-16 11:59:55 来源:中国专利 TAG:


1.本发明涉及测试领域,具体涉及一种测试环境开发方法、系统、设备以及存储介质。


背景技术:

2.芯片的工艺制程不断发展使得芯片的设计变得越来越复杂。为了保证芯片设计的正确性,需要在流片之前对芯片的设计进行全面的仿真验证,通过仿真平台产生激励作为芯片的输入信号并检查芯片的输出信号与预期输出信号进行比较来验证芯片设计正确性。
3.当验证人员拿到设计人员提供的待测单元后,需要为该待测单元搭建可以运行仿真验证的软件环境(tb,测试平台),如图1所示,测试平台包含待测单元与验证组件。其中验证组件主要包括配置信息,代理,参考模型与比较器。根据待测组件运行的位置不同,经典的芯片验证平台可以分为软件仿真平台与硬件仿真平台。
4.如图1所示,软件仿真平台是指利用仿真编译软件将验证组件与待测单元都编译成计算机可以执行的二进制文件,随后将这个文件可执行文件放到专用服务器上利用仿真运行软件进行运行。这样的仿真软件与专用服务器称为软件仿真平台。
5.如图2所示,硬件仿真平台主要包含两部分:硬件平台与主机。硬件平台主要负责运行待测单元,主机负责运行验证组件。如图2所示,这样的仿真软件与专用硬件平台称为硬件仿真平台。硬件仿真软件首先利用综合与布线软件将待测单元编译的可以执行的二进制比特流。随后利用仿真编译工具将验证组件编译为计算机可以运行的二进制文件,主机负责运行这个二进制文件。仿真平台与主机之间通过特定的高速通信接口相连接,通过此物理接口主机可以获得所需的部分运行数据,这些数据作为主机端参考模型与比较器的输入数据。
6.软件仿真平台与硬件仿真各有其优缺点,如图3所示,软件仿真平台的编译的是将计算机可以执行的二进制文件,因而和硬件平台相比,编译的速度大幅提高,例如一个小规模通信接口软件编译时间仅需要数分钟,但是利用硬件平台编译需要高达数小时。但是硬件平台的仿真速度要远远大于软件仿真平台,尤其是对于非常复杂的算法或是片上系统,例如一个典型的片上系统在硬件平台上的执行速度可以到1到10hz,软件仿真平台速度仅仅为其百分之一到千分之一。软件或是硬件仿真平台都能很好的验证待测单元的功能。软件仿真平台在调试工具的帮助下可以观测到验证组件与待测单元中的所有信号,而硬件仿真平台仅能观测待测单元的部分信号,且观测时间长度有限。硬件平台由于需要购买额外的硬件,所以需要的成本要远远大于软件仿真平台。
7.为了结合软件仿真与硬件仿真各自的优点,目前主流的芯片验证流程都是先利用软件仿真平台测试芯片的基本功能,随后再利用硬件仿真平台验证芯片的复杂功能与时序逻辑。
8.如图4所示,首先验证工程师利用自动化工具生成基本的验证组件,同时为待测单元的输入输出连接相应的信号,输入数据一般由测试用例产生,经过驱动器转换之后发送
给待测组件。输出信号一般与比较器相连。随后根据待测组件开发相应的参考模型与比较器,比较器会将参考模型的期望值与待测单元的实际值进行比较。
9.在软件仿真平台开发初期,遇到的困难主要由以下几点:
10.1、测试平台开发的耗时性
11.测试平台开发主要包括参考模型,比较器与测试用例。在验证的初始阶段,由于参考模型与比较器开发的不成熟,对于某一典型场景的数据可能要进行数次编译与调试,每次都需要启动整个测试平台,这个过程需要消耗大量的时间。
12.2、测试场景的多样性
13.例如针对某一个典型场景,在软件仿真平台上验证工程师开发了参考模型与比较器,在软件仿真平台上执行之后发现参考模型出现错误,经过若干次尝试与修改后最终在当前的场景下参考模型与比较器输出相同。依次类推,针对其他的典型场景需要进行类似的操作,每次调试都要重新编译测试平台,编译完成之后的运行也需要消耗大量的时间。在更极端的条件下,测试平台运行了很长时间之后在某个特定时间或是特定事件发生了错误,这时修改过参考模型之后重新运行仿真平台又需要经过大量的时间才能达到前次发生错误的时间点。
14.3、特殊场景的可重复性
15.在测试过程中,有时需要测试待测组件对于错误输入的响应,而建立起这种特殊的错误输入需要构建复杂的测试用例。
16.进入硬件仿真阶段之后,上述软件仿真遇到的问题出现概率会大大减少,但是也会遇到新的困难:
17.4、调试的困难
18.如图3所示,由于硬件仿真平台执行的是经过编译与综合布线之后的硬件比特流,所以整个待测单元对于验证组件来说是一个黑盒子,验证组件仅能通过待测单元的输出与参考模型的输出进行比较得出结论。如果发现不同,这时只能通过在硬件比特流中添加调试信号重新编译与综合布线后通过专用工具观察指定信号来进行问题定位,如前所示,硬件仿真平台的编译与综合布线非常消耗时间。并且由于内置内存大小的限制,无法根据需求随意的添加调试信号的数量与采集时长,这就极大的制约了硬件仿真平台的使用。


技术实现要素:

19.有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种测试环境开发方法,包括以下步骤:
20.生成包括参考模型和比较器的初始软件仿真平台;
21.根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据;
22.利用所述参考模型和所述比较器搭建轻量级软件仿真平台;
23.将所述输入数据输入所述轻量级软件仿真平台中并根据所述输出数据对所述参考模型和所述比较器进行调试;
24.将调试后的参考模型和比较器替换所述初始软件仿真平台中未调试的参考模型和比较器以得到最终的软件仿真平台。
25.在一些实施例中,还包括:
26.构建硬件仿真平台;
27.利用所述最终的软件仿真平台对所述待测单元进行调试;
28.利用所述硬件仿真平台对调试后的待测单元进行仿真;
29.采集所述硬件仿真平台在对所述调试后的待测单元仿真过程中所述调试后的待测单元发生错误时的输入数据或预设场景下的输入数据;
30.将采集到的数据作为输入数据发送到所述最终的软件仿真平台以对所述调试后的待测单元再次调试。
31.在一些实施例中,根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据,进一步包括:
32.根据所述采集参数确定采集模式,其中采集模式包括连续模式、间隔模式以及事件模式。
33.在一些实施例中,还包括:
34.响应于所述采集模式为连续模式,设置数据缓冲区;
35.将采集到的数据存入数据缓存区;
36.将所述数据缓存区中的数据转换为预设的数据格式并打上时间戳后保存到文件中。
37.在一些实施例中,还包括:
38.响应于所述采集模式为间隔模式,启动第一定时器和第二定时器;
39.利用所述第一定时器每隔第一预设时间段生成采集触发信号;
40.利用所述第二定时器记录没有数据输入的时间,并在所述时间达到预设后生成采集停止信号;
41.将采集到的数据转换为预设的数据格式保存到文件中并打上时间戳。
42.在一些实施例中,还包括:
43.响应于所述采集模式为事件模式,根据设置的时间触发条件、地址触发条件、数据触发条件进行数据采集;
44.将采集到的数据转换为预设的数据格式保存到文件中并打上时间戳。
45.在一些实施例中,还包括:
46.提取文件中的数据与时间戳并分别放入第一队列和第二队列中;
47.根据所述第二队列中时间戳的时间将所述第一队列中相应的数据发送到相应的仿真平台。
48.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种测试环境开发系统,包括:
49.生成模块,配置为生成包括参考模型和比较器的初始软件仿真平台;
50.采集模块,配置为根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据;
51.搭建模块,配置为利用所述参考模型和所述比较器搭建轻量级软件仿真平台;
52.调试模块,配置为将所述输入数据输入所述轻量级软件仿真平台中并根据所述输出数据对所述参考模型和所述比较器进行调试;
53.替换模块,配置为将调试后的参考模型和比较器替换所述初始软件仿真平台中未调试的参考模型和比较器以得到最终的软件仿真平台。
54.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
55.至少一个处理器;以及
56.存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种测试环境开发方法的步骤。
57.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种测试环境开发方法的步骤。
58.本发明具有以下有益技术效果之一:本发明提出的方案可以大大的减少了参考模型与比较器开发的时间。这样将参考模型与比较器在轻量级的验证环境中开发稳定后可以直接将参考模型与比较器放回到传统的验证环境中进行大规模回归测试。
附图说明
59.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
60.图1为现有的软件仿真验证平台示意图;
61.图2为现有的硬件仿真平台示意图;
62.图3为软件仿真平台与硬件仿真平台对比示意图;
63.图4为传统芯片验证流程图;
64.图5为本发明的实施例提供的测试环境开发方法的流程示意图;
65.图6为本发明的实施例提供的初始软件仿真平台的示意图;
66.图7为本发明的实施例提供的轻量级软件仿真平台的示意图;
67.图8为本发明的实施例提供的数据采集流程框图;
68.图9为本发明的实施例提供的采集的数据在文件中存放示意图;
69.图10为本发明的实施例提供的测试环境开发系统的结构示意图;
70.图11为本发明的实施例提供的计算机设备的结构示意图;
71.图12为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
72.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
73.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
74.根据本发明的一个方面,本发明的实施例提出一种测试环境开发方法,如图5所
示,其可以包括步骤:
75.s1,生成包括参考模型和比较器的初始软件仿真平台;
76.s2,根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据;
77.s3,利用所述参考模型和所述比较器搭建轻量级软件仿真平台;
78.s4,将所述输入数据输入所述轻量级软件仿真平台中并根据所述输出数据对所述参考模型和所述比较器进行调试;
79.s5,将调试后的参考模型和比较器替换所述初始软件仿真平台中未调试的参考模型和比较器以得到最终的软件仿真平台。
80.本发明提出的方案可以大大的减少了参考模型与比较器开发的时间。这样将参考模型与比较器在轻量级的验证环境中开发稳定后可以直接将参考模型与比较器放回到传统的验证环境中进行大规模回归测试。
81.在一些实施例中,步骤s1-s5,具体的,如图6所示的包括参考模型和比较器的初始软件仿真平台,其中软件仿真平台中待测单元与测试组件一样运行在主机中,在硬件仿真平台中,待测单元运行在硬件平台上,测试组件运行在主机中。其中测试组件主要包含参考模型与比较器。测试数据经过驱动器到达待测组件与参考模型,两者的输出都作为比较器的输入,比较器比较待测组件的实际值与参考模型的期望值后得出相应的结论。
82.如图7所示的轻量级软件仿真平台,通过采集图6中初始软件仿真平台的产生的输入和输出数据,然后将输入数据输入到参考模型中,参考模型的输出数据和采集到的输出数据进行对比,从而实现对参考模型和比较器的开发。
83.在一些实施例中,还包括:
84.构建硬件仿真平台;
85.利用所述最终的软件仿真平台对所述待测单元进行调试;
86.利用所述硬件仿真平台对调试后的待测单元进行仿真;
87.采集所述硬件仿真平台在对所述调试后的待测单元仿真过程中所述调试后的待测单元发生错误时的输入数据或预设场景下的输入数据;
88.将采集到的数据作为输入数据发送到所述最终的软件仿真平台以对所述调试后的待测单元再次调试。
89.具体的,从硬件仿真平台中收集特殊的数据,这些数据包括极端场景数据或待测单元发生错误数据。随后将这些错误数据经过解析之后重新注入到最终的软件仿真平台中,最后在这个软件仿真平台中进行调试工作。
90.在一些实施例中,根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据,进一步包括:
91.根据所述采集参数确定采集模式,其中采集模式包括连续模式、间隔模式以及事件模式。
92.具体的,在采集数据时,可以将待测单元上的特定的输入输出总线协议转化为特定的数据格式保存到文件中,同时为每个数据包加入时间。然后利用数据解析单元将文件中的数据转化为特定的数据包并将此数据包作为参考模型与比较器的输入。数据采集可以有三种模式,第一种模式为连续模式,在此模式下,所有的输入输出数据都将被数据转换单
元记录到文件中,这种模式最大限度的保存了可能的数据集合,但是缺点就是数据量巨大,对数据的存储介质空间有较大的要求。第二种模式为间歇模式,在此模式下,数据按照一定的间隔频率进行保存,这种存储方式保存的数据量较小,但有可能会丢失有用数据。第三种为时间触发模式,在此模式下,通过设定触发条件与保存时间可以保存特定场景下的输入输出,不仅可以快速的找到一些极端的条件,还可以大大降低保存的数据量。
93.在一些实施例中,还包括:
94.响应于所述采集模式为连续模式,设置数据缓冲区;
95.将采集到的数据存入数据缓存区;
96.将所述数据缓存区中的数据转换为预设的数据格式并打上时间戳后保存到文件中。
97.具体的,如图8所示,进入连续模式后,数据包通过接口转化模块源源不断写入文件中,为了保证最佳的文件写入性能,需要开辟一片数据缓冲区,若连续模式的数据写入速度小于数据转换模块写入文件的速度,那么所有数据都会被安全的存储到文件中;若是数据写入的速度大于数据转换模块写入文件的速度,经过一段时间之后,缓冲区就会被写满,这时有两种处理方法,一种方法是丢弃最晚写入的数据,另一种方法是丢弃最早写入的数据,这两种方式都会导致数据的丢失,至于选择丢弃最晚写入的数据还是最早写入的数据,由用户根据需要自行决定,两个没有明显的优劣。如果没有指定数据采集时间或是长度,当文件满后停止采样。
98.在一些实施例中,还包括:
99.响应于所述采集模式为间隔模式,启动第一定时器和第二定时器;
100.利用所述第一定时器每隔第一预设时间段生成采集触发信号;
101.利用所述第二定时器记录没有数据输入的时间,并在所述时间达到预设后生成采集停止信号;
102.将采集到的数据转换为预设的数据格式保存到文件中并打上时间戳。
103.具体的,如图8所示,进入间隔模式之后,数据转换模块会启动一个定时器,定时器每隔一个固定的时间会发出一个触发信号来提醒数据采集部分。数据采集模块中的采集部分接收到定时器发送的触发信号后等待总线上的数据,如果有数据则进入采样状态,否则将会一直在等待状态等待数据采集。为了防止该模块进入无限等待状态,当采集模块进入采样状态后需要一个另一个定时器,如果在定时器指定的时间内没有数据到来,这时候需要跳出采集状态。
104.在一些实施例中,还包括:
105.响应于所述采集模式为事件模式,根据设置的时间触发条件、地址触发条件、数据触发条件进行数据采集;
106.将采集到的数据转换为预设的数据格式保存到文件中并打上时间戳。
107.具体的,如图8所示,进入事件触发模式之后,数据转换模块会根据触发条件来触发采样,触发条件主要分为时间触发、地址触发以及数据触发。
108.时间触发是指当仿真时间推进到某一个时刻t后,信号采样模块开始工作,采样模块在采样一定时间或是一定数量的数据之后停止。
109.地址触发是指当总线发生向特定地址发送/接收数据的时间时,信号采样模块开
始工作,采样模块在采样一定时间或是一定数量的数据之后停止。
110.数据触发是指当总线发生写入/读取特定数据的事件时,信号采样模块开始工作,采样模块在采样一定时间或是一定数量的数据之后停止。
111.在一些实施例中,还包括:
112.提取文件中的数据与时间戳并分别放入第一队列和第二队列中;
113.根据所述第二队列中时间戳的时间将所述第一队列中相应的数据发送到相应的仿真平台。
114.具体的,根据选择的触发模式进行数据采集,总线上的数据经过时钟采样后打包成为若干个数据包,随后经过系统的文件读写接口写入主机的磁盘或是硬件平台的内存中。如图9所示,该数据包在存储介质中连续的存放,每个数据包的内容由两部分组成,一部分是时间戳,另一部分是数据,其中时间戳记录的是当前出数据包采样的开始时间,数据包记录的是模块采样的输入/输出数据。一个典型的数据包内容包括数据地址信息与数据信息,其中数据信息主要是数据位宽与长度。然后当需要将数据包输入到相应的仿真平台时,可以通过数据解析模块进行,该模块完成文件中数据与时间戳提取,提取完成的时间戳被放在一个单独的队列中,数据包被放到另一个单独队列中,这两个队列为一一对应的关系。当数据包与时间戳被放置在相应队列之后,发送模块启动定时器,按照时间戳的时间将数据包发送到输出接口上。
115.本发明提出的方案首先将传统验证平台中的参考模型与比较器分离出来,随后利用本发明提出的数据采集模块将特定的测试数据从总线上以一定的格式保存到文件中。随后利用本发明提出的数据解析模块将文件中的测试数据作为数据传递给参考模型与比较器。由于参考模型与比较器是基于一个独立的轻量级验证平台进行开发,这样可以避免每次编译整个测试组件与待测单元。同时由于可以采用本发明提出的采样方法来采样特定的数据,可以大大的减少了参考模型与比较器开发的时间。将参考模型与比较器在轻量级的验证环境中开发稳定后可以直接将参考模型与比较器放回到传统的验证环境中进行大规模回归测试。
116.传统的参考模型与比较器开发一般都是基于一系列的普通数据进行开发,这样遇到一些特定数据时极易发生错误,每次发生这样的错误修正参考模型需要重新编难以整个验证环境,非常消耗时间。同时,在某些情况下,仿真运行了相当长时间后参考模型或比较器发生错误,由于没有保存导致错误的数据,即使修正参考模型或比较器后又需要重新运行长时间的仿真才能验证修正后的参考模型或是比较器是否正确。
117.本发明还利用采样的数据解决了硬件仿真中调试待测单元困难的问题。即在最终的软件仿真平台中注入从硬件中采集到的特殊数据或是问题数据,借助于验证工具可以观察到待测单元的所有信号从而迅速完成待测单元的调试。
118.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种测试环境开发系统400,如图10所示,包括:
119.生成模块401,配置为生成包括参考模型和比较器的初始软件仿真平台;
120.采集模块402,配置为根据预设的采集参数采集所述初始软件仿真平台在对待测单元仿真过程中产生的输入和输出数据;
121.搭建模块403,配置为利用所述参考模型和所述比较器搭建轻量级软件仿真平台;
122.调试模块404,配置为将所述输入数据输入所述轻量级软件仿真平台中并根据所述输出数据对所述参考模型和所述比较器进行调试;
123.替换模块405,配置为将调试后的参考模型和比较器替换所述初始软件仿真平台中未调试的参考模型和比较器以得到最终的软件仿真平台。
124.基于同一发明构思,根据本发明的另一个方面,如图11所示,本发明的实施例还提供了一种计算机设备501,包括:
125.至少一个处理器520;以及
126.存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种测试环境开发方法的步骤。
127.基于同一发明构思,根据本发明的另一个方面,如图12所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种测试环境开发方法的步骤。
128.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
129.此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
130.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
131.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
132.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
133.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
134.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
135.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实
施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献