CN117094269A - 一种验证方法、装置、电子设备及可读存储介质 - Google Patents

一种验证方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117094269A
CN117094269A CN202311345104.1A CN202311345104A CN117094269A CN 117094269 A CN117094269 A CN 117094269A CN 202311345104 A CN202311345104 A CN 202311345104A CN 117094269 A CN117094269 A CN 117094269A
Authority
CN
China
Prior art keywords
design
tested
state information
snapshot
programmable logic
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
CN202311345104.1A
Other languages
English (en)
Other versions
CN117094269B (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 CN202311345104.1A priority Critical patent/CN117094269B/zh
Publication of CN117094269A publication Critical patent/CN117094269A/zh
Application granted granted Critical
Publication of CN117094269B publication Critical patent/CN117094269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/367Design verification, e.g. using simulation, simulation program with integrated circuit emphasis [SPICE], direct methods or relaxation methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/36Circuit design at the analogue level
    • G06F30/373Design optimisation
    • 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)
  • 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)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明实施例提供一种验证方法、装置、电子设备及可读存储介质,涉及计算机技术领域,该方法包括:利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中;在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息;根据所述第一状态信息修改所述待测设计对应的比特流文件;根据所述比特流文件将所述状态信息写回至所述可编程逻辑芯片中;重新运行所述待测设计,以继续对所述待测设计进行验证。本发明实施例利用FPGA加速提升了验证效率,并在验证过程中,利用仿真软件对待测设计进行调试,保证了仿真的自由度和调试效率。

Description

一种验证方法、装置、电子设备及可读存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种验证方法、装置、电子设备及可读存储介质。
背景技术
在现如今越来越复杂的硬件设计中,验证渐渐地占据里整个芯片开发流程里最大的一部分时间。虽然软件仿真可以提供对于整个设计里各种信号的高可视程度来帮助开发者们进行调试,但是软件仿真运行的速度过于慢,变相地拉低了整个仿真环节的效率。比如对于现如今通常可以跑到几千兆赫兹(GHz)的处理器进行软件仿真时,这些仿真软件通常只能运行至几千赫兹(KHz)。
在相关技术中,用 FPGA 加速验证的方法相比较基于软件的方式已经展现出了非常高的性能。在工业界里,将 FPGA 加速用于硅前验证已经非常广泛。 FPGA 加速可以直接将验证模块的 RTL 设计加载至 FPGA 上,而不用去搭写仿真模型,这个效率往往可以达到几百兆赫兹(MHz)。但是这些方案对于设计的细节拥有非常低的可视程度,这样子的话,对于开发者而言非常难以定位错误发生的地方。虽然工业界已经在逐渐提供一些工具可以帮助开发者看到硬件运行时的一些信号但是这些往往达不到软件仿真时的自由度以及调试效率。
发明内容
本发明实施例提供一种验证方法、装置、电子设备及可读存储介质,可以解决相关技术中FPGA加速难以定位设计错误位置,软件仿真的验证效率低的问题。
为了解决上述问题,本发明实施例公开了一种验证方法,所述方法包括:
利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中;
在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息;
根据所述第一状态信息修改所述待测设计对应的比特流文件;
根据所述比特流文件将所述状态信息写回至所述可编程逻辑芯片中;
重新运行所述待测设计,以继续对所述待测设计进行验证。
另一方面,本发明实施例公开了一种验证装置,所述装置包括:
调试模块,用于利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中;
读取模块,用于在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息;
修改模块,用于根据所述第一状态信息修改所述待测设计对应的比特流文件;
写回模块,用于根据所述比特流文件将所述状态信息写回至所述可编程逻辑芯片中;
验证模块,用于重新运行所述待测设计,以继续对所述待测设计进行验证。
再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的验证方法。
本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的验证方法。
本发明实施例包括以下优点:
在本发明实施例中,将待测设计烧录到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,利用仿真软件对待测设计进行调试,保证了仿真的自由度和调试效率;本发明实施例将调试后得到的第一状态信息写回到FPGA芯片中并继续运行待测设计,减少了编译时间,提升了整体的验证效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种验证方法实施例的步骤流程图;
图2是本发明的一种验证装置的结构框图;
图3是本发明示例提供的一种用于验证的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
方法实施例
参照图1,示出了本发明的一种验证方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中。
步骤102、在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息。
步骤103、根据所述第一状态信息修改所述待测设计对应的比特流文件。
步骤104、根据所述比特流文件将所述第一状态信息写回至所述可编程逻辑芯片中。
步骤105、重新运行所述待测设计,以继续对所述待测设计进行验证。
本发明实施例提供的验证方法,可以利用仿真软件对待测设计进行调试,并将调试好的状态信息写回至搭载待测设计的可编程逻辑芯片中,以便继续对待测设计进行验证。其中,待测设计(Design Under Test,DUT)指的是原型验证中待测试的电路设计或实现。示例性地,待测设计可以是寄存器转换级(Register Transfer Level,RTL)电路,也可以是其他的硬件设计。需要说明的是,RTL电路是一种常见的硬件描述级别电路。RTL电路描述了数字电路的行为和结构,并使用寄存器传输级的抽象层次表示。RTL电路描述通常使用硬件描述语言(HDL)编写,例如VHDL(VHSIC Hardware Description Language)、VerilogHDL、SystemVerilog HDL。设计人员可以使用RTL级描述来定义和实现所需的数字电路功能,然后使用综合工具将RTL级描述转换为现场可编程门阵列(Field-Programmable GateArray,FPGA)中的物理实现。在FPGA、芯片设计和验证领域,RTL级描述对于设计、验证和调试非常重要。它提供了一种抽象层次,使设计人员能够在较高的抽象级别上描述电路行为,并使用适当的工具进行仿真、验证和综合,最终生成可配置到FPGA芯片中的位流(bitstream)文件,以实现特定的数字电路功能。
在验证过程中,如果待测设计运行出错,可以利用仿真软件对待测设计进行调试与修复。示例性地,在待测设计运行出错的情况下,可以将出错现场的状态信息,例如搭载待测设计的FPGA芯片的状态信息,如飞拖、片上内存、DSP、外部设备等的状态信息,通过硬件快照进行保存;或者,待测设计运行出错的情况下,仅对待测设计进行硬件快照,保存待测设计的状态信息,如程序指针的数值、通用寄存器数值等CPU状态信息。然后,将保存的状态信息导入到仿真软件中进行仿真,利用仿真软件对待测设计进行细粒度的调试。
可以理解的是,在验证过程中,可以通过对待测设计的输入信号、输出信号进行波形分析,定位待测设计的错误位置。
或者,在烧录有待测设计的FPGA芯片的处理系统中下载软件模拟器,在验证过程中,由待测设计和软件模拟器同步执行基准测试程序,通过对待测设计和软件模拟器的执行结果进行比对,判断待测设计是否出错。
可选地,步骤101所述利用仿真软件对待测设计进行调试之前,所述方法还包括:
步骤S11、将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
步骤S12、通过所述待测设计和所述软件模拟器分别执行基准测试程序;
步骤S13、在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息;
步骤101所述利用仿真软件对待测设计进行调试,包括:
步骤S14、将所述第二状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
其中,软件模拟器(Emulator,EMU)是以高级语言编写以模拟CPU的运行状态的软件程序。在本发明实施例中,软件模拟器作为待测设计的参考模型,运行在可编程逻辑芯片(Field Programmable Gate Array,FPGA)的处理系统中。
FPGA芯片(或FPGA片上系统),不仅包含可编程门阵列电路,还包含一个或多个片上处理器。其中,可编程门阵列电路通常称为可编程逻辑(Programmable Logic,PL);片上处理器通常为ARM处理器,称为处理系统(Processing System,PS)。在本发明实施例中,所述待测设计运行在可编程逻辑芯片的可编程逻辑区域,所述软件模拟器运行在所述可编程逻辑芯片的处理系统中。
基准测试程序包含了一系列程序,用于测试待测设计的性能或其正确性。在本发明实施例中,可以在FPGA芯片上运行待测设计和软件模拟器,由待测设计和软件模拟器分别执行相同的基准测试程序,通过对待测设计和软件模拟器针对基准测试程序的执行结果进行比较,判断待测设计是否存在错误,进而对错误进行调试和修复。
具体地,先将需要验证的待测设计烧录到FPGA芯片的PL端,将软件模拟器下载到FPGA芯片的PS端,将基准测试程序下载到FPGA的外部存储器件中,例如,双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR)。然后,运行FPGA芯片,由待测设计和软件模拟器同步执行基准测试程序。如果满足快照条件,就可以通过硬件快照对待测设计的第二状态信息进行保存。最后,将保存的第二状态信息导入到仿真软件中进行仿真,从而对待测设计进行调试。其中,待测设计的第二状态信息可以包括待测设计的CPU状态信息,例如程序指针的数值、通用寄存器数值等。
需要说明的是,快照条件用于指示何时启动硬件快照机制,对FPGA芯片的状态信息进行保存。快照条件可以根据实际验证需求进行设置,例如,快照条件可以是待测设计的执行结果与软件模拟器的执行结果不匹配、基准测试程序运行至预设的检查点或快照点,等等。
可选地,所述快照条件包括以下至少一项:
A1、所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
A2、所述待测设计中的目标寄存器中的数值等于预设值;
A3、所述待测设计执行目标指令;
A4、当前时刻为预设的检查点;
A5、所述待测设计对目标地址空间进行访存。
在本发明实施例中,第一执行结果可以包括待测设计运行时产生的CPU状态信息,第二执行结果可以包括软件模拟器运行时产生的CPU状态信息。待测设计和软件模拟运行相同的基准测试程序,且待测设计和软件模拟器可以通过片上总线保持指令级运行同步。其中,CPU状态信息可以包括程序指针的数值、通用寄存器数值等,在实际应用中,可以根据实际情况和具体的验证需求指定CPU状态信息的具体内容。
在验证过程中,如果满足A1至A5中的至少一项快照条件,就可以通过硬件快照对FPGA芯片的状态信息进行保存。测试人员可以根据实际的验证需求设置相应的快照条件。示例性地,测试人员确定快照条件后,可以通过TCL脚本将快照条件输入到FPGA芯片中,从而使得FPGA芯片在满足快照条件的情况下,保存状态信息并将保存的状态信息导入仿真软件中。
在本发明实施例中,可以通过硬件快照将软件RTL仿真与FPGA加速进行结合,从而在保证软件仿真的自由度及调试效率的情况下,提升验证效率。
在利用仿真软件对待测设计进行调试的过程中,如果满足预设条件,就可以停止仿真软件的运行,并读取仿真软件当前的第一状态信息,然后,根据第一状态信息修改待测设计对应的比特流文件,进而根据比特流文件将第一状态信息写回到FPGA芯片中。最后,重新在FPGA芯片上运行待测设计,恢复对待测设计的验证过程。
需要说明的是,从仿真软件中读取的第一状态信息与从待测设计中快照保存的第二状态信息相对应,可以包含待测设计中程序指针的数值、寄存器的数值、信号状态等。示例性地,在利用仿真软件对待测设计进行调试时,可以在仿真软件中运行待测设计对应的仿真模型,该仿真模型用于模拟待测设计的功能。在调试过程中,可以更改仿真模型的信号状态、程序指针、寄存器数值等数据,并观察、分析仿真模型的输出结果,在满足预设条件的情况下,将仿真模型中所有更新的状态信息下载下来,作为第一状态信息。
其中,预设条件用于指示何时结束仿真,将仿真软件中的状态信息写回到FPGA芯片上。预设条件可以根据实际仿真需求进行设置。测试人员可以通过预设条件自定义停止软件仿真、将状态信息写回到FPGA芯片的时刻,实现了软硬件协同。
可选地,所述预设条件包括以下至少一项:
B1、接收到针对所述待测设计的写回指令;
B2、所述仿真软件运行至预设断点;
B3、所述仿真软件的输出数据满足调试需求。
其中,写回指令用于指示将仿真软件中的状态信息写回到FPGA芯片中。预设断点可以是测试人员自定义的时间点,例如,可以是仿真软件的运行时长,当仿真软件运行预设断点对应的时长后,就可以停止仿真。
在本发明实施例中,将待测设计烧录到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,利用仿真软件对待测设计进行调试,保证了仿真的自由度和调试效率;本发明实施例将调试后得到的第一状态信息写回到FPGA芯片中并继续运行待测设计,减少了编译时间,提升了整体的验证效率。
可选地,所述第一状态信息包括更新后的设计参数和所述设计参数在所述可编程逻辑芯片中的存储地址;所述根据所述第一状态信息修改所述待测设计对应的比特流文件,包括:
利用所述更新后的设计参数修改所述待测设计对应的比特流文件中所述设计参数的存储地址中记录的数据,得到修改后的比特流文件。
在本发明实施例中,可以将从仿真软件中读取的数据按照“地址+数据”的格式进行保存,也即每一组数据均对应一个存储地址,该存储地址是数据在FPGA芯片中的存储地址。根据存储地址,可以将FPGA芯片的比特流文件中该存储地址中的原数据修改为更新后的设计参数,进而通过比特流文件将修改后的设计参数烧写到FPGA芯片上。可以理解的是,比特流文件是由一系列比特组成的文件,用于配置FPGA,在实际应用中,可以利用FPGA厂商提供的工具将比特流文件中包含的数据烧写到FPGA上。
在本发明的一种可选实施例中,步骤S13所述满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息,包括:
步骤S21、在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制保存所述可编程逻辑芯片中各个帧对应的状态信息;
步骤S22、遍历所述状态信息,从中提取出所述待测设计的第二状态信息。
其中,帧(Frame)是 FPGA 上可最小可以被赋予地址的部分,所有的可分配的资源都被排列为帧然后布置在板卡上。
在本发明实施例中,可以在满足快照条件的情况下,对FPGA芯片上的所有帧均进行快照。具体地,从FPGA芯片的初始地址开始,对FPGA上各个帧的状态信息进行遍历并快照保存,然后从中提取出待测设计的第二状态信息。其中,FPGA芯片的初始地址为FPGA上第一帧的地址,具体可以根据FPGA的设计参数确定,通常情况下,该初始地址为0x00000000。
在本发明的另一种可选实施例中,骤S13所述满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息,包括:
步骤S31、在满足快照条件的情况下,中断所述待测设计的运行;
步骤S32、获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
步骤S33、根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
步骤S34、利用硬件快照对所述目标帧对应的第二状态信息进行保存。
在本发明实施例中,除了可以对FPGA芯片的所有帧均的状态信息均进行快照保存,还可以仅对FPGA芯片上待测设计对用的目标帧的第二状态信息进行快照保存,从而有效地缩小硬件快照文件的大小,减少硬件快照和状态信息传输所消耗的时间,提升验证效率。
具体地,可以获取待测设计在FPGA板卡上的起始地址和面积约束。其中,面积约束用于指示FPGA板卡上包含待测设计的区域的面积大小。可以理解的是,包含待测设计的区域,可以仅包含待测设计,也可以包含待测设计以及一些与待测设计进行交互的PL端的模块或器件,例如:包含待测设计、检查器,等等。可以理解的是,面积约束是由约束文件限制而成,可以通过FPGA厂商提供的配置工具来为指定模块设计面积约束。
根据待测设计的起始地址和面积约束,就可以确定出包含待测设计的区域中具体包含FPGA板卡上的哪些帧,也即确定出待测设计对应的目标帧。然后,在满足快照条件的情况下,通过硬件快照对目标帧的第二状态信息进行保存。
以FPGA芯片使用Xilinx ZYNQ UltraScale+ ZU19EG MPSOC板卡为例,其含有97691帧,在实际验证操作中,对该板卡上的所有帧进行完整硬件快照需要18分钟,快照文件大小为260MB。相比于对FPGA上的所有帧均进行快照,仅对FPGA上的目标帧进行部分硬件快照,可以有效减少快照帧数,缩小了硬件快照文件的大小,减少了硬件快照和快照文件传输所消耗的时间,有利于提升验证效率。
可选地,步骤S33所述根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧,包括:
子步骤S331、根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
子步骤S332、根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
在确定目标帧时,可以先根据待测设计的面积约束和FPGA芯片的总面积,估算出待测设计的使用帧数。示例性地,可以根据待测设计的面积约束确定出待测设计在FPGA板卡上占据的面积大小S1,然后根据待测设计的面积S1与FPGA的中面积Sz的比值,估算出待测设计的使用帧数N,N=S1/Sz。
可以理解的是,在FPGA板卡上,每个帧的地址、大小都是固定的,且对于同一功能模块或器件,其包含的帧是连续的,根据待测设计的起始地址和使用帧数,就可以确定出待测设计对应的目标帧。
综上,本发明实施例提供了一种验证方法,将待测设计烧录到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,利用仿真软件对待测设计进行调试,保证了仿真的自由度和调试效率;本发明实施例将调试后得到的第一状态信息写回到FPGA芯片中并继续运行待测设计,减少了编译时间,提升了整体的验证效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图2,示出了本发明的一种验证装置的结构框图,所述装置具体可以包括:
调试模块201,用于利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中;
读取模块202,用于在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息;
修改模块203,用于根据所述第一状态信息修改所述待测设计对应的比特流文件;
写回模块204,用于根据所述比特流文件将所述状态信息写回至所述可编程逻辑芯片中;
验证模块205,用于重新运行所述待测设计,以继续对所述待测设计进行验证。
可选地,所述第一状态信息包括更新后的设计参数和所述设计参数在所述可编程逻辑芯片中的存储地址;所述修改模块,包括:
修改子模块,用于利用所述更新后的设计参数修改所述待测设计对应的比特流文件中所述设计参数的存储地址中记录的数据,得到修改后的比特流文件。
可选地,所述装置还包括:
预处理模块,用于将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
测试模块,用于通过所述待测设计和所述软件模拟器分别执行基准测试程序;
快照模块,用于在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息;
所述调试模块,包括:
信息导出子模块,用于将所述第二状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
可选地,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的检查点;
所述待测设计对目标地址空间进行访存。
可选地,所述快照模块,包括:
中断子模块,用于在满足快照条件的情况下,中断所述待测设计的运行;
获取子模块,用于获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
确定子模块,用于根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
第一快照子模块,用于利用硬件快照对所述目标帧对应的第二状态信息进行保存。
可选地,所述确定子模块,包括:
帧数确定单元,用于根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
目标帧确定单元,用于根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
可选地,所述快照模块,包括:
第二快照子模块,用于在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制保存所述可编程逻辑芯片中各个帧对应的状态信息;
遍历子模块,用于遍历所述状态信息,从中提取出所述待测设计的第二状态信息。
可选地,所述预设条件包括以下至少一项:
接收到针对所述待测设计的写回指令;
所述仿真软件运行至预设断点;
所述仿真软件的输出数据满足调试需求。
综上,本发明实施例提供了一种验证装置。在本发明实施例中,将待测设计烧录到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,利用仿真软件对待测设计进行调试,保证了仿真的自由度和调试效率;本发明实施例将调试后得到的第一状态信息写回到FPGA芯片中并继续运行待测设计,减少了编译时间,提升了整体的验证效率。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
关于上述实施例中的处理器,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
参照图3,是本发明实施例提供的一种用于验证的电子设备的结构框图。如图3所示,所述电子设备包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述实施例的验证方法。
所述处理器可以是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,扩展工业标准结构)总线等。所述通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
所述存储器可以是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.根据权利要求3所述的方法,其特征在于,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的检查点;
所述待测设计对目标地址空间进行访存。
5.根据权利要求3所述的方法,其特征在于,所述在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息,包括:
在满足快照条件的情况下,中断所述待测设计的运行;
获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
利用硬件快照对所述目标帧对应的第二状态信息进行保存。
6.根据权利要求5所述的方法,其特征在于,所述根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧,包括:
根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
7.根据权利要求3所述的方法,其特征在于,所述在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息,包括:
在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制保存所述可编程逻辑芯片中各个帧对应的状态信息;
遍历所述状态信息,从中提取出所述待测设计的第二状态信息。
8.根据权利要求1所述的方法,其特征在于,所述预设条件包括以下至少一项:
接收到针对所述待测设计的写回指令;
所述仿真软件运行至预设断点;
所述仿真软件的输出数据满足调试需求。
9.一种验证装置,其特征在于,所述装置包括:
调试模块,用于利用仿真软件对待测设计进行调试;所述待测设计烧录在可编程逻辑芯片中;
读取模块,用于在满足预设条件的情况下,停止仿真软件的运行,并读取所述仿真软件的第一状态信息;
修改模块,用于根据所述第一状态信息修改所述待测设计对应的比特流文件;
写回模块,用于根据所述比特流文件将所述状态信息写回至所述可编程逻辑芯片中;
验证模块,用于重新运行所述待测设计,以继续对所述待测设计进行验证。
10.根据权利要求9所述的装置,其特征在于,所述第一状态信息包括更新后的设计参数和所述设计参数在所述可编程逻辑芯片中的存储地址;所述修改模块,包括:
修改子模块,用于利用所述更新后的设计参数修改所述待测设计对应的比特流文件中所述设计参数的存储地址中记录的数据,得到修改后的比特流文件。
11.根据权利要求9所述的装置,其特征在于,所述装置还包括:
预处理模块,用于将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
测试模块,用于通过所述待测设计和所述软件模拟器分别执行基准测试程序;
快照模块,用于在满足快照条件的情况下,中断所述待测设计的运行,并利用快照机制获取所述待测设计的第二状态信息;
所述调试模块,包括:
信息导出子模块,用于将所述第二状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
12.根据权利要求11所述的装置,其特征在于,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的检查点;
所述待测设计对目标地址空间进行访存。
13.根据权利要求11所述的装置,其特征在于,所述快照模块,包括:
中断子模块,用于在满足快照条件的情况下,中断所述待测设计的运行;
获取子模块,用于获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
确定子模块,用于根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
第一快照子模块,用于利用硬件快照对所述目标帧对应的第二状态信息进行保存。
14.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至8中任一项所述的验证方法。
15.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得所述处理器能够执行如权利要求1至8中任一项所述的验证方法。
CN202311345104.1A 2023-10-17 2023-10-17 一种验证方法、装置、电子设备及可读存储介质 Active CN117094269B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311345104.1A CN117094269B (zh) 2023-10-17 2023-10-17 一种验证方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311345104.1A CN117094269B (zh) 2023-10-17 2023-10-17 一种验证方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117094269A true CN117094269A (zh) 2023-11-21
CN117094269B CN117094269B (zh) 2024-02-02

Family

ID=88773732

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311345104.1A Active CN117094269B (zh) 2023-10-17 2023-10-17 一种验证方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117094269B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725866A (zh) * 2024-02-07 2024-03-19 北京开源芯片研究院 一种验证方法、装置、电子设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015313A1 (en) * 2003-06-16 2006-01-19 Wang Ming Y Method of programming a co-verification system
CN106155855A (zh) * 2015-04-07 2016-11-23 龙芯中科技术有限公司 对微处理器进行功能验证的方法及服务器
CN112949233A (zh) * 2021-03-08 2021-06-11 北京士昌鼎科技有限公司 Fpga芯片的自动化开发方法及装置、电子设备
CN114239445A (zh) * 2021-11-25 2022-03-25 新华三半导体技术有限公司 一种信号采集方法及芯片验证平台
CN116029242A (zh) * 2022-12-23 2023-04-28 中国科学院计算技术研究所 一种云原生的硬件逻辑仿真fpga加速方法及系统
CN116663462A (zh) * 2023-07-27 2023-08-29 北京开源芯片研究院 断言验证方法、断言验证平台、电子设备及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060015313A1 (en) * 2003-06-16 2006-01-19 Wang Ming Y Method of programming a co-verification system
CN106155855A (zh) * 2015-04-07 2016-11-23 龙芯中科技术有限公司 对微处理器进行功能验证的方法及服务器
CN112949233A (zh) * 2021-03-08 2021-06-11 北京士昌鼎科技有限公司 Fpga芯片的自动化开发方法及装置、电子设备
CN114239445A (zh) * 2021-11-25 2022-03-25 新华三半导体技术有限公司 一种信号采集方法及芯片验证平台
CN116029242A (zh) * 2022-12-23 2023-04-28 中国科学院计算技术研究所 一种云原生的硬件逻辑仿真fpga加速方法及系统
CN116663462A (zh) * 2023-07-27 2023-08-29 北京开源芯片研究院 断言验证方法、断言验证平台、电子设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117725866A (zh) * 2024-02-07 2024-03-19 北京开源芯片研究院 一种验证方法、装置、电子设备及可读存储介质
CN117725866B (zh) * 2024-02-07 2024-05-14 北京开源芯片研究院 一种验证方法、装置、电子设备及可读存储介质

Also Published As

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

Similar Documents

Publication Publication Date Title
US7478028B2 (en) Method for automatically searching for functional defects in a description of a circuit
JP4508657B2 (ja) Asic/soc製造におけるプロトタイプホールドを回避するための製造方法と装置
US7587690B1 (en) Method and system for global coverage analysis
CN112417798B (zh) 一种时序测试方法、装置、电子设备及存储介质
CN116663462B (zh) 断言验证方法、断言验证平台、电子设备及可读存储介质
US7437701B1 (en) Simulation of a programming language specification of a circuit design
Jindal et al. Verification of transaction-level SystemC models using RTL testbenches
KR20000017333A (ko) 반도체 집적 회로 설계 및 검증 시스템
CN117094269B (zh) 一种验证方法、装置、电子设备及可读存储介质
KR20040007463A (ko) 로직 시뮬레이션을 이용하지 않는 복잡한 ic의 설계검증을 위한 방법 및 장치
US7454726B2 (en) Technique for generating input stimulus to cover properties not covered in random simulation
CN117350208A (zh) 时序逻辑元件性能检查方法及设备
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
US6934656B2 (en) Auto-linking of function logic state with testcase regression list
Kumar et al. A semi-formal verification methodology for efficient configuration coverage of highly configurable digital designs
CN111624475B (zh) 大规模集成电路的测试方法及系统
US8943457B2 (en) Simulating scan tests with reduced resources
CN115906730A (zh) 验证逻辑系统设计的方法、设备及存储介质
CN117113907B (zh) 一种验证方法、装置、电子设备及可读存储介质
CN112131807A (zh) 一种跨时钟域验证方法、装置、设备及介质
US20040230414A1 (en) Method for verification of hardware designs with multiple asynchronous frequency domains
El-Kharashy et al. A novel assertions-based code coverage automatic cad tool
CN117725866B (zh) 一种验证方法、装置、电子设备及可读存储介质
CN117112447B (zh) 一种数据传输方法、装置、电子设备及可读存储介质
Patel et al. Method and Apparatus for Bug Free Rapid Silicon Bringup

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