配置芯片的表项的方法及装置与流程

文档序号:32870314发布日期:2023-01-07 03:31阅读:61来源:国知局
配置芯片的表项的方法及装置与流程

1.本技术涉及验证技术领域,特别是指一种配置芯片的表项的方法及装置、验证方法及装置、计算设备及计算机可读存储介质。


背景技术:

2.在芯片验证或仿真验证过程中,常涉及验证人员对芯片寄存器中的数据结构进行配置的操作。其中,芯片寄存器中的数据结构的类型包括表项这种类型,表项通常包括多个条目(每个条目可以理解为一行),每个条目具有多个特征字段(每个特征字段可以理解为一列)。在仿真验证中,需要将这样的表项中的各条目的各特征值配置到芯片的寄存器时,由验证人员基于uvm仿真验证平台提供的寄存器访问指令(uvm_reg)中的写寄存器指令(write)进行配置。例如针对32bit的寄存器,由于一个寄存器最多只能存放32bit字节,因此,要求一个写寄存器指令(write)的地址参数要小于32bit字节。当一个条目的信息长度很长(例如特征字段很长),该条目的写入需要使用多次写寄存器指令操作才能完成,由此可见,如果每一个表项配置时都需要验证人员进行多次写寄存器指令操作,则人工参与程度很高,不仅增加工作量,而且非常容易出错,也降低了仿真、验证过程的效率。
3.因此,在验证过程中,将表项内容配置到芯片的寄存器时,如何降低人工参与程度,提高表项配置的效率、正确率及仿真验证的效率,是有待解决的技术问题。


技术实现要素:

4.鉴于现有技术的以上问题,本技术提供一种配置芯片的表项的方法及装置、验证方法及装置、计算设备及计算机可读存储介质,以提高表项配置到芯片寄存器中的效率、正确率及仿真验证的效率。
5.为达到上述目的,本技术第一方面提供了一种配置芯片的表项的方法,包括:
6.运行第一宏,根据第一表项的名称生成待配置表项的类的实例;
7.基于所述待配置表项的类的实例生成待配置表项的实例,所述待配置表项的实例包括各特征字段的值;
8.运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
9.由上,本技术通过运行第一宏的方式生成表项的类的实例,基于表项的类的实例在生成要配置的表项实例后,通过运行第二宏的方式将要配置的表项的实例自动配置到芯片中的表项中,实现对芯片中这种表项类型的数据结构进行自动、快速的配置,从而提高了将表项配置到芯片寄存器中的效率,进而提高了仿真验证过程的效率。另一方面,由于降低了人工参与程度,简化了的验证人员的劳动,也提高了配置的正确率。
10.作为第一方面的一种可能的实现方式,所述运行第一宏,根据第一表项的名称生成待配置表项的类的实例,包括:将所述第一表项的名称作为第一参数运行第一宏,生成第一关联数组,根据所述第一表项的名称获取所述第一表项的各特征字段,并写入所述第一关联数组,生成所述待配置表项的类的实例。
11.由上,可以基于传入第一表项名称到第一宏的方式,实现所述待配置表项的类的实例的生成。
12.作为第一方面的一种可能的实现方式,所述第一宏定义为:包括所述第一参数,所述第一参数为类的类名,所述类的数据成员包括:表项的特征字段、用于存储各特征字段的关联数组;所述类的成员函数包括:根据所述第一参数获取表项中各特征字段,并写入所述关联数组。
13.由上,可以为第一宏的一种定义,基于该定义,实现第一宏运行时传入所述第一表项名称以生成所述待配置表项的类的实例。
14.作为第一方面的一种可能的实现方式,所述类的数据成员还包括:表单文件的存放路径,所述表单文件中包括所述各特征字段;所述根据所述第一表项的名称获取所述第一表项的各特征字段包括:所述根据所述第一表项的名称从表单文件的存放路径获取所述第一表项的名称对应的表单文件,根据所述表单文件的内容获取所述第一表项中各特征字段。
15.由上,使用上述方式生成表项的类的实例时,仅需要提供对应的表单文件(该文件名为:表项名_para.sv)存放到指定的路径(本例中存放路径是stim/),即可以通过上述方法自动生成表项的类的实例,操作简便,降低了人工参与程度。
16.作为第一方面的一种可能的实现方式,所述运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器,包括:将所述待配置表项的实例的名称作为第二参数运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
17.由上,可以基于传入待配置表项的实例的名称到第二宏的方式,实现将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
18.作为第一方面的一种可能的实现方式,所述第二宏定义为:包括所述第二参数,所述第二参数为表项实例名称,所述第二宏的实体中包括寄存器的变量信息,所述第二宏的成员函数包括:根据寄存器的变量信息将表项实例的各特征字段的值写入所述寄存器。
19.由上,可以为二宏的一种定义,基于该定义,实现第二宏运行时传入所述待配置表项的实例的名称以将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
20.本技术第二方面提供了一种芯片验证的方法,包括:使用第一方面所述的配置芯片的表项的方法配置芯片;基于验证平台对所述芯片进行验证。
21.本技术第三方面提供了一种配置芯片的表项的装置,包括:
22.第一执行单元,用于运行第一宏,根据第一表项的名称生成待配置表项的类的实例;
23.表项实例生成单元,用于基于所述待配置表项的类的实例生成待配置表项的实例,所述待配置表项的实例包括各特征字段的值;
24.第二执行单元,用于运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
25.本技术第四方面提供了一种验证装置,包括:第三方面所述的配置芯片的表项的装置,用于配置芯片的表项;验证平台,用于对所述芯片进行验证。
26.本技术第五方面提供了一种计算设备,包括:处理器,以及存储器;存储器上存储有程序指令,所述程序指令当被所述处理器执行时使得所述处理器执行上述第一方面或第
二方面所述的方法。
27.本技术第六方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令当被计算机执行时使得所述计算机实现上述第一方面或第二方面所述的方法。
附图说明
28.图1是本技术提供的一种配置芯片的表项的方法第一实施例的流程图;
29.图2a是本技术提供的一种配置芯片的表项的方法第二实施例的流程图;
30.图2b是本技术实施例提供的进行第一宏定义的代码的示例图;
31.图2c是本技术实施例提供的传入参数到第一宏的代码的示例图;
32.图2d是本技术实施例提供的进行第二宏定义的代码的示例图;
33.图2e是本技术实施例提供的传入参数到第二宏的代码的示例图;
34.图3a是本技术实施例提供的一种配置芯片的表项的装置的示意图;
35.图3b是本技术实施例提供的一种验证装置的示意图;
36.图4是本技术实施例提供的一种计算设备的结构性示意性图。
37.应理解,上述结构示意图中,各框图的尺寸和形态仅供参考,不应构成对本发明实施例的排他性的解读。结构示意图所呈现的各框图间的相对位置和包含关系,仅为示意性地表示各框图间的结构关联,而非限制本发明实施例的物理连接方式。
具体实施方式
38.下面结合附图并举实施例,对本技术提供的技术方案作进一步说明。应理解,本技术实施例中提供的系统结构和业务场景主要是为了说明本技术的技术方案的可能的实施方式,不应被解读为对本技术的技术方案的唯一限定。本领域普通技术人员可知,随着系统结构的演进和新业务场景的出现,本技术提供的技术方案对类似技术问题同样适用。
39.应理解,本技术实施例提供了配置芯片的表项的方法及装置、验证方法及装置、计算设备及计算机可读存储介质,由于这些技术方案解决问题的原理相同或相似,在如下具体实施例的介绍中,某些重复之处可能不再赘述,但应视为这些具体实施例之间已有相互引用,可以相互结合。
40.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。如有不一致,以本说明书中所说明的含义或者根据本说明书中记载的内容得出的含义为准。另外,本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。为了准确地对本技术中的技术内容进行叙述,以及为了准确地理解本发明,在对具体实施方式进行说明之前先对本说明书中所使用的术语给出如下的解释说明或定义:
41.1)uvm仿真验证平台:指基于通用验证方法(universal verification methodology,uvm)的标准所搭建的验证环境,以对被测设备(device under test,dut)进行验证。基于uvm标准搭建验证环境的特点是,可以开发出可重复使用的验证用的组件(component)。
42.2)验证环境:用于对被测设备(device under test,dut)进行验证的测试环境/测试平台,验证环境包括实现不同功能的多个组件(component),每个组件对应一实现相应功
能的代码模块,多个组件形成组件库以供调用,以提高代码的可重复使用性。其中,dut可以是真实的物理芯片,也可以是芯片电路的仿真。
43.3)宏(macro),或称为宏定义、宏代换、宏替换:一般说来,宏是一种规则或模式,或称语法替换,源代码预处理过程中,在源代码出现宏名称时,会自会把宏名称用该宏定义时指定的文本替换。
44.4)关联数组:一种数据结构,只为实际写入的元素分配空间,这种方法所需的空间较小。
45.5)相关指令及涉及的概念的介绍:
46.使用define定义宏:可以使用带参数的宏定义,定义格式例如下,其中下述的parament-list表示是由逗号隔开的参数:
47.#定义宏名(参数表)内容
48.#define name(parament-list)stuff
49.类定义:类(class)是对具有共同属性和行为的一类事务的抽象描述,共同属性被描述为类中的数据成员,共同行为被描述为类中的成员函数,也即数据成员用于存储类的某些特征,成员函数用于实现某些功能。类的定义时,需定义类的名字、类的成员表,成员表中可包含所述数据成员和成员函数。
50.6)uvm寄存器模型的介绍:uvm寄存器模型的本质是定义了验证环境与dut的寄存器接口,使得验证人员可方便的配置寄存器。寄存器模型是为工程里的寄存器提供的一个参考模型,这个模型的组成包括各个寄存器域(reg_field)、寄存器(reg)、寄存器组(reg_block)、寄存器地址映射(reg_map)等信息,解释如下:
51.uvm_reg_field:寄存器模型的最小的单位(域:field),是具体存储变量数值的变量。
52.uvm_reg:寄存器模型的一个单位,其包括至少一个uvm_reg_field。
53.uvm_reg_block:寄存器模型的比较大的一个单位,其可包括多个uvm_reg,可称为寄存器块。
54.uvm_reg_map:每个寄存器在加入到寄存器模型中都有其地址,uvm_reg_map用于存出这些地址,并将其转换成可以访问的物理地址(加入到寄存器模型中的寄存器地址一般都是偏移地址,不是绝对地址),一个寄存器模型中至少包含一个(通常也只有一个)uvm_reg_map。
55.本技术提供的配置芯片的表项的方案,可应用于芯片的仿真验证过程中。本技术通过宏的方式生成表项的类的实例,基于表项的类的实例在生成要配置的表项实例后,通过宏的方式将要配置的表项的实例自动配置到芯片中的表项中,实现对芯片中这种表项类型的数据结构进行自动、快速的配置。该方案简化了的验证人员的劳动,提高了验证效率。下面结合具体实施例对本技术进行详细介绍。
56.如图1示出了本技术提供的一种配置芯片的表项的方法第一实施例的流程图,包括以下步骤:
57.s10:运行第一宏,根据第一表项的名称生成待配置表项的类的实例,所述待配置表项的类的实例包括各特征字段。
58.在一些实施例中,可以将第一表项的名称作为第一参数运行该第一宏,通过第一
宏的运行,生成第一关联数组,以及根据所述第一表项的名称获取所述第一表项的各特征字段,并写入所述第一关联数组,生成所述待配置表项的类的实例。
59.其中,第一宏定义了生成表项的类的实例的方式,在一些实施例中,所述第一宏可以定义为:包括所述第一参数,所述第一参数为类的类名,所述类的数据成员包括:表项的特征字段、用于存储各特征字段的关联数组;所述类的成员函数包括:根据所述第一参数获取表项中各特征字段,并写入所述关联数组。
60.在一些实施例中,所述类的数据成员还包括:表单文件的存放路径,所述表单文件中包括所述各特征字段;根据所述第一表项的名称获取所述第一表项的各特征字段包括:根据所述第一表项的名称从表单文件的存放路径获取所述第一表项的名称对应的表单文件,根据所述表单文件的内容获取所述第一表项中各特征字段。
61.在一些实施例中,类的数据成员还包括索引,类的成员函数具体包括:将某一条索引对应的表项中的各特征字段写入到所述关联数组中。
62.在一些实施例中,所述关联数组的每个元素定义为使用32bit位。以与32bit位的寄存器相匹配。另一些实施例中,若寄存器为16bit位或64bit位,则关联数组的每个元素定义为相应的16bit位或64bit位。
63.在一些实施例中,第一表项的名称可以与待配置表项的名称相关,以便于识别。
64.在一些实施例中,所生成的待配置表项的类的实例可以包括用于配置vlan表的类、用于配置路由表的类等。
65.s20:基于所述待配置表项的类的实例生成待配置表项的实例,所述待配置表项的实例包括所述各特征字段的值。
66.在一些实施例中,可以以一文件的方式存储表项的各特征字段的各值,将该文件的内容导入所述待配置表项的类的实例中,生成待配置表项的实例。
67.在一些实施例中,可以基于预设格式(如字段大小、字符类型或数字类型),并根据待配置表项的类的实例的各特征字段,依次输入各特征字段的各值,生成表项的实例,该表项的实例即为所述待配置表项的实例。
68.s30:运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
69.在一些实施例中,可以将所述待配置表项的实例的名称作为第二参数运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
70.其中,第二宏定义了将表项实例配置到寄存器的方式,在一些实施例中,所述第二宏定义为:包括所述第二参数,所述第二参数为表项实例名称,所述第二宏的实体中包括寄存器的变量信息,所述第二宏的成员函数包括:根据寄存器的变量信息将表项实例的各特征字段的值写入所述寄存器。
71.在一些实施例中,寄存器的变量可以包括寄存器名、寄存器域名等。
72.本技术还提供了一种芯片验证的方法,包括:首先,使用上述配置芯片的表项的方法配置芯片;然后,基于验证平台对配置后的所述芯片进行验证。在一些实施例中,该验证平台可以是uvm仿真验证平台,或其他eda仿真验证平台。
73.如图2a示出了本技术提供的一种配置芯片的表项的方法第二实施例的流程图,该方法在执行的过程中,通过第一宏定义类,并使用该第一宏生成表项的类的实例,以及通过
第二宏定义根据表项实例配置芯片的过程,在根据表项的类的实例生成表项实例后,使用该第二宏将表项实例的内容配置到芯片的寄存器中。在介绍该实施例时,同时以附上了图2b-图2e示出的相关的部分代码,这里说明的是,代码仅示例性的示出了部分代码,非对应步骤的完整代码。参见如图2a示出的流程图,该实施例提供的配置芯片的表项的方法包括以下步骤s110-s150:
74.s110:通过第一宏的方式定义一个类,其中该第一宏的宏名为dcl_item,该第一宏的参数包括类的类名tbl_name,并对该类进行定义。其中定义的该类的数据成员包括:表项的索引idx、特征字段成员(可通过解析表单_para.sv生成)、用于存储各特征字段的关联数组m_array;定义的该类的成员函数包括:设置表项的索引、将索引对应的各特征字段成员更新到关联数组中。
75.其中,定义的所使用的表单文件tbl_name_para.sv可以称为寄存器表单文件,该文件内记录了特征字段成员,例如当表单文件的一实例为vlan_para.sv时(tbl_name_para.sv中的tbl_name字符被传入的vlan字符所替换形成),其记录的特征字段成员可以包括:vlan的标识、vlan类型、学习使能标识、三层子接口使能标识等。
76.其中,在定义关联数组m_array时,指定了该关联数组的每个元素的使用0-31个比特位。
77.图2b示出了实现本步骤的一个例子的部分代码,该部分代码包括进行第一宏定义的代码、定义的类的数据成员的部分代码,为简便起见,未示出类的成员函数的代码。下面对图2b中示出的各行代码的用途、作用解释如下:
78.line364:定义第一宏,该第一宏的宏名为dcl_item,宏参数为宏名后面括号里的四个参数,说明如下:
79.其中第一参数tbl_name用于传入表项名,用于在执行第一宏时,传入所需表项的名字,也是要定义的类的类名。其中,芯片中会配置不同功能的表项,如vlan表、路由表等,在执行第一宏的时候,通过该tbl_name传入所需表项的名字。
80.第二参数stim_inst_name与第三参数stim_class_name是通过宏传递的其他参数(参见line368),是验证环境中使用的变量或对象的名称,与配置芯片表项的关系无关,故不作解释。
81.第四参数blk_name表示表项所对应的寄存器块(为寄存器模型的单位)的名,用于传入表项所配置的寄存器所对应的寄存器块的名。
82.line365-375:为第一宏的实体的一部分代码,包括了对其中的类的部分定义的代码,其中的line365定义类名的代码,line367-375为定义的这个类的实体部分中的数据成员的代码,简化起见,未示出该类的成员函数的代码。各行代码具体说明如下:
83.line365:定义类,该类的类名包含第一宏的第一参数,这里的类名为tbl_name_item,其中类名中的tbl_name字符将被所传入的表项名替换,例如传入的表项名为vlan时,这里形成的类名为vlan_item。
84.并且本行里通过extends指令来表示所定义的该类从uvm_sequence_item类继承而来,具有该父类uvm_sequence_item的可继承的数据属性和行为方式。
85.line367:定义索引idx,即表项中的索引。
86.line368:为第一宏的参数中的第二参数stim_inst_name与第三参数stim_class_
name,是验证环境中使用的变量或对象的名称,与配置芯片表项的关系无关,故不作解释。
87.line369:声明各特征字段(各特征字段构成特征字段成员)来自路径为stim/下的tbl_name_para.sv表单文件。其中tbl_name_para.sv中的tbl_name字符将被传入的表项名替换,例如传入的表项名为vlan时,这里的表单文件的实例为vlan_para.sv,该例中,vlan_para.sv记录的特征字段成员可以包括:vlan的标识、vlan类型、学习使能标识、三层子接口使能标识等。
88.line371:定义了关联数组m_array,用于存储各个特征字段,其中关联数组m_array中的每个元素为字符串类型(string)、且每个元素占32bit字节。
89.line372:声明寄存器m_reg_q的类型为uvm_reg(uvm_reg为寄存器模型的一个单位)。
90.line374:声明寄存器块的类型为uvm_reg_block(uvm_reg_block为寄存器模型的一个单位)。
91.line375:声明上述寄存器中的执行读写的启动寄存器m_shot_reg的类型为uvm_reg。
92.s120:通过将一表项的参数传入该第一宏,实现对一个具体表项的类的定义,即生成表项类的一实例。
93.图2c示出了实现本步骤的一个例子的部分代码,该部分代码包括对一表项pfs_l3_vlan_tbl_item通过第一宏进行具体类定义的代码,对这些代码的含义解释如下:
94.line1:确认pfs_l3_vlan_tbl_item未定义时,执行后续的定义。
95.line2-3:通过将相应参数传入第一宏dcl_item,实现对pfs_l3_vlan_tbl_item的具体的类定义,即生成表项类的一实例。
96.其中,对应第一宏的四个参数,传入四个参数pfs_l3_vlan_tbl、pfs_l3_stim_inst_name、pfs_l3_stim_class、pfs_l3。使用第一宏,基于传入的参数设置pfs_l3_vlan_tbl的索引,将所设置索引表项中各特征字段更新到定义的关联数组中,其中,该例中的索引表项的各特征字段来自路径为stim/下的pfs_l3_vlan_tbl_para.sv表单文件。
97.本例中该表项的类的实例为pfs_l3_vlan_tbl_item表项,该表项为所生成的关联数组结构,其特征字段成员包括:vlan的标识、vlan类型、学习使能标识、三层子接口使能标识。
98.本步骤中,将要在芯片中配置的每个表项抽象成一个类,这里生成的表项就是这个类的一个实例,当要生成某表项的类的实例时,只需要调用上述的第一宏,传入相应参数即可完成该表项类的实例的生成。
99.s130:根据所生成的表项的类的实例,基于表项类实例的特征字段生成该表项的实例。
100.例如,基于所生成的表项的类的实例pfs_l3_vlan_tbl_item,传入对应表项的具体内容,例如传入各特征字段对应的值(例如,vlan的标识值为pfs_l3_vlan;vlan类型值为l3,表示基于osi网络标准三层的vlan;学习使能标识为1;三层子接口使能标识值为1),来生成该表项的实例,本例中所生成的表项的实例名为pfs_mpl3_l3_vlan_tbl_tmp。
101.其中,该表项类pfs_l3_vlan_tbl_item包括了各特征字段,可以以从指定目录下的文件中获取对应各特征字段的一条或多条的具体值的方式,实现生成该表项的实例。
102.s140:定义第二宏,第二宏的宏名为cfg_item,参数为item_ptr,该第二宏的实体中的参数包括寄存器变量,例如寄存器名reg_name、临时寄存器名reg_name_tmp、寄存器域名field_name等,定义的第二宏的成员函数包括:根据寄存器变量将表项的各特征字段的值写入到dut的寄存器的相应位置。
103.其中图2d示出了实现本步骤的一个例子的部分代码,为简便起见,这里未示出第二宏的成员函数的代码。下面对图2d示出的对这些代码解释如下:
104.line43:定义第二宏的宏名为cfg_item、该第二宏的参数包括item_ptr。
105.line44-47:定义的第二宏的实体的部分参数,定义了寄存器变量,包括寄存器名reg_name、临时寄存器名reg_name_tmp、寄存器域名field_name,类型为字符型。
106.s150:针对步骤s130所生成的表项实例,将表项实例名作为参数将该表项实例传到第二宏,通过第二宏将表项实例中的各特征字段的值配置到dut的寄存器中。例如,可以根据该表项实例中的特征字段的名字,索引到该表项所在寄存器块(blk_name对应的寄存器块)中对应的寄存器实体,然后,再通过调用uvm提供的寄存器模型的方法,根据上述寄存器变量,将特征字段的值写入到dut的寄存器中。
107.其中图2e示出了实现本步骤的一个例子的部分代码,对该代码解释如下:
108.line75:将步骤s130所生成的表项实例pfs_mpl3_l3_vlan_tbl_tmp,传入第二宏cfg_item。传入该第二宏的参数为表项实例的名pfs_mpl3_l3_vlan_tbl_tmp,并基于第二宏的定义的成员函数(图2d中未示出),将该表项实例pfs_mpl3_l3_vlan_tbl_tmp的各特征字段的值写入到dut的相应位置,其中该寄存器位置是根据上述寄存器变量确定的。
109.由上可见,使用上述方式配置芯片的表项时,不需要验证人员进行多次写寄存器指令操作,仅需要验证人员提供对应的表单文件(该文件名为:表项名_para.sv)存放到指定的路径(本例中存放路径是stim/),即可以通过运行第一宏生成表项的类的实例,当根据表项类的实例生成表项实例后,即可以通过运行第二宏将表项实例配置到芯片中。
110.本技术还相应的提供了配置芯片的表项的装置的实施例,关于这些装置的有益效果或解决的技术问题,可以参见与装置对应的方法中的描述,此处不再赘述。本技术提供了一种配置芯片的表项的装置的实施例,如图3a所示,该配置芯片的表项的装置10包括:
111.第一执行单元11,用于运行第一宏,根据第一表项的名称生成待配置表项的类的实例,所述待配置表项的类的实例包括各特征字段;具体可用于实现上述步骤s10及其可选实施例。
112.表项实例生成单元12,用于基于所述待配置表项的类的实例生成待配置表项的实例,所述待配置表项的实例包括所述各特征字段的值;具体可用于实现上述步骤s20及其可选实施例。
113.第二执行单元13,用于运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器;具体可用于实现上述步骤s30及其可选实施例。
114.在一些实施例中,上述第一执行单元11具体用于将所述第一表项的名称作为第一参数运行第一宏,生成第一关联数组,根据所述第一表项的名称获取所述第一表项的各特征字段,并写入所述第一关联数组,生成所述待配置表项的类的实例。
115.在一些实施例中,所述第一宏定义为:包括所述第一参数,所述第一参数为类的类名,所述类的数据成员包括:表项的特征字段、用于存储各特征字段的关联数组;所述类的
成员函数包括:根据所述第一参数获取表项中各特征字段,并写入所述关联数组。
116.在一些实施例中,所述第一宏中的所述类的数据成员还包括:表单文件的存放路径,所述表单文件中包括所述各特征字段;上述第一执行单元11用于所述根据所述第一表项的名称获取所述第一表项的各特征字段时,具体用于根据所述第一表项的名称从表单文件的存放路径获取所述第一表项的名称对应的表单文件,根据所述表单文件的内容获取所述第一表项中各特征字段。
117.在一些实施例中,上述第二执行单元13具体用于将所述待配置表项的实例的名称作为第二参数运行第二宏,将所述待配置表项的实例的各特征字段的值写入芯片的寄存器。
118.在一些实施例中,所述第二宏定义为:包括所述第二参数,所述第二参数为表项实例名称,所述第二宏的实体中包括寄存器的变量信息,所述第二宏的成员函数包括:根据寄存器的变量信息将表项实例的各特征字段的值写入所述寄存器。
119.如图3b所示,本技术还提供了一种验证装置20,包括:上述的配置芯片的表项的装置10,用于配置芯片的表项;验证平台14,用于对所述芯片进行验证。在一些实施例中,验证平台14可以是uvm仿真验证平台或其他eda仿真验证平台。
120.图4是本技术实施例提供的一种计算设备900的结构性示意性图。该计算设备可以作为配置芯片的表项的装置,执行上述配置芯片的表项的方法中的各可选实施例,该计算设备可以是终端,也可以是终端内部的芯片或芯片系统。如图4所示,该计算设备900包括:处理器910、存储器920、通信接口930。
121.应理解,图4所示的计算设备900中的通信接口930可以用于与其他设备之间进行通信,具体可以包括一个或多个收发电路或接口电路。
122.其中,该处理器910可以与存储器920连接。该存储器920可以用于存储该程序代码和数据。因此,该存储器920可以是处理器910内部的存储单元,也可以是与处理器910独立的外部存储单元,还可以是包括处理器910内部的存储单元和与处理器910独立的外部存储单元的部件。
123.可选的,计算设备900还可以包括总线。其中,存储器920、通信接口930可以通过总线与处理器910连接。总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中采用了一条无箭头的线表示,但并不表示仅有一根总线或一种类型的总线。
124.应理解,在本技术实施例中,该处理器910可以采用中央处理单元(central processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器910采用一个或多个集成电路,用于执行相关程序,以实现本技术实施例所提供的技术方案。
125.该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存
储设备类型的信息。
126.在计算设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令执行上述方法的任一操作步骤以及其中任一可选的实施例。
127.应理解,根据本技术实施例的计算设备900可以对应于执行根据本技术各实施例的方法中的相应主体,并且计算设备900中的各个模块的上述和其它操作和/或功能分别为了实现本实施例各方法的相应流程,为了简洁,在此不再赘述。
128.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件、或计算机软件与电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。例如,上述各实施例描述的装置、或各装置所包含的各单元或模块,可以是通过进程或软件模块来实现,其中的软件模块可以是按照功能逻辑拆分得到的单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
129.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
130.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
131.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
132.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
133.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时用于执行上述方法,该方法包括上述各个实施例所描述的方案中的至少之一。
134.本技术实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或
者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
135.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
136.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括、但不限于无线、电线、光缆、rf等等,或者上述的任意合适的组合。
137.可以以一种或多种程序设计语言或其组合来编写用于执行本技术操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
138.另外,说明书和权利要求书中的词语“第一、第二、第三等”或模块a、模块b、模块c等类似用语,仅用于区别类似的对象,不代表针对对象的特定排序,可以理解地,在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
139.在上述的描述中,所涉及的表示步骤的标号,如s110、s120
……
等,并不表示一定会按此步骤执行,在允许的情况下可以互换前后步骤的顺序,或同时执行。
140.说明书和权利要求书中使用的术语“包括”不应解释为限制于其后列出的内容;它不排除其它的元件或步骤。因此,其应当诠释为指定所提到的所述特征、整体、步骤或部件的存在,但并不排除存在或添加一个或更多其它特征、整体、步骤或部件及其组群。因此,表述“包括装置a和b的设备”不应局限为仅由部件a和b组成的设备。
141.本说明书中提到的“一个实施例”或“实施例”意味着与该实施例结合描述的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在本说明书各处出现的用语“在一个实施例中”或“在实施例中”并不一定都指同一实施例,但可以指同一实施例。此外,在一个或多个实施例中,能够以任何适当的方式组合各特定特征、结构或特性,如从本公开对本领域的普通技术人员显而易见的那样。
142.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行
了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,均属于本技术保护范畴。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1