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

一种指令跟踪测试方法、系统、设备以及介质与流程

2022-06-11 14:27:27 来源:中国专利 TAG:


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


背景技术:

2.处理器指令跟踪作为片上调试的有效手段,被越来越多的设计中采用,以arm的coresight为代表的新一代的指令跟踪系统越来越复杂,也增大了前端验证工作的任务量。如何保证对soc中的每一个指令跟踪系统的验证的高效性和完整性成为大家所关心的话题。
3.对于一个典型的指令跟踪系统,通常由处理器中跟踪模块(比如etm)作为跟踪源,搭配系统中众多子模块对跟踪数据进行选择和处理,不同的跟踪输出端对跟踪数据进行处理和选择性的输出。处理后的跟踪数据和原指令流有着较大的差异,验证时需要有对应的参考模型以及解码器。参考模型和解码器一般用高级语言实现。
4.当前市面上应用最广泛的就是基于arm的处理器指令跟踪系统coresight,但是关于这样一个具有多个组件的复杂系统,传统的验证流程中,验证人员需要为每个跟踪输出端的流程编写不同的用例,并且按照不同参考模型以及解码器编写对应的monitor(监测器),并需要按照一定的格式对收集到的数据进行处理后才能使用比对脚本程序对跟踪结果进行验证,需要消耗大量的时间,更换项目后还需要从头进行上述重复操作,进而导致效率低下。


技术实现要素:

5.有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种指令跟踪测试方法,包括以下步骤:
6.获取已设计的跟踪系统中各个模块的多个参数;
7.基于所述各个模块的多个参数生成表格文件,其中所述表格文件中包括模块列、参数名称列、值列以及描述列;
8.从所述表格文件中获取若干个预设参数;
9.基于所述预设参数生成测试用例和监测器;
10.将所述测试用例输入到所述已设计的跟踪系统中并利用所述监测器采集所述已设计的跟踪系统执行所述测试用例时的数据。
11.在一些实施例中,获取已设计的跟踪系统中各个模块的多个参数,进一步包括:
12.获取各个模块的配置参数和寄存器地址参数。
13.在一些实施例中,基于所述预设参数生成测试用例和监测器,进一步包括:
14.根据当前已设计的跟踪系统中不同的跟踪输出端选择不同的监测器,以利用所述不同的监测器收集跟踪输出端输出的数据,并按照预设的格式输出到不同的文件;
15.根据各个模块的配置参数和寄存器地址参数生成相应的测试用例。
16.在一些实施例中,还包括:
17.将所述采集到的数据利用对比程序进行对比。
18.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种指令跟踪测试系统,包括:
19.第一获取模块,配置为获取已设计的跟踪系统中各个模块的多个参数;
20.生成模块,配置为基于所述各个模块的多个参数生成表格文件,其中所述表格文件中包括模块列、参数名称列、值列以及描述列;
21.第二获取模块,配置为从所述表格文件中获取若干个预设参数;
22.生成模块,配置为基于所述预设参数生成测试用例和监测器;
23.输入模块,配置为将所述测试用例输入到所述已设计的跟踪系统中并利用所述监测器采集所述已设计的跟踪系统执行所述测试用例时的数据。
24.在一些实施例中,第一获取模块还配置为:
25.获取各个模块的配置参数和寄存器地址参数。
26.在一些实施例中,生成模块还配置为:
27.根据当前已设计的跟踪系统中不同的跟踪输出端选择不同的监测器,以利用所述不同的监测器收集跟踪输出端输出的数据,并按照预设的格式输出到不同的文件;
28.根据各个模块的配置参数和寄存器地址参数生成相应的测试用例。
29.在一些实施例中,还包括对比模块,配置为:
30.将所述采集到的数据利用对比程序进行对比。
31.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
32.至少一个处理器;以及
33.存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种指令跟踪测试方法的步骤。
34.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种指令跟踪测试方法的步骤。
35.本发明具有以下有益技术效果之一:本发明提出的方案能够快速建立监测器和测试用例,快速完成指令跟踪系统的测试,节省环境结构构建和测试用例开发时间,保证指令跟踪系统验证时的高效性。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
37.图1为本发明的实施例提供的指令跟踪测试方法的流程示意图;
38.图2为本发明的实施例提供的指令跟踪测试方法的流程框图;
39.图3为本发明的实施例提供的表格示意图;
40.图4为本发明的实施例提供的指令跟踪测试系统的结构示意图;
41.图5为本发明的实施例提供的计算机设备的结构示意图;
42.图6为本发明的实施例提供的计算机可读存储介质的结构示意图。
具体实施方式
43.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
44.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
45.根据本发明的一个方面,本发明的实施例提出一种指令跟踪测试方法,如图1所示,其可以包括步骤:
46.s1,获取已设计的跟踪系统中各个模块的多个参数;
47.s2,基于所述各个模块的多个参数生成表格文件,其中所述表格文件中包括模块列、参数名称列、值列以及描述列;
48.s3,从所述表格文件中获取若干个预设参数;
49.s4,基于所述预设参数生成测试用例和监测器;
50.s5,将所述测试用例输入到所述已设计的跟踪系统中并利用所述监测器采集所述已设计的跟踪系统执行所述测试用例时的数据。
51.本发明提出的方案能够快速建立监测器和测试用例,快速完成指令跟踪系统的测试,节省环境结构构建和测试用例开发时间,保证指令跟踪系统验证时的高效性。
52.在一些实施例中,本发明采用将所有常用的验证指令跟踪系统所需的参数汇总在一个表格里,然后使用脚本分析表格文件,自动化产生测试用例以及monitor,并完成相应的连接和数据的收集和初步处理。这种方式可以减少验证工程师为了针对每个不同的平台编写测试用例和monitor以及对输出数据进行处理所花费的大量时间。同时由于只有一个表格文件做修改,也便于在后续项目中进行继承与方便管理维护,提高了验证的灵活性和高效性,实现了验证平台的快速集成和实施。
53.在一些实施例中,还包括:
54.将所述采集到的数据利用对比程序进行对比。
55.具体的,如图2所示,对于一个典型的arm指令跟踪系统coresight,往往存在一个用于从外部控制这个系统的dap(调试访问端口),这个dap可以访问指令跟踪系统上的各个模块内部的存储器,进而控制此系统。本发明将通过脚本生成的测试用例通过jtag vip作为激励发给dap,然后dap就可以按照测试用例所指定的激励完成对coresight上每个组件的访问,进而执行相应的测试。同时monitor采集三个部分的信息,第一部分是用以cpu执行的image文件,默认从指定的地址段中通过uvm的后门访问读取,第二部分是传给dap的jtag协议的激励,第三部分是从跟踪输出端输出的跟踪数据。并将其各自输出给不同的文件。最后经由用户提供的比对脚本或者程序对这些数据进行比对。
56.在一些实施例中,获取已设计的跟踪系统中各个模块的多个参数,进一步包括:
57.获取各个模块的配置参数和寄存器地址参数。
58.在一些实施例中,步骤s2,基于所述各个模块的多个参数生成表格文件,其中所述表格文件中包括模块列、参数名称列、值列以及描述列,具体的,验证人员可以根据项目中的指令跟踪系统的集成实例来填写信息表格,包含一些用来定义当前coresight系统集成方式的参数,比如跟踪输出端的属性及数量,不同组件的地址段等。此表格格式可以采用csv。在该表格中规定了一系列条目来描述当前指令追踪系统的信息。实际使用时,各个模块的信息由架构工程师根据自己的设想和需求完成初步定义后交给设计工程师和验证工程师,设计工程师会根据这些信息为指令跟踪系统中的模块设置和分配不同的参数,完成指令跟踪系统的设计,在重新整理并修改后,将这些信息交由验证工程师填入表格。
59.例如图3示出的表格,其包括了模块列、参数名称列、值列以及描述列,通过该表格可知指令跟踪系统的信息为包含两个tmc,tmc1和tmc2,分别被配置为etf和etr,模式分别为hardware fifo(hwf)和circular buffer(cb)。默认设置的dap为jtag-dp和apbap。ir和dr的长度分别为4和64bit。如有需要也可重新配置相关参数tmc1的地址范围为0x81040000到0x81040fff,tmc2的地址范围为0x81050000到0x81050fff。cpu中的debug寄存器的地址范围为0x81000000到0x81000fff,其中的etm寄存器的地址范围为0x81020000,cti寄存器的起始地址为0x81400000。后续省略部分为指令跟踪系统里其他模块的信息。比如tpiu和funnel以及cti等。
60.在一些实施例中,基于所述预设参数生成测试用例和监测器,进一步包括:
61.根据当前已设计的跟踪系统中不同的跟踪输出端选择不同的监测器,以利用所述不同的监测器收集跟踪输出端输出的数据,并按照预设的格式输出到不同的文件;
62.根据各个模块的配置参数和寄存器地址参数生成相应的测试用例。
63.具体的,可以根据表格中给出的寄存器的地址信息,自动生成标准的测试用例,可以用在芯片级仿真中,完成指令跟踪系统的验证。还可以根据表格中给出的指令跟踪系统的信息,自动生成对应的monitor,可以用在芯片级仿真中,完成对指令跟踪系统的输出的采集和数据分离。
64.这样通过自动化工具读取存储器表格文件,自动化工具可以使用任何脚本语言实现,该工具首先会读取并分析我们预先定义好的指令跟踪系统表格文件,然后根据当前系统中不同的跟踪输出端选择不同的monitor,这些monitor将会自动收集跟踪输出端的数据,并将其按照一定的格式输出到一个文件里面。将工具生成的用例和monitor集成后运行即可。之后工具根据所读取到的模块配置来决定对指令跟踪系统中的不同模块进行什么样的特殊配置和行为,并生成相应的用例,如启动或者停止跟踪数据的抓取,设置停止条件,启动跟踪数据的生成,模块使能操作等。然后根据表格文件里定义的模块的地址段,调用各个模块的标准配置流程,将地址和配置数据作为参数传入。基于预先开发好的测试用例模板产生每个模块的测试用例和monitor。这些步骤都由自动化工具完成,不需要任何人工介入。
65.在一些实施例中,步骤s5,将所述测试用例输入到所述已设计的跟踪系统中并利用所述监测器采集所述已设计的跟踪系统执行所述测试用例时的数据,具体的,自动生成包含标准的配置流程的对coresight组件的配置操作。包含对funnel,tpiu,tmc,以及etm的配置操作,用户可以根据需求自行进一步修改标准配置流程和参数,最后将生成的测试用例集成到验证环境中,回归验证。
66.本发明提出的方案能够快速建立监测器和测试用例,快速完成指令跟踪系统的测试,节省环境结构构建和测试用例开发时间,保证指令跟踪系统验证时的高效性。
67.基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种指令跟踪测试系统400,如图4所示,包括:
68.第一获取模块401,配置为获取已设计的跟踪系统中各个模块的多个参数;
69.生成模块402,配置为基于所述各个模块的多个参数生成表格文件,其中所述表格文件中包括模块列、参数名称列、值列以及描述列;
70.第二获取模块403,配置为从所述表格文件中获取若干个预设参数;
71.生成模块404,配置为基于所述预设参数生成测试用例和监测器;
72.输入模块405,配置为将所述测试用例输入到所述已设计的跟踪系统中并利用所述监测器采集所述已设计的跟踪系统执行所述测试用例时的数据。
73.在一些实施例中,第一获取模块401还配置为:
74.获取各个模块的配置参数和寄存器地址参数。
75.在一些实施例中,生成模块404还配置为:
76.根据当前已设计的跟踪系统中不同的跟踪输出端选择不同的监测器,以利用所述不同的监测器收集跟踪输出端输出的数据,并按照预设的格式输出到不同的文件;
77.根据各个模块的配置参数和寄存器地址参数生成相应的测试用例。
78.在一些实施例中,还包括对比模块,配置为:
79.将所述采集到的数据利用对比程序进行对比。
80.本发明提出的方案能够快速建立监测器和测试用例,快速完成指令跟踪系统的测试,节省环境结构构建和测试用例开发时间,保证指令跟踪系统验证时的高效性。
81.基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机设备501,包括:
82.至少一个处理器520;以及
83.存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种指令跟踪测试方法的步骤。
84.基于同一发明构思,根据本发明的另一个方面,如图6所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种指令跟踪测试方法的步骤。
85.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
86.此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
87.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功
能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
88.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
89.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
90.上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
91.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
92.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
再多了解一些

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

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

相关文献