CN117093353A - 一种中断控制方法、装置、电子设备及可读存储介质 - Google Patents

一种中断控制方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117093353A
CN117093353A CN202311340376.2A CN202311340376A CN117093353A CN 117093353 A CN117093353 A CN 117093353A CN 202311340376 A CN202311340376 A CN 202311340376A CN 117093353 A CN117093353 A CN 117093353A
Authority
CN
China
Prior art keywords
design
tested
interrupt
condition
software
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
Application number
CN202311340376.2A
Other languages
English (en)
Other versions
CN117093353B (zh
Inventor
石侃
徐烁翔
刁予涵
包云岗
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Open Source Chip Research Institute
Original Assignee
Beijing Open Source Chip Research Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Open Source Chip Research Institute filed Critical Beijing Open Source Chip Research Institute
Priority to CN202311340376.2A priority Critical patent/CN117093353B/zh
Publication of CN117093353A publication Critical patent/CN117093353A/zh
Application granted granted Critical
Publication of CN117093353B publication Critical patent/CN117093353B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种中断控制方法、装置、电子设备及可读存储介质,应用于计算机技术领域,该方法包括:获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;在满足中断条件的情况下,中断所述待测设计的运行;其中,所述中断条件包括以下至少一项:所述第一执行结果与所述第二执行结果不匹配;所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。本发明实施例在硬件验证中可以对待测设计和软件模拟器的执行结果自动进行比较和检查,并自动触发中断,具备更好的调试能力。

Description

一种中断控制方法、装置、电子设备及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种中断控制方法、装置、电子设备及可读存储介质。
背景技术
FPGA加速验证和调试技术在过去的几十年里得到了积极的研究。FPGA加速模拟器通常用于进行建筑设计和空间探索。例如,RAMP Gold是一个运行在FPGA上的循环精确的全系统模拟器,它将给定指令集架构(Instruction Set Architecture,ISA)的时间模型和功能模型分开,以在保持性能的同时获得更好的灵活性。FireSim提供了使用FPGA加速的周期精确模拟,部署在AWS EC2 F1上,改进了可用性。FPGA还可以用于加速特定领域的验证,如机器学习、内存和物联网。在原型验证中,还可以利用特定的FPGA特性来加速调试过程。例如,利用回读技术在操作期间创建检查点,并将待测设计的状态信息移动到外部软件模拟器,如Model Sim进行进一步调试。然而,相关技术主要关注如何停止待测设计,以获取状态信息,并未研究何时智能地停止待测设计。
发明内容
本发明实施例提供一种中断控制方法、装置、电子设备及可读存储介质,可以解决相关技术中需要人工设置检查点或快照点,无法自动停止待测设计问题。
为了解决上述问题,本发明实施例公开了一种中断控制方法,所述方法包括:
获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中;
在满足中断条件的情况下,中断所述待测设计的运行;
其中,所述中断条件包括以下至少一项:
所述第一执行结果与所述第二执行结果不匹配;
所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
另一方面,本发明实施例公开了一种中断控制装置,所述装置包括:
获取模块,用于获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中;
第一中断模块,用于在满足中断条件的情况下,中断所述待测设计的运行;
其中,所述中断条件包括以下至少一项:
所述第一执行结果与所述第二执行结果不匹配;
所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的中断控制方法。
本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的中断控制方法。
本发明实施例包括以下优点:
本发明实施例提供了一种中断控制方法,在对待测设计进行硬件验证的过程中,可以根据待测设计对基准测试程序的第一执行结果与软件模拟器对基准测试程序的第二执行结果是否匹配、硬件缓冲区和软件缓冲区的数据存储情况,确定何时停止待测设计,无需再由测试人员手动设置检查点或断点,相比于传统的FPGA原型基于设定的检查点或快照点,只捕获有效数量的信号,采用本发明实施例提供的中断控制方法的FPGA芯片,在硬件验证中可以对待测设计和软件模拟器的执行结果自动进行比较和检查,并自动触发中断,具备更好的调试能力。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种中断控制方法实施例的步骤流程图;
图2是本发明的一种差分验证框架的架构示意图;
图3是本发明的一种中断控制装置的结构框图;
图4是本发明示例提供的一种用于中断控制的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
方法实施例
参照图1,示出了本发明的一种中断控制方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果。
步骤102、在满足中断条件的情况下,中断所述待测设计的运行。
其中,所述中断条件包括以下至少一项:
A1、所述第一执行结果与所述第二执行结果不匹配;
A2、所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
A3、所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
需要说明的是,待测设计(Design Under Test,DUT)指的是原型验证中待测试的电路设计或实现。软件模拟器(Emulator,EMU)是以高级语言编写以模拟CPU的运行状态的软件程序。在本发明实施例中,软件模拟器作为待测设计的参考模型,运行在可编程逻辑芯片(Field Programmable Gate Array,FPGA)的处理系统中。FPGA芯片(或FPGA片上系统),不仅包含可编程门阵列电路,还包含一个或多个片上处理器。其中,可编程门阵列电路通常称为可编程逻辑(Programmable Logic,PL);片上处理器通常为ARM处理器,称为处理系统(Processing System,PS)。在本发明实施例中,所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中。
基准测试程序包含了一系列程序,用于测试待测设计的性能或其正确性。在本发明实施例中,可以在FPGA芯片上运行待测设计和软件模拟器,由待测设计和软件模拟器分别执行相同的基准测试程序,并对待测设计的第一执行结果和软件模拟器的第二执行结果进行比较,判断待测设计是否存在错误,进而对错误进行调试和修复。
需要说明的是,在本发明实施例中,第一执行结果可以包括待测设计运行时产生的CPU状态信息,第二执行结果可以包括软件模拟器运行时产生的CPU状态信息。待测设计和软件模拟运行相同的基准测试程序,且待测设计和软件模拟器可以通过片上总线保持指令级运行同步。其中,CPU状态信息可以包括程序指针的数值、通用寄存器数值等,在实际应用中,可以根据实际情况和具体的验证需求指定CPU状态信息的具体内容。
在验证过程中,如果满足A1至A3中的至少一项中断条件,就可以中断待测设计的运行。
针对A1项,如果第一执行结果与第二执行结果不匹配,说明待测设计存在错误,此时需要中断待测设计的运行,并对待测设计中潜在的设计缺陷进行调试和修复。例如,可以通过硬件快照机制,对出错现场的状态信息进行快速保存、转换,并导入仿真软件中,利用仿真软件进行细粒度调试。
针对A2项,如果待测设计对应的硬件缓冲区已满,此时已经无法继续将待测设计的运行数据写入硬件缓冲区中了,所以需要中断待测设计,等待硬件缓冲区释放已记录的数据。
针对A3项,如果软件模拟器对应的软件缓冲区为空,此时无法对待测设计和软件模拟器的执行结果进行比较,需要中断待测设计,等待软件模拟其执行基准测试程序中的指令并将运行数据写入软件缓冲区中。
在本发明实施例中,基于A1至A3对应的中断条件,验证平台或验证系统就可以自动确定何时停止待测设计,无需再由测试人员手动设置检查点或断点。
作为一种示例,本发明实施例提供的中断控制方法,可以应用于差分验证框架。参照图2,示出了本发明提供的一种差分验证框架的架构示意图。如图2所示,该差分验证框架包括硬件设施和软件设施,其中,硬件设施运行在FPGA芯片的可编程逻辑区域,也即PL端,软件设施运行在FPGA芯片的处理系统中,也即PS端。硬件设施具体可以包括:检查器、快照和中断控制器。其中,检查器用于收集测试数据并实现对待测设计的检测。快照和中断控制器用于创建待测设计的快照并启动中断。软件设施具体可以包括内存控制器、软件模拟器和驱动程序。其中,内存控制器可以实现待测设计、软件模拟器对内存的访问,以及待测设计对外部设备的访问。驱动程序可以从寄存器中监视和获取关键信号和数据、对数据包进行压缩,以更有效地传输数据、管理待测设计对外部设备的访问、管理FPGA芯片中PL端和PS端的数据通信、处理来自PL端的中断请求,等等。需要说明的是,本发明中的外部设备,指的是搭载在FPGA芯片上,既不属于PL端,也不属于PS端的设备,如双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR)、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,URAT),等等。
此外,在图2所示的差分验证框架中,软件模拟器是为一个给定的ISA设计的,例如RISC-V,它通过只提供执行指令的功能模型来抽象硬件的实现细节。需要说明的是,软件模拟器与实际的硬件实现是无关的,因此,当对硬件DUT进行修改时,只要底层ISA保持不变,就不必替换软件模拟器。即使对于像RISC-V这样能够合并指令扩展的指令集架构,在软件模拟器中支持扩展指令也比在实际的硬件实现中更简单。利用图2所示的差分验证框架对待测设计进行验证,可以直接在软件模拟器中实现自动的仿真环境重建,无需搭建完整的软件测试平台,减少了前期平台搭建的工作量,有利于提升验证效率。
进一步地,差分验证框架中还可以包括基础设施模块,该基础设施模块用于为待测设计DUT提供一个带有占位符的外壳结构,以便实现DUT与检查器、快照和中断控制器、软件模拟器、外部设备等之间的交互。示例性地,该基础设施模块可以包含两个外部接口:连接外部存储器的AXI-MEM总线,以及连接UART和GPIO等其他外部设备的AXI-MMIO总线。该基础设施模块负责维护FPGA芯片上的PL和PS之间的通信,通常可以传输三种类型的数据:来自软件模拟器的执行结果、来自外部设备(如DDR)的指令和数据,以及来快照和中断控制器产生的中断测试的中断信号。
检查器可以实现以下功能:对于待测设计和软件模拟器,监视指定的关键信号,并在运行时动态地收集待测设计和软件模拟器的执行结果;支持待测设计和软件模拟器之间的指令级同步,以确保在待测设计和软件模拟器执行基准测试程序的每条指令后正确的比较两者的执行结果;对待测设计对基准测试程序的第一执行结果和软件模拟器的第二执行结果进行比较,判断第一执行结果与第二执行结果是否存在不匹配的问题,并在第一执行结果和第二执行结果不匹配时发出异常提醒,等等。
检查器中针对待测设计配置有硬件缓冲区,用于记录待测设计的运行数据;针对软件模拟器也同样配置有软件缓冲区,用于记录软件模拟器的运行数据。
在一种可能的实现场景中,待测设计从内存中加载基准测试程序并执行,每执行一条指令后,将第一执行结果写入硬件缓冲区。软件模拟器在启动后,执行基准测试程序,并在执行每一条执行后,通过驱动程序将第二执行结果写入软件缓冲区。检查器对第一执行结果和第二执行结果进行差分比较,如果第一执行结果和第二执行结果不匹配,也即待测设计和软件模拟器针对基准测试程序中的同一条指令,出现了不同的执行结果,那么检查器就可以中断待测设计和软件模拟器的运行。此外,如果硬件缓冲区已满,和/或,软件缓冲区为空,检查器也可以中断待测设计的运行。
如果测试人员需要设置检查点或快照点,对特定的信号或状态信息进行监测,可以通过图2中的快照和中断控制器设置检查点或快照点,以便在待测设计和软件模拟器运行至检查点或快照点后,中断待测设计和软件模拟器的运行,并启动硬件快照机制,对FPGA芯片的状态信息进行快照保存,如飞拖、片上内存、DSP、外部设备等的状态信息,以便利用仿真软件进行仿真。
在本发明的一种可选实施例中,步骤102所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
步骤S11、在所述待测设计对应的硬件缓冲区已满的情况下,中断所述待测设计的运行,等待所述硬件缓冲区释放数据,并启动中断计时器;
步骤S12、在所述中断计时器的数值大于或等于预设值的情况下,检查所述硬件缓冲区是否存在空闲区域;
步骤S13、在所述硬件缓冲区存在空闲区域的情况下,恢复所述待测设计的运行;
步骤S14、在所述硬件缓冲区不存在空闲区域的情况下,继续中断所述待测设计的运行并等待所述硬件缓冲区释放数据。
如果待测设计对应的硬件缓冲区已满,此时已经无法继续将待测设计的运行数据写入硬件缓冲区,需要中断待测设计的运行,等待硬件缓冲区释放数据。
在本发明实施例中,检查器无需频繁检测硬件缓冲区是否存在空闲区域,只需要在中断计时器的数值大于或等于预设值的情况下,检查硬件缓冲区是否存在空闲区域。然后,在硬件缓冲区存在空闲区域的情况下,恢复待测设计的运行;在硬件缓冲区仍然不存在空闲区域的情况下,继续中断待测设计的运行并等待硬件缓冲区释放数据。
可以理解的是,硬件缓冲区的空闲存储空间越小,待测设计就会因硬件缓冲区已满频繁发生中断,而频繁发生中断会导致硬件开销增大,且容易出错。因此,在本发明实施例中,可以通过中断计时器来控制因硬件缓冲区已满导致待测设计中断的最短时限。例如,在中断计时器的初始值为0,进行正向计时的情况下,设置一个较大的预设值;或者,如果中断计时器采用倒计时的方式,则可以设置一个较大的初始值。作为一种示例,中断计时器可以为计数器,初始值为0,每经过一个时钟周期,该计数器的计数值加1,预设值可以为N,N为正整数,例如,N=32。
可选地,所述方法还包括:在监测到所述软件模拟器对应的软件缓冲区已满的情况下,中断所述软件模拟器的运行。
如果监测到软件模拟器对应的软件缓冲区已满,此时已经无法继续将软件模拟器的运行数据写入软件缓冲区,需要中断软件模拟器的运行,等待软件缓冲区释放数据。
在本发明的另一种可选实施例中,步骤102所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
步骤S21、在所述第一执行结果与所述第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行;
步骤S22、触发硬件快照机制,以保存所述可编程逻辑芯片的状态信息;
步骤S23、将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试和修复。
如果待测设计的第一执行结果与软件模拟器的第二执行结果不匹配,说明待测设计存在错误,此时需要中断待测设计的运行。然后,触发硬件快照机制,对FPGA芯片的状态信息进行保存,并将保存的状态信息导入仿真软件中进行仿真,以对待测设计进行调试和修复。
以图2所示的差分验证框架为例,如果检查器确定待测设计的第一执行结果与软件模拟器的第二执行结果不匹配,则向待测设计和软件模拟器发送中断信号。同时,检查器将中断信号传递给控制器,控制器在待测设计和软件模拟器都安全暂停后创建整个FPGA芯片的快照,其中包含当前时刻的设计状态,如片上寄存器的值、来自BRAM的内容、分布式内存中的数据、外部设备的内容,等等。
可选地,为了减小开销,可以不读取整个外部设备,如DDR,而是只读取为外部设备预分配的地址空间。
在本发明的一种可选实施例中,步骤102所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
步骤S31、在满足至少两个所述中断条件的情况下,根据各个中断条件的优先级确定目标中断条件;
步骤S32、按照所述目标中断条件对应的中断管理机制对所述待测设计进行中断控制。
在对待测设计的验证过程中,本发明实施例前述A1至A3项对应的中断条件有可能会同时满足多个,当不同中断条件同时满足时,可以根据各个中断条件的优先级从中确定一个目标中断条件,然后按照目标中断条件对应的中断管理机制对待测设计进行中断控制。
可以理解的是,在本发明实施例中,通常情况下A1的优先级高于A2的优先级高于A3的优先级。
示例性地,如果同时满足A1和A2对应的中断条件,则将A1确定为目标中断条件,按照前述步骤S21至步骤S23对应的中断管理机制对待测设计进行中断控制。如果同时满足A2和A3对应的中断条件,则将A2确定为目标中断条件,按照前述步骤S11至步骤S14对应的中断管理机制对待测设计进行中断控制。
在本发明的一种可选实施例中,所述获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果之前,所述方法还包括:
步骤S41、在监测到所述待测设计对所述基准测试程序中的第一条指令的执行结果写入所述硬件缓冲区的情况下,向所述待测设计发送中断信号,以暂停所述待测设计的运行;
步骤S42、在监测到所述软件模拟器针对所述第一条指令的执行结果写入所述软件缓冲区的情况下,向所述待测设计发送中断释放信号,以触发所述待测设计继续执行所述基准测试程序中的指令。
在验证过程中,待测设计从内存中加载基准测试程序并执行,每执行一条指令后,将第一执行结果写入硬件缓冲区。软件模拟器在接收到用户的启动指令后启动,开始执行基准测试程序。通常情况下,在硬件模拟器执行第一条指令并将执行结果写入硬件缓冲区期间,软件模拟器还未执行完第一条指令,此时软件缓冲区为空,触发对待测设计的中断,等待初始同步。在监测到软件模拟器针对第一条指令的执行结果写入软件缓冲区的情况下,也即软件缓冲区中填充了第一组运行数据,此时就可以释放待测设计的中断,触发待测设计继续执行基准测试程序中的指令,完成初始同步。
示例性地,在图2所示的差分验证框架中,一旦待测设计运行,就会将运行数据写入检查器中的硬件缓冲区。检查器会检查软件缓冲区是否为空。如果软件缓冲区为空,说明此时软件模拟器尚未启动,可以由检查器向待测设计发送中断信号,暂停待测设计的运行,等待初始同步。当软件模拟器启动后,检查器通过驱动程序获取软件模拟器的运行数据,并将获取的运行数据写入软件缓冲区。一旦软件缓冲区中填入了第一组数据,检查器就可以向待测设计发送中断释放信号,触发待测设计继续运行,完成初始同步。
在本发明的一种可选实施例中,所述方法还包括:
步骤S51、在监测到所述待测设计访问外部设备的情况下,中断所述软件模拟器的运行;
步骤S52、在监测到所述待测设计访问完成的情况下,恢复所述软件模拟器的运行。
当待测设计试图访问外部设备,如DDR和UART等外部设备时,待测设计与软件模拟器的同步可能会中断,因为软件模拟器不提供这种访问的周期精确模型。为了解决这个问题,可以在待测设计运行期间监视待测设计对外部设备的访问。一旦监测到待测设计访问外部设备,就可以触发对软件模拟器的特殊中断,以暂停其运行并等待访问完成。一旦待测设计对外部设备的访问完成,就可以释放对软件模拟器的中断,恢复软件模拟器的运行。
进一步地,可以将待测设计从外部设备读取的数据传递给软件模拟器,以恢复双方的同步操作。
可选地,步骤S52所述在监测到所述待测设计访问外部设备的情况下,中断所述软件模拟器的运行,包括:在监测到所述待测设计访问外部设备的情况下,若所述待测设计通过第一收发器进行数据输出,则中断所述软件模拟器的运行,并中断所述软件模拟器的第二收发器的数据输出,直至所述第一收发器空闲的情况下,恢复所述第二收发器的数据输出。
在对待测设计进行验证时,遇到待测设计访问外部设备的情况,如果需要使用收发器,如UART进行输出,由于待测设计和软件模拟器访问外部设备的速度存在差异,设置的硬件缓冲区和软件缓冲区的大小也有差异,因此在验证过程中可能会出现硬件缓冲区已满,待测设计需要中断进入循环等待,而软件缓冲区未满,可以进行数据输出,这就会造成待测设计和软件模拟器在运行相同的程序时出现不同的指令流,也即运行不同步。
在本发明实施例中,在监测到待测设计访问外部设备的情况下,如果待测设计通过第一收发器进行数据输出,可以中断软件模拟器的运行,并中断软件模拟器的第二收发器的数据输出,等待待测设计的第一收发器空闲时才恢复第二收发器的数据输出。对于不同的外部设备,可以使用类似的方法,以屏蔽软件模拟器和待测设计的外部设备驱动所带来的影响,保证外部设备的状态改变不会影响对待测设计和软件模拟器的执行结果的正确比对。
综上,本发明实施例提供了一种中断控制方法,在对待测设计进行硬件验证的过程中,可以根据待测设计对基准测试程序的第一执行结果与软件模拟器对基准测试程序的第二执行结果是否匹配、硬件缓冲区和软件缓冲区的数据存储情况,确定何时停止待测设计,无需再由测试人员手动设置检查点或断点,相比于传统的FPGA原型基于设定的检查点或快照点,只捕获有效数量的信号,采用本发明实施例提供的中断控制方法的FPGA芯片,在硬件验证中可以对待测设计和软件模拟器的执行结果自动进行比较和检查,并自动触发中断,具备更好的调试能力。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图3,示出了本发明的一种中断控制装置的结构框图,所述装置具体可以包括:
获取模块301,用于获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中;
第一中断模块302,用于在满足中断条件的情况下,中断所述待测设计的运行;
其中,所述中断条件包括以下至少一项:
所述第一执行结果与所述第二执行结果不匹配;
所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
可选地,所述第一中断模块,包括:
第一控制子模块,用于在所述待测设计对应的硬件缓冲区已满的情况下,中断所述待测设计的运行,等待所述硬件缓冲区释放数据,并启动中断计时器;
检查子模块,用于在所述中断计时器的数值大于或等于预设值的情况下,检查所述硬件缓冲区是否存在空闲区域;
第二控制子模块,用于在所述硬件缓冲区存在空闲区域的情况下,恢复所述待测设计的运行;
第三控制子模块,用于在所述硬件缓冲区不存在空闲区域的情况下,继续中断所述待测设计的运行并等待所述硬件缓冲区释放数据。
可选地,所述第一中断模块,包括:
中断子模块,用于在所述第一执行结果与所述第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行;
快照子模块,用于触发硬件快照机制,以保存所述可编程逻辑芯片的状态信息;
信息导入子模块,用于将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试和修复。
可选地,所述第一中断模块,包括:
确定子模块,用于在满足至少两个所述中断条件的情况下,根据各个中断条件的优先级确定目标中断条件;
管理子模块,用于按照所述目标中断条件对应的中断管理机制对所述待测设计进行中断控制。
可选地,所述装置还包括:
第一发送模块,用于在监测到所述待测设计对所述基准测试程序中的第一条指令的执行结果写入所述硬件缓冲区的情况下,向所述待测设计发送中断信号,以暂停所述待测设计的运行;
第二发送模块,用于在监测到所述软件模拟器针对所述第一条指令的执行结果写入所述软件缓冲区的情况下,向所述待测设计发送中断释放信号,以触发所述待测设计继续执行所述基准测试程序中的指令。
可选地,所述装置还包括:
第二中断模块,用于在监测到所述待测设计访问外部设备的情况下,中断所述软件模拟器的运行;
恢复模块,用于在监测到所述待测设计访问完成的情况下,恢复所述软件模拟器的运行。
可选地,所述第二中断模块,包括:
第四控制子模块,用于在监测到所述待测设计访问外部设备的情况下,若所述待测设计通过第一收发器进行数据输出,则中断所述软件模拟器的运行,并中断所述软件模拟器的第二收发器的数据输出,直至所述第一收发器空闲的情况下,恢复所述第二收发器的数据输出。
可选地,所述装置还包括:
第三中断模块,用于在监测到所述软件模拟器对应的软件缓冲区已满的情况下,中断所述软件模拟器的运行。
综上,本发明实施例提供了一种中断控制装置,在对待测设计进行硬件验证的过程中,可以根据待测设计对基准测试程序的第一执行结果与软件模拟器对基准测试程序的第二执行结果是否匹配、硬件缓冲区和软件缓冲区的数据存储情况,确定何时停止待测设计,无需再由测试人员手动设置检查点或断点,相比于传统的FPGA原型基于设定的检查点或快照点,只捕获有效数量的信号,采用本发明实施例提供的中断控制方法的FPGA芯片,在硬件验证中可以对待测设计和软件模拟器的执行结果自动进行比较和检查,并自动触发中断,具备更好的调试能力。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的处理器,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
参照图4,是本发明实施例提供的一种用于中断控制的电子设备的结构框图。如图4所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述实施例的中断控制方法。
所述处理器可以是CPU(Central Processing Unit,中央处理器),通用处理器、DSP(Digital Signal Processor,数字信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmble Gate Array,现场可编程门阵列)或者其他可编辑器件、晶体管逻辑器件、硬件部件或者其任意组合。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
所述通信总线可包括一通路,在存储器和通信接口之间传送信息。通信总线可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以是ROM(Read Only内存,只读内存)或可存储静态信息和指令的其他类型的静态存储设备、RAM(Random Access,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable Programmable ReadOnly,电可擦可编程只读内存)、CD-ROM(Compact Disa Read Only,只读光盘)、磁带、软盘和光数据存储设备等。
本发明实施例还提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由电子设备(服务器或者终端)的处理器执行时,使得处理器能够执行图1所示的中断控制方法。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种中断控制方法、装置、电子设备及可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (15)

1.一种中断控制方法,其特征在于,所述方法包括:
获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中;
在满足中断条件的情况下,中断所述待测设计的运行;
其中,所述中断条件包括以下至少一项:
所述第一执行结果与所述第二执行结果不匹配;
所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
2.根据权利要求1所述的方法,其特征在于,所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
在所述待测设计对应的硬件缓冲区已满的情况下,中断所述待测设计的运行,等待所述硬件缓冲区释放数据,并启动中断计时器;
在所述中断计时器的数值大于或等于预设值的情况下,检查所述硬件缓冲区是否存在空闲区域;
在所述硬件缓冲区存在空闲区域的情况下,恢复所述待测设计的运行;
在所述硬件缓冲区不存在空闲区域的情况下,继续中断所述待测设计的运行并等待所述硬件缓冲区释放数据。
3.根据权利要求1所述的方法,其特征在于,所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
在所述第一执行结果与所述第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行;
触发硬件快照机制,以保存所述可编程逻辑芯片的状态信息;
将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试和修复。
4.根据权利要求1所述的方法,其特征在于,所述在满足中断条件的情况下,中断所述待测设计的运行,包括:
在满足至少两个所述中断条件的情况下,根据各个中断条件的优先级确定目标中断条件;
按照所述目标中断条件对应的中断管理机制对所述待测设计进行中断控制。
5.根据权利要求1所述的方法,其特征在于,所述获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果之前,所述方法还包括:
在监测到所述待测设计对所述基准测试程序中的第一条指令的执行结果写入所述硬件缓冲区的情况下,向所述待测设计发送中断信号,以暂停所述待测设计的运行;
在监测到所述软件模拟器针对所述第一条指令的执行结果写入所述软件缓冲区的情况下,向所述待测设计发送中断释放信号,以触发所述待测设计继续执行所述基准测试程序中的指令。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在监测到所述待测设计访问外部设备的情况下,中断所述软件模拟器的运行;
在监测到所述待测设计访问完成的情况下,恢复所述软件模拟器的运行。
7.根据权利要求6所述的方法,其特征在于,所述在监测到所述待测设计访问外部设备的情况下,中断所述软件模拟器的运行,包括:
在监测到所述待测设计访问外部设备的情况下,若所述待测设计通过第一收发器进行数据输出,则中断所述软件模拟器的运行,并中断所述软件模拟器的第二收发器的数据输出,直至所述第一收发器空闲的情况下,恢复所述第二收发器的数据输出。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在监测到所述软件模拟器对应的软件缓冲区已满的情况下,中断所述软件模拟器的运行。
9.一种中断控制装置,其特征在于,所述装置包括:
获取模块,用于获取待测设计对基准测试程序的第一执行结果和软件模拟器对所述基准测试程序的第二执行结果;所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中;
第一中断模块,用于在满足中断条件的情况下,中断所述待测设计的运行;
其中,所述中断条件包括以下至少一项:
所述第一执行结果与所述第二执行结果不匹配;
所述待测设计对应的硬件缓冲区已满;所述硬件缓冲区用于记录所述待测设计的运行数据;
所述软件模拟器对应的软件缓冲区为空;所述软件缓冲区用于记录所述软件模拟器的运行数据。
10.根据权利要求9所述的装置,其特征在于,所述第一中断模块,包括:
第一控制子模块,用于在所述待测设计对应的硬件缓冲区已满的情况下,中断所述待测设计的运行,等待所述硬件缓冲区释放数据,并启动中断计时器;
检查子模块,用于在所述中断计时器的数值大于或等于预设值的情况下,检查所述硬件缓冲区是否存在空闲区域;
第二控制子模块,用于在所述硬件缓冲区存在空闲区域的情况下,恢复所述待测设计的运行;
第三控制子模块,用于在所述硬件缓冲区不存在空闲区域的情况下,继续中断所述待测设计的运行并等待所述硬件缓冲区释放数据。
11.根据权利要求9所述的装置,其特征在于,所述第一中断模块,包括:
中断子模块,用于在所述第一执行结果与所述第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行;
快照子模块,用于触发硬件快照机制,以保存所述可编程逻辑芯片的状态信息;
信息导入子模块,用于将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试和修复。
12.根据权利要求9所述的装置,其特征在于,所述第一中断模块,包括:
确定子模块,用于在满足至少两个所述中断条件的情况下,根据各个中断条件的优先级确定目标中断条件;
管理子模块,用于按照所述目标中断条件对应的中断管理机制对所述待测设计进行中断控制。
13.根据权利要求9所述的装置,其特征在于,所述装置还包括:
第一发送模块,用于在监测到所述待测设计对所述基准测试程序中的第一条指令的执行结果写入所述硬件缓冲区的情况下,向所述待测设计发送中断信号,以暂停所述待测设计的运行;
第二发送模块,用于在监测到所述软件模拟器针对所述第一条指令的执行结果写入所述软件缓冲区的情况下,向所述待测设计发送中断释放信号,以触发所述待测设计继续执行所述基准测试程序中的指令。
14.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至8中任一项所述的中断控制方法。
15.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得所述处理器能够执行如权利要求1至8中任一项所述的中断控制方法。
CN202311340376.2A 2023-10-17 2023-10-17 一种中断控制方法、装置、电子设备及可读存储介质 Active CN117093353B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311340376.2A CN117093353B (zh) 2023-10-17 2023-10-17 一种中断控制方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311340376.2A CN117093353B (zh) 2023-10-17 2023-10-17 一种中断控制方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117093353A true CN117093353A (zh) 2023-11-21
CN117093353B CN117093353B (zh) 2024-02-02

Family

ID=88771972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311340376.2A Active CN117093353B (zh) 2023-10-17 2023-10-17 一种中断控制方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117093353B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828550A (zh) * 2005-02-28 2006-09-06 中国科学院计算技术研究所 一种内存访问信息实时捕获装置及访存信息捕获方法
US20070226740A1 (en) * 2006-02-28 2007-09-27 Xiao-Feng Li Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems
CN101369241A (zh) * 2007-09-21 2009-02-18 中国科学院计算技术研究所 一种机群容错系统、装置及方法
CN102521444A (zh) * 2011-12-08 2012-06-27 青岛海信信芯科技有限公司 软硬件协同仿真/验证方法及装置
CN115686961A (zh) * 2022-10-31 2023-02-03 北京奕斯伟计算技术股份有限公司 处理器测试方法、装置及电子设备
CN115905012A (zh) * 2022-12-23 2023-04-04 博流智能科技(南京)有限公司 嵌入式系统软件开发场景下的调试分析系统、方法、电子设备及存储介质
CN116663462A (zh) * 2023-07-27 2023-08-29 北京开源芯片研究院 断言验证方法、断言验证平台、电子设备及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828550A (zh) * 2005-02-28 2006-09-06 中国科学院计算技术研究所 一种内存访问信息实时捕获装置及访存信息捕获方法
US20070226740A1 (en) * 2006-02-28 2007-09-27 Xiao-Feng Li Method and apparatus for global breakpoint for parallel debugging on multiprocessor systems
CN101369241A (zh) * 2007-09-21 2009-02-18 中国科学院计算技术研究所 一种机群容错系统、装置及方法
CN102521444A (zh) * 2011-12-08 2012-06-27 青岛海信信芯科技有限公司 软硬件协同仿真/验证方法及装置
CN115686961A (zh) * 2022-10-31 2023-02-03 北京奕斯伟计算技术股份有限公司 处理器测试方法、装置及电子设备
CN115905012A (zh) * 2022-12-23 2023-04-04 博流智能科技(南京)有限公司 嵌入式系统软件开发场景下的调试分析系统、方法、电子设备及存储介质
CN116663462A (zh) * 2023-07-27 2023-08-29 北京开源芯片研究院 断言验证方法、断言验证平台、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN117093353B (zh) 2024-02-02

Similar Documents

Publication Publication Date Title
US8589892B2 (en) Verification of speculative execution
US11010505B2 (en) Simulation of virtual processors
WO2010122007A1 (en) Improving functional coverage using combinational test design
US20140019929A1 (en) Partial Instruction-by-instruction checking on acceleration platforms
US9355003B2 (en) Capturing trace information using annotated trace output
US8990622B2 (en) Post-silicon validation using a partial reference model
US9600398B2 (en) Method and apparatus for debugging HDL design code and test program code
US10073933B2 (en) Automatic generation of properties to assist hardware emulation
US8117499B2 (en) Generation of a stimuli based on a test template
CN112417798A (zh) 一种时序测试方法、装置、电子设备及存储介质
CN117094269B (zh) 一种验证方法、装置、电子设备及可读存储介质
US10228422B2 (en) Driving pervasive commands using breakpoints in a hardware-accelerated simulation environment
US8739091B1 (en) Techniques for segmenting of hardware trace and verification of individual trace segments
CN109783837A (zh) 仿真设备、仿真系统、仿真方法和仿真程序
CN117093353B (zh) 一种中断控制方法、装置、电子设备及可读存储介质
CN115470125B (zh) 基于日志文件的调试方法、设备以及存储介质
US8903700B2 (en) Concretization of abstracted traces
CN112506806B (zh) 用于调试程序的方法、电子设备及存储介质
US9946624B1 (en) Systems and methods to capture data signals from a dynamic circuit
CN112527571B (zh) 一种cpu指令集覆盖率计算方法及装置
CN116048887A (zh) 一种芯片验证方法及装置、系统、电子设备、存储介质
US20050108596A1 (en) Method of verifying circuitry used for testing a new logic component prior to the first release of the component
US9218272B2 (en) System level architecture verification of a transactional execution
JP2003271694A (ja) プロセッサを含む論理回路の検証用シミュレーション方法及び装置並びに論理回路検証用エラー検出プログラム
CN117113907B (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
GR01 Patent grant
GR01 Patent grant