CN115017864A - 验证方法、验证装置、电子设备和计算机可读存储介质 - Google Patents
验证方法、验证装置、电子设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN115017864A CN115017864A CN202210644220.2A CN202210644220A CN115017864A CN 115017864 A CN115017864 A CN 115017864A CN 202210644220 A CN202210644220 A CN 202210644220A CN 115017864 A CN115017864 A CN 115017864A
- Authority
- CN
- China
- Prior art keywords
- verification
- modules
- authentication
- information
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000012795 verification Methods 0.000 claims abstract description 380
- 238000012360 testing method Methods 0.000 claims abstract description 89
- 238000004891 communication Methods 0.000 claims abstract description 19
- 230000015654 memory Effects 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 17
- 239000003999 initiator Substances 0.000 claims description 8
- 230000002452 interceptive effect Effects 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000008878 coupling Effects 0.000 claims 1
- 238000010168 coupling process Methods 0.000 claims 1
- 238000005859 coupling reaction Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 10
- 238000005070 sampling Methods 0.000 description 8
- RZVAJINKPMORJF-UHFFFAOYSA-N Acetaminophen Chemical compound CC(=O)NC1=CC=C(O)C=C1 RZVAJINKPMORJF-UHFFFAOYSA-N 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- -1 tens of VIPs) Chemical compound 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一种验证方法、验证装置、电子设备和计算机可读存储介质。该验证方法适用于包括验证对象以及与验证对象交互的多个验证模块的系统,该验证方法包括:获取验证配置信息,其中,验证配置信息包括验证对象的属性信息、多个验证模块的属性信息和多个验证模块之间的访问信息;基于验证配置信息,将验证对象与多个验证模块通信连接、生成验证环境以及创建测试用例;利用测试用例、多个验证模块和验证环境,对验证对象进行验证。该方法可以减少相关人员的工作量,提高效率,并且提高工作质量,减少出错。
Description
技术领域
本公开的实施例涉及一种验证方法、验证装置、电子设备和计算机可读存储介质。
背景技术
SOC(System On a Chip)芯片为系统级芯片,也称为片上系统,是在单一硅芯片上实现一个系统所具有的信号采集、转换、存储、处理和输入、输出(I/O)等功能的电路。对SOC芯片进行验证是保证芯片功能正常运行的重要工作。
发明内容
本公开至少一个实施例提供一种验证方法,适用于包括验证对象以及与所述验证对象交互的多个验证模块的系统,所述验证方法包括:获取验证配置信息,其中,所述验证配置信息包括所述验证对象的属性信息、所述多个验证模块的属性信息和所述多个验证模块之间的访问信息;基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接、生成验证环境以及创建测试用例;利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证。
例如,在本公开一实施例提供的验证方法中,获取验证配置信息,包括:解析所述验证对象以获得所述验证对象的属性信息,其中,所述验证对象的属性信息包括模块层次信息和端口信息。
例如,在本公开一实施例提供的验证方法中,解析所述验证对象,包括:解析所述验证对象的寄存器传输级文件。
例如,在本公开一实施例提供的验证方法中,获取所述验证配置信息,还包括:解析所述多个验证模块以获得所述多个验证模块的属性信息,其中,所述验证模块的属性信息包括带宽信息和端口连接信息。
例如,在本公开一实施例提供的验证方法中,所述端口连接信息包括所述验证模块在所述验证对象上的连接位置信息。
例如,在本公开一实施例提供的验证方法中,获取所述验证配置信息,还包括:通过解析所述多个验证模块之间的访问关系得到所述访问信息,其中,所述访问信息包括作为访问发起方的每个验证模块对作为访问响应方的每个验证模块的访问权限、所述作为访问响应方的每个验证模块各自可被访问的地址空间和/或所述作为访问发起方的每个验证模块各自允许访问的地址空间。
例如,在本公开一实施例提供的验证方法中,基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接,包括:根据所述多个验证模块的属性信息,实例化所述多个验证模块,并生成所述多个验证模块的配置代码;将所述多个验证模块的实例连接至所述验证对象。
例如,在本公开一实施例提供的验证方法中,将所述多个验证模块实例连接至所述验证对象,包括:通过将所述连接位置信息与所述验证对象的所述端口信息进行匹配,确定验证对象的与所述多个验证模块的通信连接关系;基于所述通信连接关系,生成连接代码,以将所述多个验证模块实例连接至所述验证对象。
例如,在本公开一实施例提供的验证方法中,创建所述测试用例,包括:创建通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
例如,在本公开一实施例提供的验证方法中,创建所述测试用例,还包括:根据所述多个验证模块的属性信息和所述多个验证模块之间的访问信息,生成所述通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
例如,在本公开一实施例提供的验证方法中,生成所述验证环境,包括:根据所述多个验证模块的属性信息,生成验证结果模块、生成所述多个验证模块与所述验证结果模块之间的连接信息以及生成验证覆盖率信息。
例如,在本公开一实施例提供的验证方法中,利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证,包括:激励所述多个验证模块基于所述测试用例与所述验证对象进行交互;利用所述验证结果模块获取所述多个验证模块与所述验证对象的交互数据,并基于所述交互数据得到验证结果。
例如,在本公开一实施例提供的验证方法中,所述验证对象包括互联模块或芯片。
本公开至少一个实施例提供一种验证装置,适用于包括验证对象以及与所述验证对象交互的多个验证模块的系统,所述验证装置包括获取模块、生成模块和验证模块,所述获取模块配置为获取验证配置信息,其中,所述验证配置信息包括所述验证对象的属性信息、所述多个验证模块的属性信息和所述多个验证模块之间的访问信息;所述生成模块配置为基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接、生成验证环境以及创建测试用例;所述验证模块配置为利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证。
本公开至少一个实施例提供一种电子设备,包括处理器;存储器,包括一个或多个计算机程序模块;其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现本公开任一实施例提供的验证方法的指令。
本公开至少一个实施例提供一种计算机可读存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现本公开任一实施例提供的验证方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了本公开至少一实施例提供的验证对象和验证模块的示意图;
图2示出了本公开至少一实施例提供的一种验证方法的流程图;
图3示出了本公开至少一实施例提供的解析和处理过程的流程图;
图4示出了本公开至少一实施例提供的验证结果模块获取采集信息的示意图;
图5示出了本公开至少一个实施例提供的一种验证装置的示意框图;
图6示出了本公开至少一个实施例提供的一种电子设备的示意框图;
图7示出了本公开至少一个实施例提供的另一种电子设备的示意框图;以及
图8示出了本公开至少一个实施例提供的一种计算机可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
在搭建用于例如SOC的这样的系统的验证环境过程中,需要将VIP(VerificationIntellectual Property,验证知识产权,也可称为验证IP或验证模块)连接到DUT(DesignUnder Test,待验证模块)上,并且需要构建测试用例,以及完成所有测试用例的结果比对。例如,在本公开实施例中,所采用的VIP可以是自行编制的或者从其他权利人获得授权的。
目前在搭建SOC验证环境的过程中,构造测试用例需要手动完成。这样不仅工作量巨大,而且非常容易出错。比如SOC验证可能需要很多VIP(例如几十个VIP),仅仅是对VIP进行连接、配置就是一个非常巨大的工作,而且及其容易出错。这些VIP之间的访问关系又非常复杂,基于这些非常复杂的访问关系再来构造它们之间的访问用例又是一项巨大的工作,复杂程度再次增加不止一个数量级,这样工作量巨大且容易出错,导致成本增加。
本公开至少一个实施例提供一种验证方法、验证装置、电子设备和计算机可读存储介质。该验证方法适用于包括验证对象以及与验证对象交互的多个验证模块的系统,验证方法包括:获取验证配置信息,其中,验证配置信息包括验证对象的属性信息、多个验证模块的属性信息和多个验证模块之间的访问信息;基于验证配置信息,将验证对象与多个验证模块通信连接、生成验证环境以及创建测试用例;利用测试用例、多个验证模块和验证环境,对验证对象进行验证。
本公开至少一实施例的验证方法,可以利用机器自动实现对验证对象DUT与验证模块VIP的连接、测试用例的生成以及验证环境的搭建,极大地减少了相关人员的工作量,提高了效率,并且提高了工作质量,减少出错。
图1示出了本公开至少一实施例提供的验证对象和验证模块的示意图。如图1所示,DUT表示验证对象,Master0~Master2和Slave0~Slave2各自表示一个验证模块(以下也称为VIP)。
例如,验证对象DUT可以包括互联模块或者芯片(例如SOC芯片),互联模块例如可以包括环形(Ring)总线、交叉开关(cross-bar switch)网络、片上网络NOC(network-on-chip)等。NOC包括多个路由器等数据转发部件(也称交换节点),NOC可以将SOC芯片中的多个功能模块(例如处理器、存储器等)互联,以实现多个功能模块之间的数据和/或信号的传输。本公开的实施例对于NOC的类型不作限制。
例如,Master0~Master2例如各自表示一个访问发起模块(即主动发起访问操作的一方),可以实现为例如CPU核、GPU核等的数据处理器件。Slave0~Slave2例如各自表示一个访问响应模块(即被动接受或响应的一方),可以实现为例如通信模块、DMA(直接存储访问)模块、DRAM(Dynamic Random Access Memory,动态随机存取存储器)等的存储器件或者可以实现为存储控制器等。
例如,Master0~Master2中的一个或多个可以通过NOC向Slave0~Slave2中的一个或多个发起访问请求,Slave0~Slave2接收访问请求后,可以通过NOC将访问响应(例如所请求的数据)反馈至相应Master。
以下以验证对象DUT包括SOC中的NOC为例进行说明,但是本公开不限于此,DUT还可以是集成电路中的其他模块,例如存储模块或者数据处理模块等。
本公开的多个实施例提供的验证方法适用于上述包括验证对象以及与验证对象交互的多个验证模块的系统,例如SOC芯片系统。
图2示出了本公开至少一实施例提供的一种验证方法的流程图。
如图2所示,该验证方法可以包括步骤S110~S130。
步骤S110:获取验证配置信息,验证配置信息包括验证对象的属性信息、多个验证模块的属性信息和多个验证模块之间的访问信息。
步骤S120:基于验证配置信息,将验证对象与多个验证模块通信连接、生成验证环境以及创建测试用例。
步骤S130:利用测试用例、多个验证模块和验证环境,对验证对象进行验证。
例如,针对上述SOC的系统,在验证过程中,该系统中验证对象、验证模块等使用硬件描述语言(HDL)实现,这些硬件描述语言例如包括Verilog、System Verilog、System C、C++等,并且验证对象、验证模块等可以处于相同或不同的抽象层级,例如可以为系统级描述、寄存器传输级(RTL,Register Transfer Level)描述或逻辑门级描述等,本公开的实施例对此不作限制。
步骤S110中的获取验证配置信息可以包括:解析验证对象以获得验证对象的属性信息,验证对象的属性信息包括模块层次信息和端口信息。
例如,解析验证对象可以包括:解析验证对象的寄存器传输级(RTL,RegisterTransfer Level)文件,例如可以读取该RTL文件并对其进行解析,以获得其中的属性信息。例如,用户可以填写如下表1,表1的filelist(文件列表)一栏中可以填写RTL文件的存储位置,本实施例中的存储位置以/soc_dv/common/rtl_for_test/simulation FileNames.txt为例,但是本公开并不限于此,RTL文件的存储位置可以根据实际需求而定。表1的top_name一栏可以填写DUT(例如片上网络NOC)的名称,本实施例中的名称以P2P_BRIDGE_X8为例。
表1
filelist | /soc_dv/common/rtl_for_test/simulation FileNames.txt |
top_name | P2P_BRIDGE_X8 |
例如,可以根据表1中的地址获取RTL文件,通过解析RTL文件可以得到DUT的属性信息,例如可以得到表2中的信息。表2中的MODULE NAME表示RTL文件中的模块名,在本实施例中以P2P_BRIDGE_X8表示;Hierarchy表示模块层次信息;PORT NAME表示端口名称;DIRECTION表示信号传输方向。
表2
例如,DUT的端口例如可以采用符合AXI(Advanced eXtensible Interface)协议的总线端口,简称AXI总线端口。例如,M_1_X8_awaddr、M_1_X8_awvalid和M_1_X8_awready均为写地址通道的端口,M_1_X8_awaddr为输入(INPUT)端口,用于接收awaddr(写地址)信号;M_1_X8_awvalid为输入(INTPUT)端口,用于接收awvalid信号;M_1_X8_awready为输出(OUTPUT)端口,用于输出awready信号。此外,还可以包括写数据通道、读地址通道、读数据通道等通道的端口信息。
例如,在一些实施例中,还可以通过解析RTL文件得到表2以外的其他信息,例如数据宽度、读/写能力等信息。
例如,步骤S110中的获取验证配置信息还可以包括:解析多个验证模块以获得多个验证模块的属性信息,验证模块的属性信息包括带宽信息和端口连接信息。例如,端口连接信息包括验证模块在验证对象上的连接位置信息。不同的验证模块挂载在验证对象的不同位置(例如端口)上,以实现与验证对象的通信。
例如,下表3包括在上述验证的系统中用户填写或配置的关于多个验证模块Master0~Master2、Slave0~Slave2的信息,表3中name表示每个验证模块的名称;hier表示每个验证模块需要挂载在DUT(例如片上网络NOC)上的位置;mount_dir表示验证模块的挂载方向。在本实施例中,各个验证模块需要挂载至P2P_BRIDGE_X8模块,挂载方向为NOC。prefix和postfix分别表示各验证模块的端口相对于验证模块的名称的前缀和后缀,在本公开的至少一个实施例中,后缀postfix为空;max_size表示AXI的max burst_size;max_length表示AXI的max burst length;axi_interface_type表示端口的类型;data_width表示数据位宽;id_width表示ID(identity document,身份标识)位宽。例如,可以通过解析表3获取各个验证模块的属性信息。表3中的信息仅为示例,不用于限制本公开,具体信息可以根据实际需求而定。
表3
例如,步骤S110中的获取验证配置信息还可以包括:通过解析多个验证模块之间的访问关系得到访问信息,例如,访问信息可以包括作为访问发起方的每个验证模块对作为访问响应方的每个验证模块的访问权限、作为访问响应方的每个验证模块各自可被访问的地址空间和/或作为访问发起方的每个验证模块各自允许访问的地址空间。
例如,访问权限包括允许访问、部分允许访问、禁止访问等。例如,部分允许访问包括只读、读写等,或者仅允许访问部分地址空间等。
例如,表4包括在上述验证的系统中用户填写或配置的关于Master0~Master2与Slave0~Slave2的访问关系。
表4
例如,通过解析表4可以得到Slave0~Slave2各自可被访问的地址(Addr),例如,Slave0可被访问的地址空间为0×40_0000:0×40_0FFF;Slave1可被访问的地址空间为0×800_0000_0000:0×8FF_FFFF_FFFF和0×8800_0000_0000:0×88FF_FFFF_FFFF;Slave2可被访问的地址空间为0×300_0000_0000:0×3FF_FFFF_FFFF。通过表4还可以得到Master0~Master2对Slave0~Slave2的访问权限,以及Master0~Master2各自可访问的地址空间,N表示没有访问权限,Y表示具有访问权限。例如,如表4所示,Master0和Master1均不具有对Slave0的访问权限,Master2具有对Slave0访问权限并且可访问的地址空间包括0×40_0000:0×40_0FFF;再例如,Master0和Master2均具有对Slave1访问权限并且可访问的地址空间包括0×800_0000_0000:0×8FF_FFFF_FFFF和0×8800_0000_0000:0×88FF_FFFF_FFFF,Master1不具有对Slave1访问权限。
图3示出了本公开至少一实施例提供的解析和处理过程的流程图。如图3所示,通过解析访问关系和解析VIP属性,可以获取Slave(例如Slave0~2)的属性信息和可访问空间、获取Master(例如Master0~2)的属性信息以及获取Master对Slave的访问权限。通过解析DUT,可以获取模块层次信息和端口信息。
例如,如图3所示,步骤S120中的创建测试用例可以包括:创建通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。例如,在一些实施例中,可以根据多个验证模块的属性信息和多个验证模块之间的访问信息,生成通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
例如,可以根据多个验证模块的属性信息和多个验证模块之间的访问信息,创建通路测试用例。通路测试用例用于验证NOC中连通各验证模块之间的路径是否按照设定连通或断开。例如,Master0具有对Slave1的访问权限,因此,NOC中连接Master0和Slave1的路径应该是连通的;再例如,Master0不具有对Slave0的访问权限,因此,NOC中连接Master0和Slave0的路径应该是断开的。
例如,生成通路测试用例可以包括生成激励Master访问Slave的操作的代码。例如,在一些实施例中,可以生成激励Master0从Slave1的某段地址空间中读取数据的操作代码。在利用该用例进行验证时,Master0向NOC的端口发送对Slave1的读取请求和请求读取的地址空间,NOC将读取请求和地址空间转发至与Slave1连接的端口,进而发送至Slave1。Slave1接收请求后,将相应地址空间中的数据再通过NOC返回给Master0。可以通过获取Master0与NOC之间传输的信息以及Slave1与NOC之间传输的信息来验证Master0与Slave1之间的路径是否畅通。再例如,在另一些实施例中,可以生成激励Master0从Slave0的某段地址空间中读取数据的操作代码。在利用该测试用例进行验证时,Master0向NOC的端口发送对Slave0的读取请求和请求读取的地址空间,可以通过验证NOC是否给出错误提示或者验证NOC是否向Slave0发送该读取请求等来确定Master0与Slave0之间的路径是否断开。
例如,如图3所示,可以根据多个验证模块的属性信息和多个验证模块之间的访问信息,创建网络拥塞测试用例。网络拥塞测试用例可以用于验证在一定负荷状态下NOC的延迟、丢包等情况。例如,网络拥塞测试用例可以包括在同一时间段内,多个Master同时访问一个或多个Slave,例如,激励Master0~Master2并行访问Slave0~Slave2,并获取NOC的交换节点的延迟、丢包、重传等情况,根据交换节点的延迟、丢包、重传等情况得到网络拥塞验证结果。
例如,在一些示例中,还可以根据多个验证模块的属性信息和多个验证模块之间的访问信息,创建协议遍历测试用例。协议遍历测试用例用于验证相互连接的端口是否能够按照协议收发信息。例如,协议遍历测试用例可以遍历测试Master与Slave的传输接口是否能够满足所有支持的数据规格,数据规格例如包括length/size(表征数据大小)等。
例如,在生成通路测试用例、网络拥塞测试用例等测试用例时,可以参考并使用到Master和Slave的数据位宽。在一些示例中,还可以用到Master和Slave的ID位宽,例如,可以将ID的值在(0~2^(ID_WIDTH)-1)之内遍历或者随机,以此来遍历生成关于各个验证模块的测试用例。
例如,测试用例除了包括操作代码以外,还可以包括其他信息,例如用例编号、预期结果、测试条件等信息,测试用例包含的信息可以根据实际需求而定,不以本公开实施例为限。
例如,步骤S120中的基于验证配置信息,将验证对象与多个验证模块通信连接可以包括:根据多个验证模块的属性信息,实例化该多个验证模块,并生成多个验证模块的配置代码;将多个验证模块的实例连接至验证对象。如图3所示的“实例化VIP”、“生成VIP配置代码”和“生成VIP与DUT的连接代码”。
例如,可以将各个验证模块实例化为具体的功能元件,根据各个验证模块的属性对验证模块进行配置,并且例如某些验证模块可以实例化为多个具体的功能元件。例如,可以将Master实例化为一个或多个处理器核,例如CPU(central processing unit)核,可以将Slave实例化为DRAM等存储器件或者用于控制存储器件的控制器。实例的数量和类型可以根据需求而定,本公开不以此为限。得到所需数量的验证模块的实例之后,然后可以将实例连接至DUT。
例如,将多个验证模块实例连接至验证对象包括:通过将连接位置信息与验证对象的端口信息进行匹配,确定验证对象的与多个验证模块的通信连接关系;基于通信连接关系,生成连接代码,以将多个验证模块实例连接至验证对象。
例如,可以先将验证对象DUT的模块层次信息(Hierarchy信息)与验证模块VIP的hier信息进行匹配,例如,DUT的Hierarchy信息与Master0~2和Slave0~2的hier信息均针对P2P_BRIDGE_X8,可以确定Master0~2和Slave0~2均与DUT的模块层次信息匹配成功。然后,可以进一步进行端口匹配,例如将验证对象DUT的PORT NAME与验证模块VIP的prefix+vipname+postfix进行匹配。根据表2,验证对象DUT的部分端口的PORT NAME为M_1_X8_awaddr、M_1_X8_awvalid等,前缀为M_1_X8_。对于表3所示的Master1,端口为M_1_X8_+vipname(Master1),前缀同样为M_1_X8_,因此,可以认为DUT的该部分端口与Master1的端口匹配成功,因此可以生成将Master1的端口连接至DUT的该部分端口的连接代码,连接代码例如如下所示:
TOP.P2P_BRIDGE_X8.M_1_X8_awaddr=VIP.awaddr
TOP.P2P_BRIDGE_X8.M_1_X8_awvalid=VIP.awvalid
VIP.awready=TOP.P2P_BRIDGE_X8.M_1_X8_awready
例如,挂载方向有NOC/IP两个方向,上述为挂载方向为NOC的示例,若方向不同,则等式两边是相反的。
例如,步骤S120中的生成验证环境,可以包括:根据多个验证模块的属性信息,生成验证结果模块、生成多个验证模块与验证结果模块之间的连接信息以及生成验证覆盖率信息。例如参考如图3所示的“生成Checker”、“生成Checker与VIP的连接”和“生成覆盖率信息”。
例如,验证结果模块(本实施例中用Checker表示)为用于根据测试用例进行测试的过程中获取的信息生成验证结果的模块,以验证DUT是否按照预期工作。例如,验证结果模块Checker将预期结果与DUT的实际输出进行比较,如果结果匹配,则测试用例成功完成;如果结果错误,Checker可以向日志文件中记录一些定位故障需要的相关信息。针对每个验证模块可以设置一个采样模块(本实施例中用Monitor表示),采样模块例如可以采集验证模块与验证对象之间传输的信息,该信息例如可以各种数据信息(例如数据包)、控制信息(头信息)等。上述的生成多个验证模块VIP与验证结果模块Checker之间的连接信息可以包括:生成多个验证模块的采样模块Monitor与验证结果模块Checker之间的连接信息,以将采样模块Monitor采集的输入输出信息发送至验证结果模块Checker。例如,可以根据验证模块VIP的属性信息(例如包括端口连接信息),生成将验证模块VIP的采样模块Monitor连接至验证结果模块Checker的代码。
图4示出了本公开至少一实施例提供的验证结果模块获取采集信息的示意图。如图4所示,例如,测试用例中可能存在多个请求,所以验证结果模块Checker需要将输入请求与输出响应相关联起来,以按照序列进行比对。生成验证结果模块Checker可以包括生成作为访问响应方的各个Slave的地址范围的代码,以根据地址范围确定Slave队列(如图中的Sq[$])和Master队列(如图中的Mq[$])的数据对应关系。例如,验证结果模块Checker收到Slave(图中以Slave0和Slave1为例)的采样模块Monitor发来的数据后,可以保存在Slave队列中,验证结果模块Checker收到Master(图中以Master0和Master1为例)的采样模块Monitor发来的数据后,可以保存在Master队列中。并且可以根据地址范围确定Slave队列中数据与Master队列中数据的对应关系,以参考Slave队列和Master队列中对应的数据确定测试用例的实际运行结果,将实际运行结果与预期结果进行比较,得到验证结果。
例如,覆盖率可以包括功能覆盖率,功能覆盖率为DUT的已验证过的功能占DUT的全部功能的百分比。例如可以生成关于访问地址的覆盖率的相关代码和关于数据位宽的覆盖率的相关代码。
例如,步骤S130可以包括:激励多个验证模块基于测试用例与验证对象进行交互;利用验证结果模块获取多个验证模块与验证对象的交互数据,并基于交互数据得到验证结果。
例如,在将多个VIP与DUT连接、生成测试用例以及设置验证结果模块Checker之后,可以激励多个VIP按照测试用例与DUT进行交互,利用采样模块Monitor采集交互数据并将交互数据发送至验证结果模块Checker,验证结果模块Checker将交互数据与预期结果进行对比,得到验证结果。并且,可以根据完成验证的功能占全部功能的比例得到验证的覆盖率。
本公开的至少一实施例的验证方法中,获取验证配置信息,并基于验证配置信息将验证对象与多个验证模块通信连接、生成验证环境以及创建测试用例。基于该验证方法,可以使机器自动实现对验证对象DUT与验证模块VIP的连接、测试用例的生成以及验证环境的搭建,极大地减少了相关人员的工作量,提高了效率,并且提高了工作质量,减少出错。
根据本公开的至少一个实施例,通过解析验证对象DUT的逻辑描述(例如寄存器传输级文件(RTL文件))来获取验证对象DUT的属性信息,可以减少手动输入的信息,进而可以进一步减少工作量、提高效率和质量。
根据本公开的至少一个实施例,通过解析验证模块VIP的逻辑描述(例如寄存器传输级文件(RTL文件))来获取验证模块VIP的属性信息,例如,通过获取验证模块VIP的端口连接信息等属性信息,可以便于将验证模块VIP与验证对象DUT端口信息进行匹配,进而快速准确地实现对验证对象DUT与验证模块VIP的连接。
根据本公开的至少一个实施例,通过获取验证模块之间的访问关系,可以便于高效率地自动生成测试用例。访问关系例如可以由用户设定,提高了方案的灵活性。
根据本公开的至少一个实施例,生成通路测试用例、网络拥塞测试用例和/或协议遍历测试用例,可以实现对验证对象DUT的全面测试,进而可以提高验证对象DUT的功能可靠性。
本公开实施例的另一方面还提供了一种验证装置,该验证装置适用于包括验证对象以及与验证对象交互的多个验证模块的系统。
图5示出了本公开至少一个实施例提供的一种验证装置200的示意框图。
例如,如图5所示,验证装置200包括获取模块210、生成模块220和验证模块230。
获取模块210配置为获取验证配置信息,其中,验证配置信息包括验证对象的属性信息、多个验证模块的属性信息和多个验证模块之间的访问信息。获取模块210例如可以执行图2描述的步骤S110。
生成模块220配置为基于验证配置信息,将验证对象与多个验证模块通信连接、生成验证环境以及创建测试用例。生成模块220例如可以执行图2描述的步骤S120。
验证模块230配置为利用测试用例、多个验证模块和验证环境,对验证对象进行验证。验证模块230例如可以执行图2描述的步骤S130。
例如,获取模块210、生成模块220和验证模块230可以为硬件、软件、固件以及它们的任意可行的组合。例如,获取模块210、生成模块220和验证模块230可以为专用或通用的电路、芯片或装置等,也可以为处理器和存储器的结合。关于上述各个单元的具体实现形式,本公开的实施例对此不作限制。
需要说明的是,本公开的实施例中,验证装置200的各个模块与前述的验证方法的各个步骤对应,关于验证装置200的具体功能可以参考关于验证方法的相关描述,此处不再赘述。图5所示的验证装置200的组件和结构只是示例性的,而非限制性的,根据需要,该验证装置200还可以包括其他组件和结构。
例如,在本公开一实施例提供的验证装置中,获取模块210可以进一步配置为:解析验证对象以获得验证对象的属性信息,其中,验证对象的属性信息包括模块层次信息和端口信息。
例如,在本公开一实施例提供的验证装置中,获取模块210可以进一步配置为:解析验证对象的寄存器传输级文件。
例如,在本公开一实施例提供的验证装置中,获取模块210可以进一步配置为:解析多个验证模块以获得多个验证模块的属性信息,其中,验证模块的属性信息包括带宽信息和端口连接信息。
例如,在本公开一实施例提供的验证装置中,端口连接信息包括验证模块在验证对象上的连接位置信息。
例如,在本公开一实施例提供的验证装置中,获取模块210可以进一步配置为:通过解析多个验证模块之间的访问关系得到访问信息,其中,访问信息包括作为访问发起方的每个验证模块对作为访问响应方的每个验证模块的访问权限、作为访问响应方的每个验证模块各自可被访问的地址空间和/或作为访问发起方的每个验证模块各自允许访问的地址空间。
例如,在本公开一实施例提供的验证装置中,生成模块220进一步配置为:根据多个验证模块的属性信息,实例化多个验证模块,并生成多个验证模块的配置代码;将多个验证模块的实例连接至验证对象。
例如,在本公开一实施例提供的验证装置中,生成模块220进一步配置为:通过将连接位置信息与验证对象的端口信息进行匹配,确定验证对象的与多个验证模块的通信连接关系;基于通信连接关系,生成连接代码,以将多个验证模块实例连接至验证对象。
例如,在本公开一实施例提供的验证装置中,生成模块220进一步配置为:创建通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
例如,在本公开一实施例提供的验证装置中,生成模块220进一步配置为:根据多个验证模块的属性信息和多个验证模块之间的访问信息,生成通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
例如,在本公开一实施例提供的验证装置中,生成模块220进一步配置为:根据多个验证模块的属性信息,生成验证结果模块、生成多个验证模块与验证结果模块之间的连接信息以及生成验证覆盖率信息。
例如,在本公开一实施例提供的验证装置中,验证模块230进一步配置为:激励多个验证模块基于测试用例与验证对象进行交互;利用验证结果模块获取多个验证模块与验证对象的交互数据,并基于交互数据得到验证结果。
例如,在本公开一实施例提供的验证装置中,验证对象包括互联模块或芯片。
本公开的至少一个实施例还提供了一种电子设备,该电子设备包括处理器和存储器,存储器包括一个或多个计算机程序模块。一个或多个计算机程序模块被存储在存储器中并被配置为由处理器执行,一个或多个计算机程序模块包括用于实现上述的验证方法的指令。该电子设备可以减少相关人员的工作量,提高效率,并且提高工作质量,减少出错。
图6为本公开一些实施例提供的一种电子设备的示意框图。如图6所示,该电子设备300包括处理器310和存储器320。存储器320存储有非暂时性计算机可读指令(例如一个或多个计算机程序模块)。处理器310用于运行非暂时性计算机可读指令,非暂时性计算机可读指令被处理器310运行时执行上文所述的验证方法中的一个或多个步骤。存储器320和处理器310可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器310可以是中央处理单元(CPU)、图形处理单元(GPU)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元。例如,中央处理单元(CPU)可以为X36或ARM架构等。处理器310可以为通用处理器或专用处理器,可以控制电子设备300中的其它组件以执行期望的功能。
例如,存储器320可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块,处理器310可以运行一个或多个计算机程序模块,以实现电子设备300的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。
需要说明的是,本公开的实施例中,电子设备300的具体功能和技术效果可以参考上文中关于验证方法的描述,此处不再赘述。
图7为本公开一些实施例提供的另一种电子设备的示意框图。该电子设备400例如适于用来实施本公开实施例提供的验证方法。电子设备400可以是终端设备等。需要注意的是,图7示出的电子设备400仅仅是一个示例,其不会对本公开实施例的功能和使用范围带来任何限制。
如图7所示,电子设备400可以包括处理装置(例如中央处理器、图形处理器等)410,其可以根据存储在只读存储器(ROM)420中的程序或者从存储装置480加载到随机访问存储器(RAM)430中的程序而执行各种适当的动作和处理。在RAM 430中,还存储有电子设备400操作所需的各种程序和数据。处理装置410、ROM 420以及RAM430通过总线440彼此相连。输入/输出(I/O)接口450也连接至总线440。
通常,以下装置可以连接至I/O接口450:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置460;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置470;包括例如磁带、硬盘等的存储装置480;以及通信装置490。通信装置490可以允许电子设备400与其他电子设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的电子设备400,但应理解的是,并不要求实施或具备所有示出的装置,电子设备400可以替代地实施或具备更多或更少的装置。
例如,根据本公开的实施例,上述验证方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包括执行上述验证方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置490从网络上被下载和安装,或者从存储装置480安装,或者从ROM 420安装。在该计算机程序被处理装置410执行时,可以实现本公开实施例提供的验证方法中限定的功能。
本公开的至少一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有非暂时性计算机可读指令,当非暂时性计算机可读指令由计算机执行时实现上述的验证方法。利用该计算机可读存储介质,可以减少相关人员的工作量,提高效率,并且提高工作质量,减少出错。
图8为本公开一些实施例提供的一种存储介质的示意图。如图8所示,存储介质500存储有非暂时性计算机可读指令510。例如,当非暂时性计算机可读指令510由计算机执行时执行根据上文所述的验证方法中的一个或多个步骤。
例如,该存储介质500可以应用于上述电子设备300中。例如,存储介质500可以为图6所示的电子设备300中的存储器320。例如,关于存储介质500的相关说明可以参考图6所示的电子设备300中的存储器320的相应描述,此处不再赘述。
有以下几点需要说明:
(1)本公开实施例附图只涉及到本公开实施例涉及到的结构,其他结构可参考通常设计。
(2)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种验证方法,适用于包括验证对象以及与所述验证对象交互的多个验证模块的系统,所述验证方法包括:
获取验证配置信息,其中,所述验证配置信息包括所述验证对象的属性信息、所述多个验证模块的属性信息和所述多个验证模块之间的访问信息;
基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接、生成验证环境以及创建测试用例;
利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证。
2.根据权利要求1所述的验证方法,其中,获取验证配置信息,包括:
解析所述验证对象以获得所述验证对象的属性信息,其中,所述验证对象的属性信息包括模块层次信息和端口信息。
3.根据权利要求2所述的验证方法,其中,解析所述验证对象,包括:
解析所述验证对象的寄存器传输级文件。
4.根据权利要求2所述的验证方法,其中,获取所述验证配置信息,还包括:
解析所述多个验证模块以获得所述多个验证模块的属性信息,其中,所述验证模块的属性信息包括带宽信息和端口连接信息。
5.根据权利要求4所述的验证方法,其中,所述端口连接信息包括所述验证模块在所述验证对象上的连接位置信息。
6.根据权利要求4所述的验证方法,其中,获取所述验证配置信息,还包括:
通过解析所述多个验证模块之间的访问关系得到所述访问信息,其中,所述访问信息包括作为访问发起方的每个验证模块对作为访问响应方的每个验证模块的访问权限、所述作为访问响应方的每个验证模块各自可被访问的地址空间和/或所述作为访问发起方的每个验证模块各自允许访问的地址空间。
7.根据权利要求5所述的验证方法,其中,基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接,包括:
根据所述多个验证模块的属性信息,实例化所述多个验证模块,并生成所述多个验证模块的配置代码;
将所述多个验证模块的实例连接至所述验证对象。
8.根据权利要求7所述的验证方法,其中,将所述多个验证模块实例连接至所述验证对象,包括:
通过将所述连接位置信息与所述验证对象的所述端口信息进行匹配,确定验证对象的与所述多个验证模块的通信连接关系;
基于所述通信连接关系,生成连接代码,以将所述多个验证模块实例连接至所述验证对象。
9.根据权利要求1至8任一项所述的验证方法,其中,创建所述测试用例,包括:
创建通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
10.根据权利要求9所述的验证方法,其中,创建所述测试用例,还包括:
根据所述多个验证模块的属性信息和所述多个验证模块之间的访问信息,生成所述通路测试用例、网络拥塞测试用例和协议遍历测试用例中的至少一者。
11.根据权利要求1至8任一项所述的验证方法,其中,生成所述验证环境,包括:
根据所述多个验证模块的属性信息,生成验证结果模块、生成所述多个验证模块与所述验证结果模块之间的连接信息以及生成验证覆盖率信息。
12.根据权利要求11所述的验证方法,其中,利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证,包括:
激励所述多个验证模块基于所述测试用例与所述验证对象进行交互;
利用所述验证结果模块获取所述多个验证模块与所述验证对象的交互数据,并基于所述交互数据得到验证结果。
13.根据权利要求1至8任一项所述的验证方法,其中,所述验证对象包括互联模块或芯片。
14.一种验证装置,适用于包括验证对象以及与所述验证对象交互的多个验证模块的系统,所述验证装置包括:
获取模块,配置为获取验证配置信息,其中,所述验证配置信息包括所述验证对象的属性信息、所述多个验证模块的属性信息和所述多个验证模块之间的访问信息;
生成模块,配置为基于所述验证配置信息,将所述验证对象与所述多个验证模块通信连接、生成验证环境以及创建测试用例;
验证模块,配置为利用所述测试用例、所述多个验证模块和所述验证环境,对所述验证对象进行验证。
15.一种电子设备,包括:
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,所述一个或多个计算机程序模块包括用于实现权利要求1-13任一项所述的验证方法的指令。
16.一种计算机可读存储介质,存储有非暂时性计算机可读指令,当所述非暂时性计算机可读指令由计算机执行时实现权利要求1-13任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210644220.2A CN115017864A (zh) | 2022-06-08 | 2022-06-08 | 验证方法、验证装置、电子设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210644220.2A CN115017864A (zh) | 2022-06-08 | 2022-06-08 | 验证方法、验证装置、电子设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115017864A true CN115017864A (zh) | 2022-09-06 |
Family
ID=83072081
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210644220.2A Pending CN115017864A (zh) | 2022-06-08 | 2022-06-08 | 验证方法、验证装置、电子设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017864A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117172208A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 验证环境的隔离方法、装置、电子设备及存储介质 |
-
2022
- 2022-06-08 CN CN202210644220.2A patent/CN115017864A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117172208A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 验证环境的隔离方法、装置、电子设备及存储介质 |
CN117172208B (zh) * | 2023-11-02 | 2024-01-23 | 摩尔线程智能科技(北京)有限责任公司 | 验证环境的隔离方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8683108B2 (en) | Connected input/output hub management | |
US20230394208A1 (en) | Device verification method, uvm verification platform, electronic apparatus and storage medium | |
CN112527705B (zh) | 一种PCIe DMA数据通路的验证方法、装置及设备 | |
CN115017864A (zh) | 验证方法、验证装置、电子设备和计算机可读存储介质 | |
CN110392066A (zh) | 一种访问服务的方法和装置 | |
Melikyan et al. | Uvm verification ip for axi | |
US20150161057A1 (en) | System and method for providing client-side address translation in a memory management system | |
CN114330176A (zh) | 芯片验证方法、装置、电子设备及存储介质 | |
CN112015689A (zh) | 串口输出路径切换方法、系统及装置和交换机 | |
US7761468B2 (en) | Supporting multiple security mechanisms in a database driver | |
CN106875765B (zh) | 一种基于vdi的电子教室实现方法及装置 | |
CN115114042A (zh) | 存储数据访问方法、装置、电子设备和存储介质 | |
CN117076330A (zh) | 一种访存验证方法、系统、电子设备及可读存储介质 | |
CN106789449A (zh) | 一种can总线开发与测试方法及系统 | |
CN110932879B (zh) | 网络性能测试方法、数据处理设备和存储介质 | |
CN112462245A (zh) | 边界扫描互联线路的生成方法与装置 | |
CN115454896A (zh) | 基于smbus的ssd mctp控制消息验证方法、装置、计算机设备及存储介质 | |
CN115391202A (zh) | 一种多控集群roce性能测试方法、装置、终端及存储介质 | |
CN114398214A (zh) | 性能验证方法、装置、存储介质及计算机设备 | |
US8966051B2 (en) | Technique for monitoring component processing | |
JP4222248B2 (ja) | 試験方法 | |
CN117172207B (zh) | 系统总线互联验证方法、装置、电子设备、存储介质 | |
CN117172205B (zh) | 性能分析方法、装置、电子设备及存储介质 | |
CN106506268B (zh) | 一种服务器的访问方法和系统 | |
CN112261051B (zh) | 一种用户注册方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Applicant after: Shanghai Bi Ren Technology Co.,Ltd. Address before: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |