CN116956801A - 芯片验证方法、装置、计算机设备和存储介质 - Google Patents
芯片验证方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN116956801A CN116956801A CN202311199118.7A CN202311199118A CN116956801A CN 116956801 A CN116956801 A CN 116956801A CN 202311199118 A CN202311199118 A CN 202311199118A CN 116956801 A CN116956801 A CN 116956801A
- Authority
- CN
- China
- Prior art keywords
- verification
- target
- design
- data interface
- verification tool
- 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.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 248
- 238000000034 method Methods 0.000 title claims abstract description 78
- 230000005284 excitation Effects 0.000 claims abstract description 99
- 238000013461 design Methods 0.000 claims abstract description 93
- 238000012360 testing method Methods 0.000 claims abstract description 66
- 238000004088 simulation Methods 0.000 claims abstract description 50
- 230000008569 process Effects 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 77
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012545 processing Methods 0.000 claims description 12
- 238000005070 sampling Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000010200 validation analysis Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/36—Circuit design at the analogue level
- G06F30/367—Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
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)
- Microelectronics & Electronic Packaging (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本申请涉及一种芯片验证方法、装置、计算机设备和存储介质。所述方法包括:在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,并基于目标验证工具和激励序列对待测设计进行仿真验证。采用本方法能够提高芯片验证过程的灵活性。
Description
技术领域
本申请涉及芯片验证技术领域,特别是涉及一种芯片验证方法、装置、计算机设备和存储介质。
背景技术
芯片验证是芯片流片之前关键的一环,通过芯片验证可以最大限度地发现芯片中的潜在问题,对于芯片的生产制造至关重要。目前,针对芯片的模块级和子系统级的芯片验证方法是搭建UVM(Universal Verification Methodology,通用验证方法学)验证工具对芯片中的待测设计(Design Under Test,DUT)进行仿真验证。
然而,相关技术中的芯片验证方法的灵活性差。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高芯片验证过程灵活性的芯片验证方法、装置、计算机设备和可读存储介质。
第一方面,本申请提供了一种芯片验证方法。所述方法包括:
在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;
获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;
在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;
至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,并基于目标验证工具和激励序列对待测设计进行仿真验证。
在其中一个实施例中,在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件,包括:
根据目标事务类型的数量,从功能组件库包括的至少一个功能组件子库中确定目标功能组件子库,其中,各功能组件子库是将功能组件库中各功能组件按照能够处理的事务类型的数量进行划分得到的;
从目标功能组件子库中确定与目标事务类型对应的多个功能组件。
在其中一个实施例中,获取待测设计对应的初始验证工具的过程包括:
对待测设计的顶层文件进行传输信号类型分析,确定待测设计的数据接口和数据接口对应的接口类型,顶层文件用于描述待测设计的硬件配置信息;
根据接口类型,获取数据接口对应的多个基础组件;
对多个基础组件进行编译处理,得到初始验证工具。
在其中一个实施例中,数据接口的数量为多个;根据接口类型,获取数据接口对应的多个基础组件,包括:
针对每个数据接口,根据数据接口对应的接口类型,获取数据接口对应的多个基础组件;
对多个基础组件进行编译处理,得到初始验证工具,包括:
对各数据接口对应的多个基础组件分别进行编译处理,得到初始验证工具。
在其中一个实施例中,激励序列的数量为多个,目标验证工具包括与各激励序列分别对应的验证工具,基于目标验证工具和激励序列对待测设计进行仿真验证,包括:
针对每个激励序列,基于激励序列对应的验证工具和激励序列对待测设计进行仿真验证。
在其中一个实施例中,部分基础组件包括基础驱动器、基础监控器、基础参考模型和基础记分板中的至少一种。
在其中一个实施例中,基于目标验证工具和激励序列对待测设计进行仿真验证,包括:
通过基础激励发生器基于激励序列产生验证激励信号;
通过功能驱动器将验证激励信号驱动至目标数据接口;
通过功能监控器对目标数据接口进行信号采样,得到验证激励信号和验证激励信号对应的验证结果信号,并将验证激励信号传输至功能参考模型,以及将验证结果信号传输至功能记分板;
通过功能参考模型对验证激励信号进行模拟处理,得到模拟结果信号,将模拟结果信号传输至功能记分板;
通过功能记分板对模拟结果信号和验证结果信号进行比较处理,得到待测设计对应的验证结果。
第二方面,本申请还提供了一种芯片验证装置。所述装置包括:
初始验证工具获取模块,用于在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;
事务类型确定模块,用于获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;
功能组件确定模块,用于在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;
功能组件替换模块,至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具;
仿真验证执行模块,用于并基于目标验证工具和激励序列对待测设计进行仿真验证。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述方法的步骤。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述方法的步骤。
上述芯片验证方法、装置、计算机设备和存储介质,通过在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,并基于目标验证工具和激励序列对待测设计进行仿真验证;这样,上述芯片验证方法中采用的目标验证工具分为两个环节得到:初始验证工具在测试用例运行前编译确定,目标验证工具在目标测试用例启动运行前通过对初始验证工具中的至少部分基础组件进行替换得到,避免了传统技术中为了适应不同的使用场景,不断扩大单个组件的功能,而多个测试用例使用同一套组件,针对某个使用场景下调整组件功能势必会影响其他使用场景的验证使用,导致芯片验证的灵活性差的问题,本申请实施例提供的芯片验证方法可以针对每个测试用例均会重构一个目标验证工具,灵活性较好。
附图说明
图1为一个实施例中芯片验证方法的流程示意图;
图2为一个实施例中初始验证工具和目标验证工具的接口框图;
图3为一个实施例中功能组件库的示例性示意图;
图4为另一个实施例中功能组件库的示例性示意图;
图5为一个实施例中得到多个功能组件步骤的流程示意图;
图6为一个实施例中得到初始验证工具的流程示意图;
图7为另一个实施例中芯片验证方法的流程示意图;
图8为一个实施例中芯片验证装置的结构框图;
图9为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种芯片验证方法,该方法包括:
步骤102,在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件。
其中,待测设计指的是在现代集成电路(Integrated CircuitChip,IC)设计流程中,当设计人员根据设计规格说明书完成寄存器传输级(RegisterTransfer Level,RTL)代码之后,验证人员开始验证这些代码,通常称这些代码为待测设计。
待测设计中可能有多个数据接口,也可能只有一个数据接口。
在芯片验证技术领域中,一般按照芯片管脚完成的功能划分数据接口。示例性的,网络处理器芯片包括多个网口,每个网口具有接收数据和发送数据两个功能,接收数据时通过的芯片管脚是recv_data、recv_vld等,发送数据时通过的芯片管脚是send_data、send_vld等,此时接收数据的芯片管脚可以被称为一个数据接口,发送数据的就是另一个数据接口。每个数据接口对应的模块都可能需要进行单独进行验证,该模块也可能需要与其他接口配合起来进行验证。
本申请实施例初始验证工具是基于UVM构建的、仅包括验证工具内部数据流完整的、但无法完成对待测设计进行数据驱动、采样和评价功能的验证工具。
其中,UVM是一个以SystemVerilog类库为主体的验证工具开发框架,验证工程师可以利用其可重用组件构建具有标准化层次结构和接口的功能验证环境。一般的UVM验证工具中常见的组件包括driver(驱动器),monitor(监控器),sequencer(激励发生器),reference(参考模型),scoreboard(记分板),sequence(激励序列),transaction(事务,也是验证工具内部传递的数据类型)。其中,在本申请的一些其他实施例中,验证工具也可以称为验证平台。
请参考图2,本申请实施例提供的初始验证工具内部的组件主要集中在环境层,初始验证工具包括多个基础组件:base_driver(基础驱动器),base_monitor(基础监控器),base_sequencer(基础激励发生器),base_reference(基础参考模型)和base_scoreboard(基础记分板),此外base_transaction(基础事务)为仅包含复位信息的事务,用做数据流的载体。
初始验证工具中的数据流为:base_sequencer将sequence(激励序列)中的transaction传递到base_driver,base_monitor会将待测设计的输入信号传递到base_reference,将待测设计的输出信号传递到base_scoreboard,base_reference会将模拟之后的数据传递到base_scoreboard,基本组件仅完成数据的传递,而不会执行对于DUT的数据驱动,采样和评价的功能。
步骤104,获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型。
其中,激励序列(sequence),也就是针对待测设计的测试数据。示例性的,先根据测试需要例化transaction(事务),然后对transaction进行数量和时序的重新排布,如100个transaction每隔一个时钟周期发一个,从而形成sequence。其中,transaction是验证工具内部传递的数据类型。
对于不同的使用场景,需要构造不同的测试用例对待测设计进行仿真验证。一般的,待测设计对应的构造至少一个测试用例,每个测试用例对应一个激励序列。其中,目标测试用例为待测设计对应的至少一个测试用例中的任意一个。
获取目标测试用例对应的激励序列后,根据该激励序列确定该测试用例对应的目标数据接口和该目标数据接口对应的目标事务类型。其中,一个数据接口处理的数据可能会有多种,因而针对不同测试用例进行验证时用到的transaction会有所不同。当需要输入的激励序列确定,即可根据该激励序列确定需要通过哪些数据接口,验证哪些类型的事务。
目标数据接口为待测设计中目标测试用例对应的数据接口,目标事务类型是目标测试用例对应的验证过程中目标数据接口需要传输的事务的类型。
示例性的,网络处理器芯片可以处理多种协议包,每种协议包的组成各有不同,如MAC(Media Access Control,媒体访问控制)包和IP(Internet Protocol,网络协议)包,因此对于每种协议包都需要构造一个继承于base_transaction(基础事务)的子类transaction,即功能事务。其中,每个功能组件都是相应的基础组件的子类。
一个MAC包即为一个子类transaction,包括的成员变量有:目的MAC地址、源MAC地址、以太网类型、数据内容和校验码。一个IP包也是一个子类transaction。
步骤106,在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件。
不同类型的transaction进行验证时需要使用不同类型的功能组件。示例性的,func_driver(功能驱动器)需要完成将transaction转化成待测设计接口信号的驱动功能,对于不同的transaction需要构造不同的转化函数,因而得到多个func_driver;同理,func_monitor(功能监控器)需要完成将待测设计的接口信号转化为transaction的采样功能,因此对于不同的transaction也需要构造不同的func_monitor;在func_reference(功能参考模型)中需要完成模拟待测设计的功能,在接收来自func_monitor的transaction后,会进行相应的处理,针对不同的transaction会扩展不同的func_reference,此外利用C语言各种库形成的参考模型也作为func_reference功能组件使用;func_scoreboard(功能记分板)需要完成将func_reference模拟待测设计运行输出的transaction和func_monitor采样的实际待测设计运行输出的transaction的比较工作,由于不同transaction的成员变量有所差异,为了方便比较也会形成不同的func_scoreboard。
如此,针对每个基础组件,根据不同的事务类型预先构建不同的功能组件。一种事务类型对应一组功能组件,功能组件库中包括多组功能组件,对应不同的事务类型,如图3所示。示例性的,功能组件func_driver_1、func_monitor_1、func_reference_1和func_scoreboard_1对应transaction_1指代的事务类型,依次类推。
本实施例中,获取目标测试用例对应的激励序列后,先确定激励序列对应的目标数据接口和目标事务类型,并在目标数据接口对应的功能组件库中确定该目标事务类型对应的多个功能组件。
在本申请其他的一些实施例中,除了图2所示的几种基础组件外,基础组件还可以包括基础寄存器模型、基础adapter(转接器)、基础覆盖率模块、基础断言模块,相应的,为上述这几种基础组件也预先构建对应的功能组件。
在一种可能的实施方式中,如果预设的功能组件库中没有该事务类型对应的功能组件,则可以发送相应的提示信息,供测试人员启动添加该事务类型对应的功能组件的过程。
步骤108,至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,并基于目标验证工具和激励序列对待测设计进行仿真验证。
其中,初始验证工具中的基础组件仅能完成验证工具内部的数据传递,具体功能需要在功能组件,也就是基础组件的子类中完成。
根据芯片业务功能数据可以获取待测设计对应的所有类型的事务,对事务进行时序的排布可以获取至少一个激励序列,每个激励序列中指定了待测设计中各数据接口发送的事务类型;每个测试用例对应一个激励序列,根据该激励序列确定该测试用例对应的目标数据接口和目标事务类型,再根据目标数据接口和目标事务类型确定多个功能组件,对初始验证工具进行替换,得到目标验证工具。
对于一个待测设计的不同功能会产生不同的测试用例。示例性的,对于网络处理器芯片来说,测试用例1用于验证该芯片不同网口之间MAC包的转发功能,此时用到的就是MAC包作为transaction,功能组件用到的就是func_driver_mac,func_monitor_mac,func_reference_mac,func_scoreboard_mac;测试用例2用来验证本芯片各网口与CPU之间IP包的上送下发功能,此时用到的就是IP包作为transaction,功能组件用到的就是func_driver_ip,func_monitor_ip,func_reference_ip,func_scoreboard_ip。
如图2所示,测试用例位于目标验证工具的test(测试)层;示例性的,使用UVM的内置函数set_type_override将初始验证工具中的一套基础组件中至少部分基础组件替换成从功能组件库中获取的多个功能组件即可实现验证工具的重构,得到目标验证工具。
其中,在图2所示的示例中,base_transaction可以不被替换。base_transaction作为数据流的载体,而具体的事务,如transaction_1,是可以放到base_transaction的载体里的。形象的理解,base_transaction是外壳,这个外壳下可以放不同的transaction作为内核。
本申请实施例中目标验证工具的替换过程是在test层完成的,与测试用例一一对应,即每个测试用例均会重构一个目标验证工具,而非多个测试用例共用一个验证工具,因此不同的测试用例之间互不影响。
如图2所示,在一种可能的实施方式中,激励序列的数量为多个,示例性的,sequence_1至sequence_n,也就是说有多个测试用例要对待测设计进行仿真验证。针对每个激励序列,获取对应的多个功能组件替换初始验证工具中的基础组件,得到该激励序列对应的验证工具,即目标验证工具包括与各激励序列分别对应的验证工具。然后,针对每个激励序列,基于激励序列对应的验证工具和激励序列对待测设计进行仿真验证。
在本实施方式中,目标验证工具可以同时包括与各激励序列分别对应的验证工具,其中,各验证工具是在代码运行的过程中产生的,不同的测试用例在同时运行时是运行在不同的线程中的,因此,多个验证工具也是在多个不同的线程中运行的,可以同时存在。同时,在本实施例提供的方法实施过程中,可以根据不同使用场景不断在功能组件库中添加新的功能组件,对已有的验证工具和功能组件均无影响,扩展性好。
上述实施例提供的芯片验证方法,通过在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,并基于目标验证工具和激励序列对待测设计进行仿真验证;这样,上述实施例提供芯片验证方法中采用的目标验证工具分为两个环节得到:初始验证工具在测试用例运行前编译确定,目标验证工具在目标测试用例启动运行前通过对初始验证工具中的至少部分基础组件进行替换得到,避免了传统技术中为了适应不同的使用场景,不断扩大单个组件的功能,而多个测试用例使用同一套组件,针对某个使用场景下调整组件功能势必会影响其他使用场景的验证使用,导致芯片验证的灵活性差的问题,本申请实施例提供的芯片验证方法可以针对每个测试用例均会重构一个目标验证工具,灵活性较好。
在一个实施例中,请参考图4和图5,基于图1所示的实施例,本实施例涉及的是在目标数据接口对应的功能组件库中确定该事务类型对应的多个功能组件的过程。如图4所示,本实施例提供的功能组件库中包括多个功能组件子库;各功能组件子库是将功能组件库中各功能组件按照能够处理的事务类型的数量进行划分得到的。图5所示,该过程包括:
步骤502,根据事务类型的数量,从功能组件库包括的至少一个功能组件子库中确定目标功能组件子库。
其中,激励序列中可以同时使用两种或两种以上transaction,即一个激励序列对应的目标事务类型可能为2个或2个以上,此时需要构造可以同时支撑两种或者两种以上transaction的功能组件。
因此,本实施例中每个事务类型对应至少一套功能组件,功能组件的套数可能会多于待测设计对应的事务类型的种类数量。
示例性,如图4所示,以待测设计对应的4种事务类型:transaction_1至transaction_4,相应的,功能组件子库1包括的各功能组件是分别对应transaction_1至transaction_4中的一种事务类型,功能组件子库2包括的各功能组件分别对应transaction_1至transaction_4中的两种事务类型,例如,func_driver_12对应于transaction_1和transaction_2,func_driver_34对应于transaction_3和transaction_4,以此类推;功能组件子库3包括的各功能组件分别对应transaction_1至transaction_4中的三种事务类型,例如func_driver_123对应于transaction_1、transaction_2和transaction_3,以此类推;功能组件子库4包括的各功能组件对应transaction_1至transaction_4,例如func_driver_1234对应于transaction_1、transaction_2、transaction_3和transaction_4。
示例性的,网络处理器芯片为对应的一些测试用例中验证不同网口之间同时转发MAC包和IP包的功能,此时构造的激励序列就会包含MAC包和IP包两种事务,即该激励序列的事务类型的数量为2;因此需要构造预先构建一种功能组件能同时满足这两种transaction,例如定义为func_driver_macip,func_monitor_macip,func_reference_macip,func_scoreboard_macip,这组功能组件较前面的func_driver_mac,func_monitor_mac,func_reference_mac,func_scoreboard_mac、和func_driver_ip,func_monitor_ip,func_reference_ip,func_scoreboard_ip均不相同。其中,func_driver_macip等可以通过使用分类分步的方式逐一处理这两种transaction。
在本实施例中,功能组件库中的各功能组件按照能够处理的事务类型的数量划分成多个功能组件子库,示例性的,功能组件子库1中存储的各功能组件对应的事务类型的数量为1,功能组件子库2中存储的各功能组件对应的事务类型的数量为2,以此类推。在对待测设计进行验证的过程中,若激励序列的事务类型的数量为2的话,则将功能组件子库2确定为目标功能组件子库。
步骤504,从目标功能组件子库中确定与事务类型对应的多个功能组件。
示例性的,激励序列的事务类型包括MAC包和IP包,则从目标功能组件子库中能同时满足MAC包和IP包的功能组件。
在一个实施例中,请参考图6,基于图1所示的实施例,本实施例涉及的是如何获取初始验证工具的过程。如图6所示,该过程包括:
步骤602,对待测设计的顶层文件进行传输信号类型分析,确定待测设计的对应的数据接口和数据接口对应的接口类型。
其中,初始验证工具与待测设计对应。顶层文件用于描述待测设计的硬件配置信息,包括待测设计的输入输出信号,如clk(时钟),rst_n(复位),addr(地址信号)和data(数据信号)等;通过对上述输入输出信号进行解析,可以获得不同类型的数据接口,如MAC口、PON(无源光网络)口等。
步骤604,根据接口类型,获取数据接口对应的多个基础组件。
其中,一个数据接口对应一套基础组件。示例性的,由于基础组件不涉及具体功能,可以根据接口类型和预设的基础组件生成脚本,生成该数据接口对应的多个基础组件。
又示例性的,也可以预先根据接口类型生成相应的基础组件,构成基础组件库;在针对待测设计生成初始验证工具时,可以根据待测设计的数据接口的接口类型,从基础组件库中选择相应的多个基础组件。
在一种可能的实施方式中,数据接口的数量为多个,每个数据接口均对应一套基础组件,即针对每个数据接口,根据数据接口对应的接口类型,获取该数据接口对应的多个基础组件。
步骤606,对多个基础组件进行编译处理,得到初始验证工具。
在数据接口的数量为多个的实施方式中,对各数据接口对应的多个基础组件分别进行编译处理,得到初始验证工具,即在本实施方式中,初始验证工具包括多套基础组件。
当初始验证工具对应多套基础组件时,就意味着这几套基础组件对应不同的接口,每套基础组件的命名也不相同。示例性的,网络处理器芯片会具有多个MAC口,每个MAC口都会对应一套基础组件,这些基础组件可以以不同编号命名,以driver为例,命名为base_driver_1、base_driver_2直至base_driver_n。验证工具的重构是根据测试用例的需求来确定,如果在这个测试用例中要验证的是第2个和第4个MAC口的转发功能,那么在进行重构时,使用功能组件func_driver_mac替换掉base_driver_2和base_driver_4即可,剩余的driver则不需要替换,仍然使用基础组件即可。除driver的其他基础组件如monitor、reference和scoreboard等也是这么处理。
在一个实施例中,基于图1所示的实施例,部分基础组件包括基础驱动器、基础监控器、基础参考模型和基础记分板中的至少一种。
在一个实施方式中,至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具,包括:将多个基础组件中的基础驱动器、基础监控器、基础参考模型和基础记分板替换为多个功能组件,得到目标验证工具,即目标验证工具包括功能驱动器、功能监控器、功能参考模型和功能记分板。
在本实施方式中,基于目标验证工具和激励序列对待测设计进行仿真验证,包括:通过基础激励发生器根据激励序列产生验证激励信号;通过功能驱动器将验证激励信号驱动至目标数据接口;通过功能监控器对目标数据接口进行采样,得到验证激励信号和验证激励信号对应的结果信号,并将验证激励信号传输至功能参考模型,将验证结果信号传输至功能记分板;通过功能参考模型对验证激励信号进行模拟处理,得到模拟结果信号,将模拟结果信号传输至功能记分板;通过功能记分板对模拟结果信号和验证结果信号进行比较处理,得到待测设计对应的验证结果。
以MAC包使用到的各功能组件为示例进行说明上述仿真验证过程:在func_driver_mac(MAC包功能驱动器)中将MAC包的各成员变量连续转化为MAC口64位并行的数据输出至待测设计;在func_monitor_mac(MAC包功能监控器)中采样MAC口64位并行的数据,并转化位MAC包的transaction形式,其中采样的MAC口数据包括输入至待测设计的数据信号和待测设计输出的数据信号;在func_reference_mac(MAC包功能参考模型)中模拟待测设计功能,对输入的MAC包进行解析,处理和转发工作并输出处理后的MAC包;在func_scoreboard_mac(MAC包功能记分板)中将func_reference_mac模拟的MAC包和func_monitor_mac采样的实际的MAC包进行成员变量的逐项比较,并输出比较结果。
在一个实施例中,请参考图7,提供一种芯片验证方法,包括:
步骤701,在对目标芯片中待测设计进行验证的过程中,对待测设计的顶层文件进行传输信号类型分析,确定待测设计的对应的数据接口和数据接口对应的接口类型,顶层文件用于描述待测设计的硬件配置信息。
步骤702,根据接口类型,获取数据接口对应的多个基础组件。
可选的,数据接口的数量为多个;根据接口类型,获取数据接口对应的多个基础组件,包括:针对每个数据接口,根据数据接口对应的接口类型,获取数据接口对应的多个基础组件。
步骤703,对多个基础组件进行编译处理,得到初始验证工具。
可选的,数据接口的数量为多个;对各数据接口对应的多个基础组件分别进行编译处理,得到初始验证工具。
步骤704,获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型。
步骤705,在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件。
可选的,根据目标事务类型的数量,从功能组件库包括的至少一个功能组件子库中确定目标功能组件子库,其中,各功能组件子库是将功能组件库中将各功能组件按照能够处理的事务类型的数量进行划分得到的;从目标功能组件子库中确定与目标事务类型对应的多个功能组件。
步骤706,至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具。
可选的,部分基础组件包括基础驱动器、基础监控器、基础参考模型和基础记分板中的至少一种。
步骤707,基于目标验证工具和激励序列对待测设计进行仿真验证。
可选的,激励序列的数量为多个,目标验证工具包括与各激励序列分别对应的验证工具;针对每个激励序列,基于激励序列对应的验证工具和激励序列对待测设计进行仿真验证。
可选的,基于目标验证工具和激励序列对待测设计进行仿真验证,包括:通过基础激励发生器基于激励序列产生验证激励信号;通过功能驱动器将验证激励信号驱动至目标数据接口;通过功能监控器对目标数据接口进行信号采样,得到验证激励信号和验证激励信号对应的验证结果信号,并将验证激励信号传输至功能参考模型,以及将验证结果信号传输至功能记分板;通过功能参考模型对验证激励信号进行模拟处理,得到模拟结果信号,将模拟结果信号传输至功能记分板;通过功能记分板对模拟结果信号和验证结果信号进行比较处理,得到待测设计对应的验证结果。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的芯片验证方法的芯片验证装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个芯片验证装置实施例中的具体限定可以参见上文中对于芯片验证方法的限定,在此不再赘述。
在一个实施例中,如图8所示,提供了一种芯片验证装置,包括:初始验证工具获取模块802、事务类型确定模块804、功能组件确定模块806、功能组件替换模块808和仿真验证执行模块810,其中:
初始验证工具获取模块802,用于在对芯片中待测设计进行验证的过程中,获取待测设计对应的初始验证工具,初始验证工具包括多个基础组件;
事务类型确定模块804,用于获取目标测试用例对应的激励序列,并根据激励序列确定激励序列对应目标数据接口和目标数据接口对应的目标事务类型;
功能组件确定模块806,用于在目标数据接口对应的功能组件库中确定目标事务类型对应的多个功能组件;
功能组件替换模块808,至少将多个基础组件中的部分基础组件替换为多个功能组件,得到目标验证工具;
仿真验证执行模块810,用于并基于目标验证工具和激励序列对待测设计进行仿真验证。
在一个实施例中,功能组件确定模块806具体用于根据目标事务类型的数量,从功能组件库包括的至少一个功能组件子库中确定目标功能组件子库,其中,各功能组件子库是将功能组件库中各功能组件按照能够处理的事务类型的数量进行划分得到的;从目标功能组件子库中确定与目标事务类型对应的多个功能组件。
在一个实施例中,初始验证工具获取模块802具体用于对待测设计的顶层文件进行传输信号类型分析,确定待测设计的对应的数据接口和数据接口对应的接口类型,顶层文件用于描述待测设计的硬件配置信息;根据接口类型,获取数据接口对应的多个基础组件;对多个基础组件进行编译处理,得到初始验证工具。
在一个实施例中,数据接口的数量为多个;初始验证工具获取模块802具体用于针对每个数据接口,根据数据接口对应的接口类型,获取数据接口对应的多个基础组件;对各数据接口对应的多个基础组件分别进行编译处理,得到初始验证工具。
在一个实施例中,激励序列的数量为多个,目标验证工具包括与各激励序列分别对应的验证工具,仿真验证执行模块810用于针对每个激励序列,基于激励序列对应的验证工具和激励序列对待测设计进行仿真验证。
在一个实施例中,部分基础组件包括基础驱动器、基础监控器、基础参考模型和基础记分板中的至少一种。
在一个实施例中,仿真验证执行模块810具体用于通过基础激励发生器基于激励序列产生验证激励信号;通过功能驱动器将验证激励信号驱动至目标数据接口;通过功能监控器对目标数据接口进行信号采样,得到验证激励信号和验证激励信号对应的验证结果信号,并将验证激励信号传输至功能参考模型,以及将验证结果信号传输至功能记分板;通过功能参考模型对验证激励信号进行模拟处理,得到模拟结果信号,将模拟结果信号传输至功能记分板;通过功能记分板对模拟结果信号和验证结果信号进行比较处理,得到待测设计对应的验证结果。
上述芯片验证装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基础组件和功能组件。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种芯片验证方法。
本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种芯片验证方法,其特征在于,所述方法包括:
在对芯片中待测设计进行验证的过程中,获取所述待测设计对应的初始验证工具,所述初始验证工具包括多个基础组件;
获取目标测试用例对应的激励序列,并根据所述激励序列确定所述激励序列对应目标数据接口和所述目标数据接口对应的目标事务类型;
在所述目标数据接口对应的功能组件库中确定所述目标事务类型对应的多个功能组件;
至少将所述多个基础组件中的部分基础组件替换为所述多个功能组件,得到目标验证工具,并基于所述目标验证工具和所述激励序列对所述待测设计进行仿真验证。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标数据接口对应的功能组件库中确定所述目标事务类型对应的多个功能组件,包括:
根据所述目标事务类型的数量,从所述功能组件库包括的至少一个功能组件子库中确定目标功能组件子库,其中,各所述功能组件子库是将所述功能组件库中各功能组件按照能够处理的事务类型的数量进行划分得到的;
从所述目标功能组件子库中确定与所述目标事务类型对应的所述多个功能组件。
3.根据权利要求1所述的方法,其特征在于,所述获取所述待测设计对应的初始验证工具的过程包括:
对所述待测设计的顶层文件进行传输信号类型分析,确定所述待测设计的对应的数据接口和所述数据接口对应的接口类型,所述顶层文件用于描述所述待测设计的硬件配置信息;
根据所述接口类型,获取所述数据接口对应的多个基础组件;
对所述多个基础组件进行编译处理,得到所述初始验证工具。
4.根据权利要求3所述的方法,其特征在于,所述数据接口的数量为多个;所述根据所述接口类型,获取所述数据接口对应的多个基础组件,包括:
针对每个所述数据接口,根据所述数据接口对应的接口类型,获取所述数据接口对应的多个基础组件;
所述对所述多个基础组件进行编译处理,得到所述初始验证工具,包括:
对各所述数据接口对应的多个基础组件分别进行编译处理,得到所述初始验证工具。
5.根据权利要求1所述的方法,其特征在于,所述激励序列的数量为多个,所述目标验证工具包括与各所述激励序列分别对应的验证工具,所述基于所述目标验证工具和所述激励序列对所述待测设计进行仿真验证,包括:
针对每个所述激励序列,基于所述激励序列对应的验证工具和所述激励序列对所述待测设计进行仿真验证。
6.根据权利要求1所述的方法,其特征在于,所述部分基础组件包括基础驱动器、基础监控器、基础参考模型和基础记分板中的至少一种。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标验证工具和所述激励序列对所述待测设计进行仿真验证,包括:
通过基础激励发生器基于所述激励序列产生验证激励信号;
通过功能驱动器将所述验证激励信号驱动至所述目标数据接口;
通过功能监控器对所述目标数据接口进行信号采样,得到所述验证激励信号和所述验证激励信号对应的验证结果信号,并将所述验证激励信号传输至功能参考模型,以及将所述验证结果信号传输至功能记分板;
通过所述功能参考模型对所述验证激励信号进行模拟处理,得到模拟结果信号,将所述模拟结果信号传输至所述功能记分板;
通过所述功能记分板对所述模拟结果信号和所述验证结果信号进行比较处理,得到所述待测设计对应的验证结果。
8.一种芯片验证装置,其特征在于,所述装置包括:
初始验证工具获取模块,用于在对芯片中待测设计进行验证的过程中,获取所述待测设计对应的初始验证工具,所述初始验证工具包括多个基础组件;
事务类型确定模块,用于获取目标测试用例对应的激励序列,并根据所述激励序列确定所述激励序列对应目标数据接口和所述目标数据接口对应的目标事务类型;
功能组件确定模块,用于在所述目标数据接口对应的功能组件库中确定所述目标事务类型对应的多个功能组件;
功能组件替换模块,至少将所述多个基础组件中的部分基础组件替换为所述多个功能组件,得到目标验证工具;
仿真验证执行模块,用于并基于所述目标验证工具和所述激励序列对所述待测设计进行仿真验证。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述的方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311199118.7A CN116956801B (zh) | 2023-09-18 | 2023-09-18 | 芯片验证方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311199118.7A CN116956801B (zh) | 2023-09-18 | 2023-09-18 | 芯片验证方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116956801A true CN116956801A (zh) | 2023-10-27 |
CN116956801B CN116956801B (zh) | 2023-12-01 |
Family
ID=88460465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311199118.7A Active CN116956801B (zh) | 2023-09-18 | 2023-09-18 | 芯片验证方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116956801B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312879A (zh) * | 2021-07-28 | 2021-08-27 | 北京燧原智能科技有限公司 | 芯片电路功能验证系统、方法、设备及存储介质 |
CN114528792A (zh) * | 2022-02-18 | 2022-05-24 | 杭州爱芯元智科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
CN115828839A (zh) * | 2022-11-15 | 2023-03-21 | 杭州万高科技股份有限公司 | 一种soc芯片系统级验证系统及方法 |
CN116306408A (zh) * | 2023-05-22 | 2023-06-23 | 太初(无锡)电子科技有限公司 | 片上系统soc的验证环境确定方法、装置、设备和存储介质 |
-
2023
- 2023-09-18 CN CN202311199118.7A patent/CN116956801B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312879A (zh) * | 2021-07-28 | 2021-08-27 | 北京燧原智能科技有限公司 | 芯片电路功能验证系统、方法、设备及存储介质 |
CN114528792A (zh) * | 2022-02-18 | 2022-05-24 | 杭州爱芯元智科技有限公司 | 芯片验证方法、装置、电子设备及存储介质 |
CN115828839A (zh) * | 2022-11-15 | 2023-03-21 | 杭州万高科技股份有限公司 | 一种soc芯片系统级验证系统及方法 |
CN116306408A (zh) * | 2023-05-22 | 2023-06-23 | 太初(无锡)电子科技有限公司 | 片上系统soc的验证环境确定方法、装置、设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
BAKKEN BERNHARD: "Development of a Universal Verification Component for CPU UVM Verification", 《NTNU》 * |
王锋 等: "SoC 芯片 UVM 平台自动化开发系统", 《中国集成电路》, no. 3, pages 72 - 77 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117389818A (zh) * | 2023-12-12 | 2024-01-12 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
CN117389818B (zh) * | 2023-12-12 | 2024-03-29 | 牛芯半导体(深圳)有限公司 | 应用于uvm验证平台的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116956801B (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8161439B2 (en) | Method and apparatus for processing assertions in assertion-based verification of a logic design | |
RU2430409C2 (ru) | Методология измерения покрытия в структурном состоянии взаимного соединения | |
CN102169846B (zh) | 一种在集成电路晶圆测试过程中实现多维变量密码并行写入的方法 | |
US20080276144A1 (en) | Method and System for Formal Verification of Partial Good Self Test Fencing Structures | |
CN116956801B (zh) | 芯片验证方法、装置、计算机设备和存储介质 | |
US7761825B2 (en) | Generating testcases based on numbers of testcases previously generated | |
KR20010067370A (ko) | SoC 설계 검증을 위한 방법 및 장치 | |
US8365133B2 (en) | Testing apparatus, testing method, and program | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN115827307A (zh) | 基于具有循环冗余校验的校验和校正的以太网硬件的验证 | |
CN111400169B (zh) | 一种自动化生成用于测试软硬件的网表文件的方法及系统 | |
CN116663467A (zh) | 断言等效硬件库的构建方法、装置、电子设备及存储介质 | |
US9135376B2 (en) | Input space reduction for verification test set generation | |
Naveh et al. | Beyond feasibility: CP usage in constrained-random functional hardware verification | |
Gavrilov et al. | Method of mathematical description for digital system blocks logical models | |
CN103165405A (zh) | 一种通过gpib接口实时生成多维变量密码方法 | |
Neishaburi et al. | Hierarchical embedded logic analyzer for accurate root-cause analysis | |
CN112861455B (zh) | Fpga建模验证系统及方法 | |
CN114884609A (zh) | 数据总线上的带时间戳的帧的基于硬件的循环冗余校验重新计算器 | |
Crouch et al. | P1687. 1: Accessing Embedded 1687 Instruments using Alternate Device Interfaces other than JTAG | |
Bawadekji et al. | TLM protocol compliance checking at the electronic system level | |
US6804803B2 (en) | Method for testing integrated logic circuits | |
CN106707144B (zh) | 一种应用于反熔丝fpga测试向量的逆向分析方法 | |
Dhar et al. | Coverage driven verification of I2C protocol using System Verilog | |
US20180189435A1 (en) | System and method for capturing transaction specific stage-wise log data |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |