CN113656227B - 一种芯片验证方法、装置、电子设备及存储介质 - Google Patents
一种芯片验证方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113656227B CN113656227B CN202110932656.7A CN202110932656A CN113656227B CN 113656227 B CN113656227 B CN 113656227B CN 202110932656 A CN202110932656 A CN 202110932656A CN 113656227 B CN113656227 B CN 113656227B
- Authority
- CN
- China
- Prior art keywords
- test
- chip
- interface
- test interface
- tested
- 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.)
- Active
Links
- 238000012795 verification Methods 0.000 title claims abstract description 141
- 238000000034 method Methods 0.000 title claims abstract description 54
- 238000003860 storage Methods 0.000 title claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 472
- 230000004044 response Effects 0.000 claims description 15
- 238000010200 validation analysis Methods 0.000 claims description 12
- 238000010276 construction Methods 0.000 claims description 9
- 238000013473 artificial intelligence Methods 0.000 abstract description 23
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 13
- 238000004088 simulation Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000000903 blocking effect Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2247—Verification or detection of system hardware configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- Tests Of Electronic Circuits (AREA)
Abstract
本公开提供了一种芯片验证方法、装置、电子设备及存储介质,涉及人工智能领域,尤其涉及集成电路领域。具体实现方案为:基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果;基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。本申请实施例可以针对不同的接口更加方便地构建出对应的测试序列,从而可以简化用户操作,减少编写测试序列的工作量;并且能够缩短验证时间,增强可扩展性。
Description
技术领域
本公开涉及人工智能技术领域,进一步涉及集成电路技术,尤其是一种芯片验证方法、装置、电子设备及存储介质。
背景技术
目前,用于验证人工智能(Artificial Intelligence,简称AI)芯片的片上系统(System on Chip,简称soc)仿真验证平台,主要通过以下技术实现:1)基于UVM验证方法学和System Verilog语言、C语言等实现平台的各个验证组件;2)在序列(sequence)中按时序产生各种激励,在测试用例中指定这些激励的具体参数,例如包长、间隔、原始数据文件等;3)读取仿真结果并自动比对,判断仿真结果正确或者错误;4)通过回归实现大量测试用例的批量仿真,判断整体覆盖率和各功能点是否满足要求。
现有的soc仿真验证平台关于测试序列的分层不够明确,平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数。例如,发送一块数据应切分成多少个高速总线协议(AdvancedeXtensible Interface,简称AXI)数据包、接口总线位宽、地址是否越界等,上述方式存在效率低下的重复劳动。
另外,在现有的soc仿真验证平台中,AI芯片中同样的激励可以从多个接口发送,每个接口使用的协议、物理特性和参数不同,使用不同的验证组件和序列器,不同验证组件之间序列无法兼容,从另一个接口发送激励需要重新编写测试序列以符合该接口的特性。因此,在实际测试中,需要的测试序列往往十分复杂,重复编写测试序列大大增加工作量,延长了芯片验证收敛时间。
此外,验证平台难以在不同的项目之间迁移。当后续项目使用不同的模块和不同的接口协议类型时,由于缺乏对激励层次的合理抽象,测试序列需要重新编写;如果增加新的模块还需要修改平台结构,验证平台缺乏扩展性。
发明内容
本公开提供了一种芯片验证方法、装置、电子设备以及存储介质。
第一方面,本申请提供了一种芯片验证方法,所述方法包括:
基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;
基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果;将所述当前测试接口的下一个测试接口作为所述当前测试接口,重复执行上述操作,直到得到所述待测芯片针对各个测试接口返回的测试结果;
基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证。
第二方面,本申请提供了一种芯片验证装置,所述装置包括:构建模块、测试模块和验证模块;其中,
所述构建模块,用于基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;
所述测试模块,用于基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果;将所述当前测试接口的下一个测试接口作为所述当前测试接口,重复执行上述操作,直到得到所述待测芯片针对各个测试接口返回的测试结果;
所述验证模块,用于基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证。
第三方面,本申请实施例提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本申请任意实施例所述的芯片验证方法。
第四方面,本申请实施例提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请任意实施例所述的芯片验证方法。
第五方面,提供了一种计算机程序产品,当所述计算机程序产品被计算机设备执行时实现本申请任意实施例所述的芯片验证方法。
根据本申请的技术解决了现有的soc仿真验证平台关于测试序列的分层不够明确,平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数,从而导致的工作量大,验证时间长、缺乏可扩展性等技术问题,本申请提供的技术方案,可以针对不同的接口更加方便地构建出对应的测试序列,从而可以简化用户操作,减少编写测试序列的工作量;并且能够缩短验证时间,增强可扩展性。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是本申请实施例提供的芯片验证方法的第一流程示意图;
图2是本申请实施例提供的AI芯片的结构示意图;
图3是本申请实施例提供的soc验证平台的结构示意图;
图4是本申请实施例提供的芯片验证方法的第二流程示意图;
图5是本申请实施例提供的测试序列结构的示意图;
图6是本申请实施例提供的虚拟序列器的结构示意图;
图7是本申请实施例提供的芯片验证方法的第三流程示意图;
图8是本申请实施例提供的数据包编号队列的结构示意图;
图9是本申请实施例提供的芯片验证模块的结构示意图;
图10是用来实现本申请实施例的芯片验证方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
实施例一
图1是本申请实施例提供的芯片验证方法的第一流程示意图,该方法可以由芯片验证装置或者电子设备来执行,该装置或者电子设备可以由软件和/或硬件的方式实现,该装置或者电子设备可以集成在任何具有网络通信功能的智能设备中;本申请中的电子设备可以适用于云端AI芯片开发的soc验证平台。如图1所示,芯片验证方法可以包括以下步骤:
S101、基于预先构建的默认序列,针对当前测试接口构建对应的测试序列。
在本步骤中,soc验证平台可以基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;其中,默认序列包括至少一个通用的基础任务;通用的基础任务包括但不限于:读操作任务、写操作任务、初始化程序、中断处理程序;读操作任务包括:读寄存器和读存储器;写操作任务包括:写寄存器和写存储器。具体地,soc验证平台可以先接收用户针对当前测试接口输入的测试配置参数;其中,测试配置参数至少包括接口号标识;然后基于测试配置参数在默认序列中获取当前测试接口对应的通用的基础任务;再基于当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列。
在本申请的具体实施例中,soc验证平台在针对当前测试接口构建对应的测试序列之前,还可以针对各个通用的基础任务分别构建对应的基础函数;然后将各个通用的基础任务对应的基础函数分别封装至默认序列中。
S102、基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果。
在本步骤中,soc验证平台可以基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果。具体地,soc验证平台可以先将当前测试接口对应的测试序列中的各个数据包分别发送至待测芯片中,并将各个数据包的编号分别压入至预先定义的队列中;若在各个数据包对应的响应时长内接收到该数据包的正确响应,则在队列中删除该数据包的编号;若队列中的全部数据包的编号被删除完,则判定待测芯片针对当前测试接口返回的测试结果为验证通过;若队列中的全部数据包的编号未被删除完,则判定待测芯片针对当前测试接口返回的测试结果为未验证通过。
S103、基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。
在本步骤中,soc验证平台可以基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。具体地,若待测芯片针对各个测试接口返回的测试结果均为验证通过,则soc验证平台可以判定待测芯片通过验证;若待测芯片针对任意一个测试接口返回的测试结果为未验证通过,则soc验证平台可以判定待测芯片未通过验证。例如,针对某一个待测芯片,需要对其三个接口进行测试,这三个接口分别为:接口1、接口2和接口3,它们对应的测试序列分别为:测试序列1、测试序列2和测试序列3。在测试过程中,使用测试序列1在接口1上对待测芯片进行测试,使用测试序列2在接口2上对待测芯片进行测试,使用测试序列3在接口3上对待测芯片进行测试;然后soc验证平台可以得到待测芯片分别针对接口1、接口2和接口3返回的测试结果;若待测芯片针对接口1、接口2和接口3返回的测试结果均为验证通过,则soc验证平台可以判定待测芯片通过验证;若待测芯片针对接口1、接口2或者接口3返回的测试结果为未验证通过,则soc验证平台可以判定待测芯片未通过验证。
图2是本申请实施例提供的AI芯片的结构示意图。如图2所示,AI芯片可以包括:PCIE模块、存储器模块、微控制器模块、中断控制器、片间互联模块、AI计算单元0、…、AI计算单元N;上述各个模块和单元通过AXI总线相连接。该AI芯片的基本特征有:基于芯片内高速协议的总线(以AXI协议为例),作为计算卡受主机控制,主机通过其与PCIE相连接的接口配置并读写AI芯片。此外,微控制器模块通过其与AXI总线相连接的接口配置AI芯片并读写片内存储器,总线上还有其他用途的主设备通过片间互联模块与AXI总线相连接的接口读写片内存储器。在上述各个不同的接口上,可以分别使用各自对应的测试序列对AI芯片进行测试。例如,在主机与PCIE模块相连接的接口上,输入该接口对应的测试序列对AI芯片进行测试;在PCIE模块与AXI总线相连接的接口上,输入该接口对应的测试序列对AI芯片进行测试。在现有的芯片验证方法中,针对不同的接口需要平台使用者重新编写测试序列,此时平台使用者不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数,上述方式存在效率低下的重复劳动。本申请基于默认序列构建各个接口对应的测试序列,平台使用者无需关注协议底层的实现细节和发送接口的具体参数,可以简化用户操作,极大地减少编写测试序列的工作量。
图3是本申请实施例提供的soc验证平台的结构示意图。如图3所示,soc验证平台可以包括:虚拟序列器、PCIE验证组件、AXI验证组件、互联代理模块、参数配置模块、时钟检查模块和复位检查模块;PCIE验证组件通过PCIE接口与待测芯片连接;AXI验证组件通过AXI接口与待测芯片连接;其中,AXI接口可以包括:AXI接口1、AXI接口2、…、AXI接口K;K为大于等于1的自然数;互联代理模块通过互联接口与待测芯片连接;参数配置模块可以包括:PCIE参数配置、AXI参数配置、jtag参数配置、互联接口参数配置。由于AI芯片的多个接口都会参与推理和训练场景的数据流发送和接收,要求同一个测试序列尽可能复用到尽量多的接口类型。同时,AI芯片对性能的要求决定了要能仿真各协议接口最大带宽的情况。
本申请实施例提出的芯片验证方法,先基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;然后基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果;最后基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。也就是说,本申请中的默认序列具备明确的分层结构,通过调用默认序列中的通用的基础任务,即可构建出满足不同的测试接口需求的测试序列,平台使用者无需针对不同的测试接口分别编写对应的测试序列,同时也无需关注协议底层的实现细节和发送接口的具体参数。而现有的soc仿真验证平台关于测试序列的分层不够明确,平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数。因为本申请采用了基于预先构建的默认序列,针对当前测试接口构建对应的测试序列的技术手段,克服了现有的平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数,从而导致的工作量大,验证时间长、缺乏可扩展性等技术问题,本申请提供的技术方案,可以针对不同的接口更加方便地构建出对应的测试序列,从而可以简化用户操作,减少编写测试序列的工作量;并且能够缩短验证时间,增强可扩展性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例二
图4是本申请实施例提供的芯片验证方法的第二流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图4所示,芯片验证方法可以包括以下步骤:
S401、接收用户针对当前测试接口输入的测试配置参数;其中,测试配置参数至少包括接口号标识。
在本步骤中,soc验证平台可以接收用户针对当前测试接口输入的测试配置参数;其中,测试配置参数至少可以包括接口号标识;例如,该接口号标识为mater_id。通过mater_id定义函数,标识当前接口号,将虚拟序列器中对应的序列器成员传给当前序列器。每次构建测试序列前调用此函数,即可实现当前序列的事务都从运行时指定的接口发送,同一组序列在不同测试用例中可灵活切换不同协议类型的接口。
图5是本申请实施例提供的测试序列结构的示意图。如图5所示,测试序列结构可以包括四个层级,分别为:第一层级、第二层级、第三层级和第四层级;其中,第一层级为uvm序列框架(uvm_sequence);第二层级为验证平台基类序列(soc_base_vseq);第三层级为测试序列0(test_vseq0)、测试序列1(test_vseq1)、…、测试序列(test_vseqN);N为大于等于1的自然数;第四层级为组合场景序列0(scenario_vseq0)、…、组合场景序列M(scenario_vseqM);其中,M为大于等于1的自然数。具体地,uvm_sequence指的是现有技术中的一个验证框架;soc_base_vseq是基于这个验证框架得到的;test_vseq是从soc_base_vseq派生出来的,可以理解为test_vseq与soc_base_vseq是继承关系;scenario_vseq是将test_vseq排列组合得到的,该过程是一个复杂的调用过程,可以串行执行,也可以并行执行。该测试序列结构的特征有:默认序列为soc_base_vseq,作为所有测试序列的基类,定义通用的基础函数或者任务,包括读操作任务,写操作任务,主要模块的初始化程序,中断处理程序等,这些函数或者任务可以被所有测试序列复用。当测试单一数据通路时,运行时指定由soc_base_vseq派生的测试序列重载基类序列发送激励;当测试多通路并发场景时,从soc_base_vseq派生scenario_vseq。
图6是本申请实施例提供的虚拟序列器的结构示意图。如图6所示,虚拟序列器可以包括:当前序列器、虚拟序列器和验证组件;其中,虚拟序列器可以包括X个虚拟序列器成员,分别为虚拟序列器成员1、虚拟序列器成员2、…、虚拟序列器成员X。每一个虚拟序列器可以分别连接一个对应的验证组件;虚拟序列器成员1连接验证组件1;虚拟序列器成员2连接验证组件2、…、虚拟序列器成员X连接验证组件X。该验证组件可以包括AXI协议相关的组件,还可以包括其他协议相关的组件,在此不进行限定。
S402、基于测试配置参数在默认序列中获取当前测试接口对应的通用的基础任务。
S403、基于当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列。
在本申请的具体实施例中,soc验证平台可以先基于测试配置参数在默认序列中获取当前测试接口对应的通用的基础任务;然后基于当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列;其中,默认序列包括至少一个通用的基础任务;通用的基础任务包括但不限于:读操作任务、写操作任务、初始化程序、中断处理程序;读操作任务包括:读寄存器和读存储器;写操作任务包括:写寄存器和写存储器。
当读寄存器或者写寄存器时,根据运行时指定的序列器标号(sqr_id)和聚合参数确定当前激励在何种接口发送,发送符合该接口格式的数据包。例如,主机通过AXI接口写寄存器,除给定发送事务的地址、数据外,发送事务的数据包宽度(burst_size)为4字节,id位宽为2位,即id值在0~3随机。当主机通过PCIE接口写寄存器时,调用PCIE验证组件,根据配置好的映射空间按PCIE协议写入32bit数据,即完成一次写寄存器操作。
当读存储器或者写存储器时,同样先根据运行时指定的序列器标号(sqr_id)和聚合参数确定当前激励在何种接口发送。当主机用户通过AXI接口写一片给定起始地址、长度的存储器空间时,由于AXI协议限制,首先检查本次写若跨越4K地址边界,以4K边界地址切分AXI写操作,递归调用当前任务,写长度=边界地址-起始地址。若切分后写长度仍跨4K边界,继续切分直到剩余长度不跨4K边界。再检查切分后的写事务的长度,由于主机AXI接口信号位宽为256位,最大数据包长度为16,32字节×16=512字节,若写长度大于512字节,则先发送数据包宽度(burst_size)=32字节,数据包长度(burst_len)=16的一发写操作,id位宽为4即在0~15随机,再根据虚拟化用户确定user字段值;继续判断重复此过程直到剩余事务的长度不足512字节。此时再判断长度是否大于等于256字节。直到切分至4字节长度。如此,以最适合长度切分了AXI写事务,实现者也可在具体切分方法上兼顾写操作效率与实现复杂度。
当主机通过PCIE接口写存储器空间时,调用PCIE验证组件,根据配置好的映射空间按PCIE协议配置数据搬运,给定目的地址和长度,发起一次数据搬运并等待数据搬运完成中断。
当主机通过后门写存储器空间时,为全局存储器定义了后门读写函数,可在测试用例中运行时指定后门写或者后门读,若读写地址位于全局存储器有效地址范围内,则发起的操作为后门读/写存储器。实现了同一个序列通过运行时参数控制前后门访问。
S404、基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果。
S405、基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。
本申请实施例提出的芯片验证方法,先基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;然后基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果;最后基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。也就是说,本申请中的默认序列具备明确的分层结构,通过调用默认序列中的通用的基础任务,即可构建出满足不同的测试接口需求的测试序列,平台使用者无需针对不同的测试接口分别编写对应的测试序列,同时也无需关注协议底层的实现细节和发送接口的具体参数。而现有的soc仿真验证平台关于测试序列的分层不够明确,平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数。因为本申请采用了基于预先构建的默认序列,针对当前测试接口构建对应的测试序列的技术手段,克服了现有的平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数,从而导致的工作量大,验证时间长、缺乏可扩展性等技术问题,本申请提供的技术方案,可以针对不同的接口更加方便地构建出对应的测试序列,从而可以简化用户操作,减少编写测试序列的工作量;并且能够缩短验证时间,增强可扩展性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例三
图7是本申请实施例提供的芯片验证方法的第三流程示意图。基于上述技术方案进一步优化与扩展,并可以与上述各个可选实施方式进行结合。如图7所示,芯片验证方法可以包括以下步骤:
S701、接收用户针对当前测试接口输入的测试配置参数;其中,测试配置参数至少包括接口号标识。
S702、基于测试配置参数,在预先指定的虚拟序列器中确定当前测试接口对应的至少一个虚拟序列器成员。
S703、通过该至少一个虚拟序列器成员以及预先与各个虚拟序列器成员相连接的验证组件,在默认序列中获取当前测试接口对应的通用的基础任务。
在本步骤中,soc验证平台可以通过该至少一个虚拟序列器成员以及预先与各个虚拟序列器成员相连接的验证组件,在默认序列中获取当前测试接口对应的通用的基础任务。具体地,虚拟序列器中可以包括:当前序列器、虚拟序列器和验证组件;其中,虚拟序列器可以包括X个虚拟序列器成员,分别为虚拟序列器成员1、虚拟序列器成员2、…、虚拟序列器成员X。每一个虚拟序列器可以分别连接一个对应的验证组件;虚拟序列器成员1连接验证组件1;虚拟序列器成员2连接验证组件2、…、虚拟序列器成员X连接验证组件X。虚拟序列器实现激励在不同接口间的复用。在测试基类(base_test)连接阶段(connect_phase)将AXI验证组件的序列器(sequencer)连接到虚拟序列器。
S704、通过当前测试接口对应的通用的基础任务,得到由多个读操作任务和多个写操作任务所组成的至少一个测试序列。
在本步骤中,soc验证平台可以基于当前测试接口对应的通用的基础任务,得到由多个读操作任务和多个写操作任务所组成的至少一个测试序列。本申请实施例可以定义运行时输入参数master_id,用于标识接口号,定义函数,识别当前接口号,将虚拟序列器中对应的序列器成员传给当前序列器。每次构建测试序列前调用此函数,即可实现当前序列的事务都从运行时指定的接口发送,同一组序列在不同测试用例中可灵活切换不同协议类型的接口。
S705、通过调用由读操作任务和写操作任务所组成的至少一个测试序列,得到当前测试接口对应的测试序列;其中,验证组件包括高速总线协议和非高速总线协议。
在本步骤中,soc验证平台可以通过调用由读操作任务和写操作任务所组成的至少一个测试序列,得到当前测试接口对应的测试序列;其中,验证组件包括高速总线协议和非高速总线协议。具体地soc验证平台可以通过soc_base_vseq派生得到test_vseq0、test_vseq1、…、test_vseqN;通过对test_vseq0、test_vseq1、…、test_vseqN进行调用,得到scenario_vseq0、scenario_vseq1、…、scenario_vseqM。
S706、基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果。
在本步骤中,soc验证平台可以基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果。具体地,soc验证平台可以将当前测试接口对应的测试序列中的各个数据包分别发送至待测芯片中,并将各个数据包的编号分别压入至预先定义的队列中;若在各个数据包对应的响应时长内接收到该数据包的正确响应,则soc验证平台可以在队列中删除该数据包的编号;若队列中的全部数据包的编号被删除完,则soc验证平台可以判定待测芯片针对当前测试接口返回的测试结果为验证通过;若队列中的全部数据包的编号未被删除完,则soc验证平台可以判定待测芯片针对当前测试接口返回的测试结果为未验证通过。
图8是本申请实施例提供的数据包编号队列的结构示意图。如图8所示,由于AXI接口需要支持outstanding、out-of-order等特性,即非阻塞发送连续数据包,读操作任务或者写操作任务需要等到一包AXI数据读响应或者写响应返回才能结束,不能连续发出AXI非阻塞数据包。不等待返回又会导致写响应队列溢出和读数据无法收到。因此,需要在读存储器或者写存储器任务中定义队列trans_q,每发送一包AXI数据包将该包编号压入队列,等待该包响应同时并行继续发送后续数据包,实现AXI非阻塞模式发送outstanding。每包收到响应时,会得到该包的编号,将该包编号与队列trans_q中编号顺序比对,若有相等的编号,则从队列trans_q中将此编号删除。对于写存储器任务,非阻塞模式下等待队列trans_q清空才说明本次任务发送的所有数据包全部收到响应,正常结束。对于读存储器空间任务,为收齐所有读数据,先将每包读事务得到的读数据缓存起来,非阻塞模式下等待队列trans_q清空时,将所有本次任务的缓存数据合并可得全部读数据,避免了读数据尚未返回而本次操作提前结束,无法得到全部读数据的问题。实测典型主机读写存储器测试用例,此项优化可将仿真时间压缩为阻塞模式的36.3%。
在本申请的具体实施例中,用户测试序列需要等系统中断时,调用在基类定义的统一中断处理任务,该任务内根据当前master_id和接口协议类型等不同中断源,收到中断后读写、清除中断控制器相关寄存器和状态位。这样用户测试序列只需关注业务,根据需要等中断,而不必关心当前测试序列在不同接口发送时等中断的类型差异。
在本申请的具体实施例中,运行时指定验证平台参数,修改参数无须重新编译。在聚合参数类中定义控制验证平台的参数和部分硬件配置参数,非随机参数都使用系统函数从运行时可执行命令(simv)的命令行提取,在测试用例中+参数指定,由自动化工具传给运行时可执行命令参数,从而实现修改平台参数和寄存器配置无须重新编译。同时,测试用例中可通过重载基类序列的方式实现运行时指定当前测试序列,赋予测试用例构造者更多灵活性。
S707、基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。
在本步骤中,soc验证平台可以基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。具体地,若待测芯片针对各个测试接口返回的测试结果均为验证通过,则soc验证平台可以判定待测芯片通过验证;若待测芯片针对任意一个测试接口返回的测试结果为未验证通过,则soc验证平台可以判定待测芯片未通过验证。
本申请实施例能够显著提高芯片验证工程师开发测试序列和测试用例的效率,同时支持了测试覆盖全部功能场景。AI芯片系统级验证序列常达到数百个,同一组序列在多种接口和场景复用避免了重复开发。测试用例中可修改平台参数而无须重新编译,简化测试用例构造,同时大大缩短了验证迭代时间。同时避免了实际开发中在大量拷贝重复代码的基础上修改,积累的版本差异难以发现导致出错的问题。在项目实践中云端AI芯片系统级验证整体效率提高200%~300%。验证加快收敛使芯片开发时间缩短,更早达到流片状态。
本申请实施例提出的芯片验证方法,先基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;然后基于当前测试接口对应的测试序列,在当前测试接口上对待测芯片进行测试,得到待测芯片针对当前测试接口返回的测试结果;将当前测试接口的下一个测试接口作为当前测试接口,重复执行上述操作,直到得到待测芯片针对各个测试接口返回的测试结果;最后基于待测芯片针对各个测试接口返回的测试结果,判定待测芯片通过验证或者未通过验证。也就是说,本申请中的默认序列具备明确的分层结构,通过调用默认序列中的通用的基础任务,即可构建出满足不同的测试接口需求的测试序列,平台使用者无需针对不同的测试接口分别编写对应的测试序列,同时也无需关注协议底层的实现细节和发送接口的具体参数。而现有的soc仿真验证平台关于测试序列的分层不够明确,平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数。因为本申请采用了基于预先构建的默认序列,针对当前测试接口构建对应的测试序列的技术手段,克服了现有的平台使用者在构建各种应用场景的测试时,不但需要关注测试的功能场景,还要关注协议底层的实现细节和发送接口的具体参数,从而导致的工作量大,验证时间长、缺乏可扩展性等技术问题,本申请提供的技术方案,可以针对不同的接口更加方便地构建出对应的测试序列,从而可以简化用户操作,减少编写测试序列的工作量;并且能够缩短验证时间,增强可扩展性;并且,本申请实施例的技术方案实现简单方便、便于普及,适用范围更广。
实施例四
图9是本申请实施例提供的芯片验证装置的结构示意图。如图9所示,所述装置900包括:构建模块901、测试模块902和验证模块903;其中,
所述构建模块901,用于基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;
所述测试模块902,用于基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果;将所述当前测试接口的下一个测试接口作为所述当前测试接口,重复执行上述操作,直到得到所述待测芯片针对各个测试接口返回的测试结果;
所述验证模块903,用于基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证。
进一步的,所述构建模块901,具体用于接收用户针对所述当前测试接口输入的测试配置参数;其中,所述测试配置参数至少包括接口号标识;基于所述测试配置参数在所述默认序列中获取所述当前测试接口对应的通用的基础任务;其中,所述默认序列包括至少一个通用的基础任务;所述通用的基础任务包括但不限于:读操作任务、写操作任务、初始化程序、中断处理程序;所述读操作任务包括:读寄存器和读存储器;所述写操作任务包括:写寄存器和写存储器;基于所述当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列。
进一步的,所述构建模块901,具体用于基于所述测试配置参数,在预先指定的虚拟序列器中确定所述当前测试接口对应的至少一个虚拟序列器成员;通过所述至少一个虚拟序列器成员以及预先与各个虚拟序列器成员相连接的验证组件,在所述默认序列中获取所述当前测试接口对应的通用的基础任务。
进一步的,所述构建模块901,具体用于基于所述当前测试接口对应的通用的基础任务,得到由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列;通过调用由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列,得到所述当前测试接口对应的测试序列;其中,所述验证组件包括高速总线协议和非高速总线协议。
进一步的,所述测试模块902,具体用于将所述当前测试接口对应的测试序列中的各个数据包分别发送至所述待测芯片中,并将各个数据包的编号分别压入至预先定义的队列中;若在各个数据包对应的响应时长内接收到该数据包的正确响应,则在所述队列中删除该数据包的编号;若所述队列中的全部数据包的编号被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为验证通过;若所述队列中的全部数据包的编号未被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为未验证通过。
进一步的,所述验证模块903,具体用于若所述待测芯片针对各个测试接口返回的测试结果均为验证通过,则判定所述待测芯片通过验证;若所述待测芯片针对任意一个测试接口返回的测试结果为未验证通过,则判定所述待测芯片未通过验证。
上述芯片验证装置可执行本申请任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请任意实施例提供的芯片验证方法。
本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
实施例五
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图10示出了可以用来实施本公开的实施例的示例电子设备1000的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006,例如键盘、鼠标等;输出单元1007,例如各种类型的显示器、扬声器等;存储单元1008,例如磁盘、光盘等;以及通信单元1009,例如网卡、调制解调器、无线通信收发机等。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理,例如芯片验证方法。例如,在一些实施例中,芯片验证方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1001执行时,可以执行上文描述的芯片验证方法的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行芯片验证方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
Claims (12)
1.一种芯片验证方法,所述方法包括:
基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;
基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果;将所述当前测试接口的下一个测试接口作为所述当前测试接口,重复执行上述操作,直到得到所述待测芯片针对各个测试接口返回的测试结果;
基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证;
其中,所述基于预先构建的默认序列,针对当前测试接口构建对应的测试序列,包括:
接收用户针对所述当前测试接口输入的测试配置参数;其中,所述测试配置参数至少包括接口号标识;
基于所述测试配置参数在所述默认序列中获取所述当前测试接口对应的通用的基础任务;其中,所述默认序列包括至少一个通用的基础任务;所述通用的基础任务包括但不限于:读操作任务、写操作任务、初始化程序、中断处理程序;所述读操作任务包括:读寄存器和读存储器;所述写操作任务包括:写寄存器和写存储器;
基于所述当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列。
2.根据权利要求1所述的方法,其中,所述基于所述测试配置参数在所述默认序列中获取所述当前测试接口对应的通用的基础任务,包括:
基于所述测试配置参数,在预先指定的虚拟序列器中确定所述当前测试接口对应的至少一个虚拟序列器成员;
通过所述至少一个虚拟序列器成员以及预先与各个虚拟序列器成员相连接的验证组件,在所述默认序列中获取所述当前测试接口对应的通用的基础任务。
3.根据权利要求2所述的方法,其中,所述基于所述当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列,包括:
基于所述当前测试接口对应的通用的基础任务,得到由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列;
通过调用由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列,得到所述当前测试接口对应的测试序列;其中,所述验证组件包括高速总线协议和非高速总线协议。
4.根据权利要求1所述的方法,其中,所述基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果,包括:
将所述当前测试接口对应的测试序列中的各个数据包分别发送至所述待测芯片中,并将各个数据包的编号分别压入至预先定义的队列中;
若在各个数据包对应的响应时长内接收到该数据包的正确响应,则在所述队列中删除该数据包的编号;
若所述队列中的全部数据包的编号被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为验证通过;若所述队列中的全部数据包的编号未被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为未验证通过。
5.根据权利要求1所述的方法,所述基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证,包括:
若所述待测芯片针对各个测试接口返回的测试结果均为验证通过,则判定所述待测芯片通过验证;若所述待测芯片针对任意一个测试接口返回的测试结果为未验证通过,则判定所述待测芯片未通过验证。
6.一种芯片验证装置,所述装置包括:构建模块、测试模块和验证模块;其中,
所述构建模块,用于基于预先构建的默认序列,针对当前测试接口构建对应的测试序列;
所述测试模块,用于基于所述当前测试接口对应的测试序列,在所述当前测试接口上对待测芯片进行测试,得到所述待测芯片针对所述当前测试接口返回的测试结果;将所述当前测试接口的下一个测试接口作为所述当前测试接口,重复执行上述操作,直到得到所述待测芯片针对各个测试接口返回的测试结果;
所述验证模块,用于基于所述待测芯片针对各个测试接口返回的测试结果,判定所述待测芯片通过验证或者未通过验证;
其中,所述构建模块,具体用于接收用户针对所述当前测试接口输入的测试配置参数;其中,所述测试配置参数至少包括接口号标识;基于所述测试配置参数在所述默认序列中获取所述当前测试接口对应的通用的基础任务;其中,所述默认序列包括至少一个通用的基础任务;所述通用的基础任务包括但不限于:读操作任务、写操作任务、初始化程序、中断处理程序;所述读操作任务包括:读寄存器和读存储器;所述写操作任务包括:写寄存器和写存储器;基于所述当前测试接口对应的通用的基础任务,针对当前测试接口构建对应的测试序列。
7.根据权利要求6所述的装置,所述构建模块,具体用于基于所述测试配置参数,在预先指定的虚拟序列器中确定所述当前测试接口对应的至少一个虚拟序列器成员;通过所述至少一个虚拟序列器成员以及预先与各个虚拟序列器成员相连接的验证组件,在所述默认序列中获取所述当前测试接口对应的通用的基础任务。
8.根据权利要求7所述的装置,所述构建模块,具体用于基于所述当前测试接口对应的通用的基础任务,得到由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列;通过调用由多个所述读操作任务和多个所述写操作任务所组成的至少一个测试序列,得到所述当前测试接口对应的测试序列;其中,所述验证组件包括高速总线协议和非高速总线协议。
9.根据权利要求6所述的装置,所述测试模块,具体用于将所述当前测试接口对应的测试序列中的各个数据包分别发送至所述待测芯片中,并将各个数据包的编号分别压入至预先定义的队列中;若在各个数据包对应的响应时长内接收到该数据包的正确响应,则在所述队列中删除该数据包的编号;若所述队列中的全部数据包的编号被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为验证通过;若所述队列中的全部数据包的编号未被删除完,则所述待测芯片针对所述当前测试接口返回的测试结果为未验证通过。
10.根据权利要求6所述的装置,所述验证模块,具体用于若所述待测芯片针对各个测试接口返回的测试结果均为验证通过,则判定所述待测芯片通过验证;若所述待测芯片针对任意一个测试接口返回的测试结果为未验证通过,则判定所述待测芯片未通过验证。
11. 一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932656.7A CN113656227B (zh) | 2021-08-13 | 2021-08-13 | 一种芯片验证方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932656.7A CN113656227B (zh) | 2021-08-13 | 2021-08-13 | 一种芯片验证方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113656227A CN113656227A (zh) | 2021-11-16 |
CN113656227B true CN113656227B (zh) | 2024-07-19 |
Family
ID=78491601
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932656.7A Active CN113656227B (zh) | 2021-08-13 | 2021-08-13 | 一种芯片验证方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113656227B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114417563A (zh) * | 2021-12-22 | 2022-04-29 | 杭州爱芯元智科技有限公司 | 多核机制的仿真方法、装置和电子设备 |
CN114386365B (zh) * | 2021-12-29 | 2022-09-27 | 北京得瑞领新科技有限公司 | 基于验证平台的数据验证方法、系统及电子设备 |
CN114386366B (zh) * | 2021-12-31 | 2023-03-24 | 北京得瑞领新科技有限公司 | 在ic验证环境中芯片读写性能的自动检测系统和方法 |
CN114338540B (zh) * | 2022-03-17 | 2022-07-15 | 上海国微思尔芯技术股份有限公司 | 信号分流方法、装置、电子设备及存储介质 |
CN114741998A (zh) * | 2022-04-01 | 2022-07-12 | 北京燧原智能科技有限公司 | 一种芯片验证系统、方法、电子设备及存储介质 |
CN115794503A (zh) * | 2022-09-30 | 2023-03-14 | 湖南智存合壹信息科技有限公司 | 一种基于国产cpu主板的高性能测试装置及方法 |
CN115629991B (zh) * | 2022-12-12 | 2023-03-21 | 摩尔线程智能科技(北京)有限责任公司 | 验证环境的复位方法、装置、设备、存储介质和程序产品 |
CN116132186B (zh) * | 2023-02-22 | 2024-02-27 | 广州万协通信息技术有限公司 | 一种安全算法模块的验证方法、装置、电子设备以及存储介质 |
CN117234831B (zh) * | 2023-11-14 | 2024-01-26 | 鹏钛存储技术(南京)有限公司 | 一种基于多核cpu的芯片功能测试方法及系统 |
CN118897810A (zh) * | 2024-10-09 | 2024-11-05 | 北京智芯微电子科技有限公司 | 集成多款芯片的操作系统测试方法、装置及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659199A (zh) * | 2018-06-29 | 2020-01-07 | 中国矿业大学 | 一种基于传递依赖的类集成测试序列生成方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050086565A1 (en) * | 2003-10-01 | 2005-04-21 | Thompson Ryan C. | System and method for generating a test case |
CN110275818B (zh) * | 2018-03-13 | 2024-04-30 | 龙芯中科技术股份有限公司 | 硅后验证方法、装置及存储介质 |
-
2021
- 2021-08-13 CN CN202110932656.7A patent/CN113656227B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110659199A (zh) * | 2018-06-29 | 2020-01-07 | 中国矿业大学 | 一种基于传递依赖的类集成测试序列生成方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113656227A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113656227B (zh) | 一种芯片验证方法、装置、电子设备及存储介质 | |
CN114880977B (zh) | 软硬件联合仿真系统、方法、装置、设备和存储介质 | |
US9317637B2 (en) | Distributed hardware device simulation | |
CN108460199B (zh) | Cni建模系统 | |
CN116821001B (zh) | 输入输出子系统的验证方法、装置、电子设备及介质 | |
CN103927219A (zh) | 可重构专用处理器核的周期精确的仿真模型及其硬件架构 | |
CN113342583A (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
CN116909639B (zh) | 一种挂载系统、方法、集群以及存储介质 | |
CN116028292A (zh) | 用于远程直接内存访问仿真验证的仿真验证系统及方法 | |
CN113127357B (zh) | 单元测试方法、装置、设备、存储介质及程序产品 | |
CN110321288A (zh) | 一种用于飞行器上信息处理系统的仿真测试方法 | |
CN115622896A (zh) | 一种axi4高速总线及多队列仿真验证方法及仿真验证装置 | |
CN116795605B (zh) | 一种外围器件互联扩展设备异常自动恢复系统以及方法 | |
CN118642856A (zh) | 一种数据处理方法及系统、存储介质和电子设备 | |
CN116306408B (zh) | 片上系统soc的验证环境确定方法、装置、设备和存储介质 | |
US7945418B2 (en) | Stream based stimulus definition and delivery via interworking | |
CN113656268B (zh) | 业务服务的性能测试方法、装置、电子设备和存储介质 | |
KR101125365B1 (ko) | Sdl?opnet 코-시뮬레이션 기법을 이용한 통신 프로토콜의 단일 모델 기반 통합 설계 방법 | |
US11630935B1 (en) | Data traffic injection for simulation of circuit designs | |
CN114169287B (zh) | 生成验证环境的连接示意图的方法、电子设备及存储介质 | |
CN115798567A (zh) | 双端口随机存取存储器ram测试方法、装置、设备及介质 | |
CN114429051B (zh) | 数据流芯片的建模方法、装置、设备及介质 | |
US12073155B2 (en) | Method and system for building hardware images from heterogeneous designs for electronic systems | |
CN116451625B (zh) | 用于rtl和带sdf网表的联合仿真的装置和方法 | |
CN118586052A (zh) | 总线互连的验证方法、装置、电子设备、存储介质及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20211111 Address after: Baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100086 Applicant after: Kunlun core (Beijing) Technology Co.,Ltd. Address before: 2 / F, baidu building, No. 10, Shangdi 10th Street, Haidian District, Beijing 100085 Applicant before: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |