验证方法、装置及电子设备与流程

文档序号:29711048发布日期:2022-04-16 17:24阅读:81来源:国知局
验证方法、装置及电子设备与流程

1.本技术实施例涉及芯片验证技术领域,尤其涉及一种验证方法、装置及电子设备。


背景技术:

2.目前,系统级芯片(system on chip,简称soc)的应用越来越广泛,且soc芯片的流片一般比较昂贵,因此,在soc进行流片之前,需要对soc芯片进行仿真验证来确定soc芯片的正常运行,而目前一班利用验证平台对soc芯片进行仿真验证。
3.有些验证平台基于sv(systemverilog)语言对soc芯片进行验证仿真,而有soc芯片中某些待验证模块的测试用例采用c代码编写,测试用例包含用于驱动待验证模块进行仿真验证的指令,soc芯片中的中央处理器(central processing unit,简称cpu)用于执行c代码,因此,cpu可以基于测试用例中的指令驱动soc芯片与验证平台进行多次交互完成对soc芯片的验证仿真。
4.但c代码与sv代码不一致,导致soc芯片与验证平台不能进行交互,造成仿真验证不能执行。
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.本技术实施例中,提供一种验证方法、装置及电子设备。其中,该方法应用于系统级芯片,该方法包括执行待验证模块对应的测试用例,以对待验证模块进行验证,其中,测试用例基于第一程序语言编写而成;利用目标程序语言将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息;将第一转换信息写入预设寄存器,以供验证平台从预设寄存器获取第一转换信息,并基于第一转换信息,生成基于第二程序语言的第二传递信息;从预设寄存器获取第二转换信息;结合第二转换信息对待验证模块进行下一步验证。本技术实施例提供的技术方案可以通过对第一传递信息和第二传递信息进行程序语言的同步,保证系统级芯片与验证平台的交互,提高芯片验证效率。
38.本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
39.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
40.图1示出了本技术提供的验证方法一种实施例的流程示意图;
41.图2示出了本技术提供的验证方法另一种实施例的流程示意图;
42.图3示出了本技术提供的验证装置一个实施例的结构示意图;
43.图4示出了本技术提供的验证装置另一个实施例的结构示意图;
44.图5示出了与图3对应的电子设备的结构示意图;
45.图6示出了与图4对应的电子设备的结构示意图。
具体实施方式
46.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
47.在本技术的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可
以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
48.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
49.图1示出了本技术提供的验证方法一种实施例的流程示意图,其中,该方法应用于soc芯片,其中该方法可以由soc芯片中的cpu执行。如图1所示,该方法包括:
50.101、执行待验证模块对应的测试用例,以对待验证模块进行验证。
51.其中,测试用例基于第一程序语言编写而成。
52.可选地,第一程序语言可以是c语言。
53.可选地,cpu在进行针对待验证模块的验证时,都会从预先设置的文件中获取对应的测试用例,从而基于测试用例中的验证指令对应待验证模块进行验证。
54.可选地,测试用例包括待验证模块对应的模块标识,从而cpu在执行该测试用例时,可以获取对应的模块标识。
55.其中,测试用例可以预先存储在cpu对应的文件中,从而cpu在进行soc芯片的验证中,会从对应的文件中获取对应的测试用例。
56.可选地,上述验证方法还包括:获取测试用例对应的引用路径;基于引用路径获取测试用例。
57.102、利用目标程序语言,将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息。
58.可选地,目标程序语言可以是表示一种特殊意义的二进制数据,该二进制数据可以是soc芯片和验证平台预先约定的。
59.第一传递信息可以是cpu在执行测试用例的某个指令生成的执行结果或者需要和验证平台进行交互的数据。其中,验证平台可以基于该执行结果或者数据对待验证模块进行下一步验证。
60.可选地,将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息的过程可以实现为:利用定义的同步函数,将第一程序语言的第一传递信息转换成目标程序语言的第一转换信息。
61.其中该同步函数可以是sync函数等等具有同步功能的函数。
62.由于在同一时刻可能进行多个待验证模块的验证,为了保证验证平台可以获取正在验证的待验证模块的第一传递信息,从而保证验证的正确。可选地,利用目标程序语言,将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息可以实现为:获取待验证模块对应的模块标识;利用目标程序对第一传递信息和模块标识进行编码,生成第一转换信息。
63.103、将第一转换信息写入预设寄存器,以供验证平台从预设寄存器获取第一转换信息,并基于第一转换信息,生成基于第二程序语言的第二传递信息。
64.可选地,预设寄存器可以是soc芯片上任一个空闲的寄存器,优选为外设寄存器。
65.其中,由于第一转换信息包括cpu在执行测试用例的某个指令生成的执行结果或
者需要和验证平台进行交互的数据,因此,验证平台在或者执行结果或者数据之后,可以基于执行结果或者数据生成对应的第二传递信息。
66.比如,待验证模块为soc芯片上某一计算模块,cpu基于测试用例的验证指令,确定出该测试用例的计算结果为5,则cpu将这一计算结果作为第一传递信息,且利用目标程序将该第一传递信息编码成第一转换信息,验证平台中确定出该测试用例对应的计算结果为6,且结合该第一转换信息中测试用例的计算结果为5,则确定出该待验证模块有误,生成的第二传递信息包括表示待验证模块有误的执行结果。
67.可选地,验证平台可以获取soc芯片上寄存器的状态,因此,可以获取soc芯片上哪个寄存器中存在第一转换信息。
68.可选地,第二程序语言可以是sv语言。
69.对应的,由于第一转换信息中包括待验证模块对应的模块标识,可选地,将第一转换信息写入预设寄存器包括:在预设寄存器的对应位置分别写入第一转换信息中的模块标识以及第一传递信息。
70.其中,预设寄存器一般为32位,其中8位用于写入模块标识,24位用于写入第一传递信息,其中模块标识和第一传递信息均为利用目标程序语言编码之后的。
71.需要说明的是,第一传递信息和第二传递信息可以同时生成
72.104、从预设寄存器获取第二转换信息,第二转换信息为验证平台利用目标程序语言对第二传递信息进行编码生成的。
73.其中,由于第二转换信息中是基于第二程序语言生成的,因此,验证平台也需要利用目标程序语言对第二传递信息进行编码,生成对应的第二转换信息。
74.为了获取待验证模块对应的第二转换信息,需要确定第二转换信息中模块标识。可选地,从预设寄存器获取第二转换信息包括:在预设寄存器中确定出模块标识;获取包括模块标识的第二转换信息。
75.cpu在将第一转换信息写入到预设寄存器之后,会不断地访问该预设寄存器,从而获取对应的第二转换信息,可选地,从预设寄存器获取第二转换信息包括:每隔预设周期之后,在预设寄存器获取第二转换信息。
76.其中,预设周期可能是一分钟,半分钟等等,预设周期可以根据不同的测试用例灵活设定。
77.可选地,cpu可以定义一个周期性的访问函数,从而可以周期性访问预设寄存器,在确定预设寄存器存在对应的第二转换信息之后,获取对应的第二转换信息。
78.105、结合第二转换信息对待验证模块进行下一步验证。
79.由于soc芯片需要和验证平台进行多次交互才能确定最终的验证结果,因此,soc芯片在获取到第二传递信息之后,还会基于第二传递信息以及测试用例中的验证指令执行下一步的验证。
80.下一步验证的过程与上述验证过程一致,在此不再赘述。
81.在进行多次验证之后,soc芯片可以获取对应的验证结果,从而输出该验证结果以供验证人员进行查看。
82.本技术实施例中,提供一种验证方法,其中,该方法应用于系统级芯片,该方法包括执行待验证模块对应的测试用例,以对待验证模块进行验证,其中,测试用例基于第一程
序语言编写而成;利用目标程序语言将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息;将第一转换信息写入预设寄存器,以供验证平台从预设寄存器获取第一转换信息,并基于第一转换信息,生成基于第二程序语言的第二传递信息;从预设寄存器获取第二转换信息;结合第二转换信息对待验证模块进行下一步验证。本技术实施例提供的技术方案可以通过对第一传递信息和第二传递信息进行程序语言的同步,保证系统级芯片与验证平台的交互,提高芯片验证效率。
83.图2示出了本技术提供的验证方法一种实施例的流程示意图,其中,该方法应用于验证平台中。如图1所示,该方法包括:
84.201、基于针对待验证模块的验证指令,将验证过程中产生的基于第一程序语言的第一传递信息,编码为第一转换信息。
85.第一传递信息基于第一代码编写而成。
86.202、将第一转换信息写入预设寄存器以供系统级芯片获取第一转换信息,并基于第一转换信息,生成基于第二程序语言的第二传递信息。
87.203、在预设寄存器获取第二转换信息。
88.第二转换信息为系统级芯片利用目标程序语言对第二传递信息进行编码生成的。
89.204、结合第二转换信息对待验证模块进行下一步验证。
90.可选地,验证平台的执行过程与soc芯片中cpu的执行过程一致,在此不在赘述。
91.图3示出了本技术提供的验证装置一个实施例的结构示意图,如图3所述,该装置包括:执行模块31、第一编码模块32、第一写入模块33、第一获取模块34、第一验证模块35。
92.执行模块31,用于执行待验证模块对应的测试用例,以对所述待验证模块进行验证,其中,所述测试用例基于第一程序语言编写而成;
93.第一编码模块32,用于利用目标程序语言,将验证过程中产生的基于所述第一程序语言的第一传递信息,编码为第一转换信息;
94.第一写入模块33,用于将所述第一转换信息写入预设寄存器,以供验证平台从所述预设寄存器获取所述第一转换信息,并基于所述第一转换信息,生成基于第二程序语言的第二传递信息;
95.第一获取模块34,用于从所述预设寄存器获取第二转换信息,所述第二转换信息为所述验证平台利用所述目标程序语言对所述第二传递信息进行编码生成的;
96.第一验证模块35,用于结合所述第二转换信息对所述待验证模块进行下一步验证。
97.可选地,第一获取模块34,用于获取测试用例对应的引用路径;基于所述引用路径获取所述测试用例。
98.可选地,第一编码模块32,具体用于获取所述待验证模块对应的模块标识;利用目标程序对第一传递信息和所述模块标识进行编码,生成第一转换信息。
99.可选地,第一写入模块33具体用于在所述预设寄存器的对应位置分别写入第一转换信息中的模块标识以及所述第一传递信息。
100.可选地,第一写入模块33进一步具体用于在所述预设寄存器中确定出所述模块标识;获取包括所述模块标识的第二转换信息。
101.可选地,第一获取模块34,具体用于每隔预设周期之后,在所述预设寄存器获取第
二转换信息。
102.图3所述的验证装置可以执行图1所示实施例所述的验证方法,其实现原理和技术效果不再赘述。对于上述实施例中的验证装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
103.图4示出了本技术提供的验证装置另一个实施例的结构示意图,应用于安卓车机系统中的应用程序,如图4所述,该装置包括:第二编码模块41、第二写入模块42、第二获取模块43、第二验证模块44。
104.第二编码模块41,用于基于针对待验证模块的验证指令,将验证过程中产生的基于所述第一程序语言的第一传递信息,编码为第一转换信息,所述测试用例基于第一代码编写而成;
105.第二写入模块42,用于将所述第一转换信息写入预设寄存器以供系统级芯片获取所述第一转换信息,并基于所述第一转换信息,生成基于第二程序语言的第二传递信息;
106.第二获取模块43,用于在所述预设寄存器获取第二转换信息,所述述第二转换信息为所述系统级芯片利用所述目标程序语言对所述第二传递信息进行编码生成的;
107.第二验证模块44,用于结合所述第二转换信息对所述待验证模块进行下一步验证。
108.图4所述的验证装置可以执行图2所示实施例所述的验证方法,其实现原理和技术效果不再赘述。对于上述实施例中的验证装置其中各个模块、单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
109.在一个可能的设计中,图3所示实施例的仿真验证装置可以实现为电子设备,如图5所示,该电子设备可以包括存储组件501以及处理组件502;
110.所述存储组件501存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件502调用执行。
111.所述处理组件502用于:
112.执行待验证模块对应的测试用例,以对所述待验证模块进行验证,其中,所述测试用例基于第一程序语言编写而成;
113.利用目标程序语言,将验证过程中产生的基于所述第一程序语言的第一传递信息,编码为第一转换信息;
114.将所述第一转换信息写入预设寄存器,以供验证平台从所述预设寄存器获取所述第一转换信息,并基于所述第一转换信息,生成基于第二程序语言的第二传递信息;
115.从所述预设寄存器获取第二转换信息,所述第二转换信息为所述验证平台利用所述目标程序语言对所述第二传递信息进行编码生成的;
116.结合所述第二转换信息对所述待验证模块进行下一步验证。
117.在一个可能的设计中,图4所示实施例的验证装置可以实现为电子设备,如图6所示,该电子设备可以包括存储组件601以及处理组件602;
118.所述存储组件601存储一条或多条计算机指令,其中,所述一条或多条计算机指令供所述处理组件602调用执行。
119.所述处理组件602用于:
120.基于针对待验证模块的验证指令,将验证过程中产生的基于所述第一程序语言的
第一传递信息,编码为第一转换信息,所述测试用例基于第一代码编写而成;
121.将所述第一转换信息写入预设寄存器以供系统级芯片获取所述第一转换信息,并基于所述第一转换信息,生成基于第二程序语言的第二传递信息;
122.在所述预设寄存器获取第二转换信息,所述第二转换信息为所述系统级芯片利用所述目标程序语言对所述第二传递信息进行编码生成的;
123.结合所述第二转换信息对所述待验证模块进行下一步验证。
124.另外,本技术实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图1所示实施例中提供的验证方法。
125.本技术实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如前述图2所示实施例中提供的验证方法。
126.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
127.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
128.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
129.最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1