CN117113907A - 一种验证方法、装置、电子设备及可读存储介质 - Google Patents
一种验证方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN117113907A CN117113907A CN202311344674.9A CN202311344674A CN117113907A CN 117113907 A CN117113907 A CN 117113907A CN 202311344674 A CN202311344674 A CN 202311344674A CN 117113907 A CN117113907 A CN 117113907A
- Authority
- CN
- China
- Prior art keywords
- design
- tested
- snapshot
- programmable logic
- condition
- 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 60
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000013461 design Methods 0.000 claims abstract description 162
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000012360 testing method Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 20
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000004088 simulation Methods 0.000 abstract description 13
- 230000001133 acceleration Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000006870 function Effects 0.000 description 8
- 238000004590 computer program Methods 0.000 description 7
- 238000012546 transfer Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
- 238000010200 validation analysis Methods 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/36—Circuit design at the analogue level
- G06F30/373—Design optimisation
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种验证方法、装置、电子设备及可读存储介质,涉及计算机技术领域,该方法包括:将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;通过所述待测设计和所述软件模拟器分别执行基准测试程序;在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。本发明实施例利用FPGA加速提升了验证效率,并利用仿真软件对待测设计进行更细粒度的调试,保证了仿真的自由度和调试效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种验证方法、装置、电子设备及可读存储介质。
背景技术
在现如今越来越复杂的硬件设计中,验证渐渐地占据里整个芯片开发流程里最大的一部分时间。虽然软件仿真可以提供对于整个设计里各种信号的高可视程度来帮助开发者们进行调试,但是软件仿真运行的速度过于慢,变相地拉低了整个仿真环节的效率。比如对于现如今通常可以跑到几千兆赫兹(GHz)的处理器进行软件仿真时,这些仿真软件通常只能运行至几千赫兹(KHz)。
在相关技术中,用 FPGA 加速验证的方法相比较基于软件的方式已经展现出了非常高的性能。在工业界里,将 FPGA 加速验证和调试用于硅前验证已经非常广泛。FPGA 加速可以直接将验证模块的 RTL 设计加载至 FPGA 上,而不用去搭写仿真模型,这个效率往往可以达到几百兆赫兹(MHz)。但是这些方案对于设计的细节拥有非常低的可视程度,对于开发者而言非常难以定位错误发生的地方。虽然工业界已经在逐渐提供一些工具可以帮助开发者看到硬件运行时的一些信号但是这些往往达不到软件仿真时的自由度以及调试效率。
发明内容
本发明实施例提供一种验证方法、装置、电子设备及可读存储介质,可以解决相关技术中FPGA加速难以定位设计错误位置,软件仿真的验证效率低问题。
为了解决上述问题,本发明实施例公开了一种验证方法,所述方法包括:
将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
通过所述待测设计和所述软件模拟器分别执行基准测试程序;
在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
另一方面,本发明实施例公开了一种验证装置,所述装置包括:
预处理模块,用于将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
测试模块,用于通过所述待测设计和所述软件模拟器分别执行基准测试程序;
快照模块,用于在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
信息导出模块,用于将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
再一方面,本发明实施例还公开了一种电子设备,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行前述的验证方法。
本发明实施例还公开了一种可读存储介质,当所述可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的验证方法。
本发明实施例包括以下优点:
本发明实施例提供了一种验证方法,将待测设计加载到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,可以通过快照条件自定义开始软件仿真的时刻,实现了软硬件协同;在满足快照条件的情况下,通过硬件快照能够快速、精准地定位错误,将快照保存的状态信息导入到仿真软件中,利用仿真软件对待测设计进行更细粒度的调试,保证了仿真的自由度和调试效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的一种验证方法实施例的步骤流程图;
图2是本发明的一种验证框架的架构示意图;
图3是本发明的一种验证装置的结构框图;
图4是本发明示例提供的一种用于验证的电子设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中的术语“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本发明实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
方法实施例
参照图1,示出了本发明的一种验证方法实施例的步骤流程图,所述方法具体可以包括如下步骤:
步骤101、将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
步骤102、通过所述待测设计和所述软件模拟器分别执行基准测试程序;
步骤103、在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
步骤104、将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
本发明实施例提供的验证方法,可以对待测设计进行验证,并利用仿真软件对待测设计进行调试。其中,待测设计(Design Under Test,DUT)指的是原型验证中待测试的电路设计或实现。示例性地,待测设计可以是寄存器转换级(Register Transfer Level,RTL)电路,也可以是其他的硬件设计。需要说明的是,RTL电路是一种常见的硬件描述级别电路。RTL电路描述了数字电路的行为和结构,并使用寄存器传输级的抽象层次表示。RTL电路描述通常使用硬件描述语言(HDL)编写,例如VHDL(VHSIC Hardware DescriptionLanguage)、Verilog HDL、SystemVerilog HDL。设计人员可以使用RTL级描述来定义和实现所需的数字电路功能,然后使用综合工具将RTL级描述转换为现场可编程门阵列(Field-Programmable Gate Array,FPGA)中的物理实现。在FPGA、芯片设计和验证领域,RTL级描述对于设计、验证和调试非常重要。它提供了一种抽象层次,使设计人员能够在较高的抽象级别上描述电路行为,并使用适当的工具进行仿真、验证和综合,最终生成可配置到FPGA芯片中的位流(bitstream)文件,以实现特定的数字电路功能。
软件模拟器(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芯片,由待测设计和软件模拟器同步执行基准测试程序。如果满足快照条件,就可以通过硬件快照对FPGA芯片的状态信息进行保存。最后,将保存的状态信息导入到仿真软件中进行仿真,从而对待测设计进行调试。其中,FPGA的状态信息可以包括飞拖、片上内存、DSP、外部设备等的状态信息。本发明实施例中的外部设备指的是搭载在FPGA芯片上,既不属于PL端,也不属于PS端的设备,如DDR等外部存储设备。
需要说明的是,快照条件用于指示何时启动硬件快照机制,对FPGA芯片的状态信息进行保存。快照条件可以根据实际验证需求进行设置,例如,快照条件可以是待测设计的执行结果与软件模拟器的执行结果不匹配、基准测试程序运行至预设的检查点或快照点,等等。
可选地,所述快照条件包括以下至少一项:
A1、所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
A2、所述待测设计中的目标寄存器中的数值等于预设值;
A3、所述待测设计执行目标指令;
A4、当前时刻为预设的快照点;
A5、所述待测设计对目标地址空间进行访存。
在本发明实施例中,第一执行结果可以包括待测设计运行时产生的CPU状态信息,第二执行结果可以包括软件模拟器运行时产生的CPU状态信息。待测设计和软件模拟运行相同的基准测试程序,且待测设计和软件模拟器可以通过片上总线保持指令级运行同步。其中,CPU状态信息可以包括程序指针的数值、通用寄存器数值等,在实际应用中,可以根据实际情况和具体的验证需求指定CPU状态信息的具体内容。
在验证过程中,如果满足A1至A5中的至少一项快照条件,就可以通过硬件快照对FPGA芯片的状态信息进行保存。测试人员可以根据实际的验证需求设置相应的快照条件。示例性地,测试人员确定快照条件后,可以通过TCL脚本将快照条件输入到FPGA芯片中,从而使得FPGA芯片在满足快照条件的情况下,保存状态信息并将保存的状态信息导入仿真软件中。
在本发明实施例中,可以通过硬件快照将软件RTL仿真与FPGA加速进行结合,从而在保证软件仿真的自由度及调试效率的情况下,提升验证效率。
参照图2,示出了本发明实施例提供的一种验证框架的架构示意图。如图2所示,该验证框架包括硬件设施和软件设施,其中,硬件设施运行在可编程逻辑芯片(也即FPGA芯片)的可编程逻辑区域(也即PL端),软件设施运行在FPGA芯片的处理系统(也即PS端)中。硬件设施具体可以包括:检查器、快照和中断控制器。其中,检查器用于收集测试数据并实现对待测设计的检测。快照和中断控制器用于创建待测设计的快照并启动中断。软件设施具体可以包括内存控制器、软件模拟器、驱动程序和仿真软件。其中,内存控制器可以实现待测设计、软件模拟器对内存的访问,以及待测设计对外部设备的访问。驱动程序可以从寄存器中监视和获取关键信号和数据、对数据包进行压缩,以更有效地传输数据、管理待测设计对外部设备的访问、管理FPGA芯片中PL端和PS端的数据通信、处理来自PL端的中断请求,等等。需要说明的是,除仿真软件以外的其他器件,均搭载在FPGA芯片上,仿真软件可以搭载在个人电脑(Personal Computer,PC)中,或者搭载在其他具有操作系统、能够运行软件的电子设备中。
此外,在图2所示的验证框架中,软件模拟器是为一个给定的ISA设计的,例如RISC-V,它通过只提供执行指令的功能模型来抽象硬件的实现细节。需要说明的是,软件模拟器与实际的硬件实现是无关的,因此,当对硬件DUT进行修改时,只要底层ISA保持不变,就不必替换软件模拟器。即使对于像RISC-V这样能够合并指令扩展的指令集架构,在软件模拟器中支持扩展指令也比在实际的硬件实现中更简单。利用图2所示的验证框架对待测设计进行验证,可以直接在软件模拟器中实现自动的仿真环境重建,无需搭建完整的软件测试平台,减少了前期平台搭建的工作量,有利于提升验证效率。
进一步地,差分验证框架中还可以包括基础设施模块,该基础设施模块用于为待测设计DUT提供一个带有占位符的外壳结构,以便实现DUT与检查器、快照和中断控制器、软件模拟器、外部设备等之间的交互。示例性地,该基础设施模块可以包含两个外部接口:连接外部存储器的AXI-MEM总线,以及连接UART和GPIO等其他外部设备的AXI-MMIO总线。该基础设施模块负责维护FPGA芯片上的PL和PS之间的通信,通常可以传输三种类型的数据:来自软件模拟器的执行结果、来自外部设备(如DDR)的指令和数据,以及来快照和中断控制器产生的中断测试的中断信号。
检查器可以实现以下功能:对于待测设计和软件模拟器,监视指定的关键信号,并在运行时动态地收集待测设计和软件模拟器的执行结果;支持待测设计和软件模拟器之间的指令级同步,以确保在待测设计和软件模拟器执行基准测试程序的每条指令后正确的比较两者的执行结果;对待测设计对基准测试程序的第一执行结果和软件模拟器的第二执行结果进行比较,判断第一执行结果与第二执行结果是否存在不匹配的问题,并在第一执行结果和第二执行结果不匹配时发出异常提醒,等等。
检查器中针对待测设计配置有硬件缓冲区,用于记录待测设计的运行数据;针对软件模拟器也同样配置有软件缓冲区,用于记录软件模拟器的运行数据。
在一种可能的实现场景中,待测设计从外部存储器件(如DDR)中加载基准测试程序并执行,每执行一条指令后,将第一执行结果写入硬件缓冲区。软件模拟器在启动后,执行基准测试程序,并在执行每一条执行后,通过驱动程序将第二执行结果写入软件缓冲区。检查器对第一执行结果和第二执行结果进行差分比较,如果第一执行结果和第二执行结果不匹配,也即待测设计和软件模拟器针对基准测试程序中的同一条指令,出现了不同的执行结果,那么检查器就可以中断待测设计和软件模拟器的运行。此外,如果硬件缓冲区已满,和/或,软件缓冲区为空,检查器也可以中断待测设计的运行。
如果测试人员需要设置检查点或快照点,对特定的信号或状态信息进行监测,可以通过图2中的快照和中断控制器设置检查点或快照点,以便在待测设计和软件模拟器运行至检查点或快照点后,中断待测设计和软件模拟器的运行,并启动硬件快照机制,对FPGA芯片的状态信息进行快照保存,并将保存的状态信息导入到仿真软件中,利用仿真软件进行仿真,对待测设计进行调试。
在本发明实施例中,将待测设计加载到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,测试人员可以通过快照条件自定义开始软件仿真的时刻,实现了软硬件协同;通过硬件快照能够快速、精准地定位错误,将快照保存的状态信息导入到仿真软件中,利用仿真软件对待测设计进行更细粒度的调试,保证了仿真的自由度和调试效率。
可选地,步骤103所述在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
在所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行,并通过硬件快照对所述可编程逻辑芯片的状态信息进行保存。
如果待测设计的第一执行结果与软件模拟器的第二执行结果不匹配,说明待测设计存在错误,此时需要中断待测设计和软件模拟器的运行。然后,触发硬件快照机制,对FPGA芯片的状态信息进行保存,并将保存的状态信息导入仿真软件中进行仿真,以对待测设计进行调试和修复。
以图2所示的验证框架为例,如果检查器确定待测设计的第一执行结果与软件模拟器的第二执行结果不匹配,则向待测设计和软件模拟器发送中断信号。同时,检查器将中断信号传递给控制器,控制器在待测设计和软件模拟器都安全暂停后创建整个FPGA芯片的快照,其中包含当前时刻的设计状态,如片上寄存器的值、来自BRAM的内容、分布式内存中的数据、外部设备的内容,等等。接下来,FPGA中用于存储快照数据的外部存储器件,如DDR,将保存的状态信息导入仿真软件中,由仿真软件对待测设计进行调试和修复。
进一步地,在完成对待测设计的调试与修复之后,可以将仿真软件中调试好的状态数据下载下来,并写回FPGA的外部存储器件中,以便对FPGA芯片上的待测设计的设计参数或状态数据进行修改。当检查器检测到让仿真软件中的数据已经写回外部存储器件中且待测设计的设计参数或状态数据已经被修改的情况下,可以向待测设计和软件模拟器发送中断释信号,以恢复待测设计和软件模拟器的运行,继续对待测设计进行验证。
在本发明的一种可选实施例中,在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
在满足快照条件的情况下,从所述可编程逻辑芯片的初始地址开始,对所述可编程逻辑芯片中各个帧对应的状态信息进行遍历并快照保存。
其中,帧(Frame)是 FPGA 上可最小可以被赋予地址的部分,所有的可分配的资源都被排列为帧然后布置在板卡上。
在本发明实施例中,可以在满足快照条件的情况下,对FPGA芯片上的所有帧均进行快照。具体地,从FPGA芯片的初始地址开始,对FPGA上各个帧的状态信息进行遍历并快照保存。其中,FPGA芯片的初始地址为FPGA上第一帧的地址,具体可以根据FPGA的设计参数确定,通常情况下,该初始地址为0x00000000。
在本发明的另一种可选实施例中,步骤103所述在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
步骤S11、获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
步骤S12、根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
步骤S13、在满足快照条件的情况下,通过硬件快照对所述目标帧对应的状态信息进行保存。
在本发明实施例中,除了可以对FPGA芯片的所有帧均的状态信息均进行快照保存,还可以仅对FPGA芯片上待测设计对用的目标帧的状态信息进行快照保存,从而有效地缩小硬件快照文件的大小,减少硬件快照和状态信息传输所消耗的时间,提升验证效率。
具体地,可以获取待测设计在FPGA板卡上的起始地址和面积约束。其中,面积约束用于指示FPGA板卡上包含待测设计的区域的面积大小。可以理解的是,包含待测设计的区域,可以仅包含待测设计,也可以包含待测设计以及一些与待测设计进行交互的PL端的模块或器件,例如:包含待测设计、检查器,等等。可以理解的是,面积约束是由约束文件限制而成,可以通过FPGA厂商提供的配置工具来为指定模块设计面积约束。
根据待测设计的起始地址和面积约束,就可以确定出包含待测设计的区域中具体包含FPGA板卡上的哪些帧,也即确定出待测设计对应的目标帧。然后,在满足快照条件的情况下,通过硬件快照对目标帧的状态信息进行保存。
以FPGA芯片使用Xilinx ZYNQ UltraScale+ ZU19EG MPSOC板卡为例,其含有97691帧,在实际验证操作中,对该板卡上的所有帧进行完整硬件快照需要18分钟,快照文件大小为260MB。相比于对FPGA上的所有帧均进行快照,仅对FPGA上的目标帧进行部分硬件快照,可以有效减少快照帧数,缩小了硬件快照文件的大小,减少了硬件快照和快照文件传输所消耗的时间,有利于提升验证效率。
可选地,步骤S12所述根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧,包括:
子步骤S121、根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
子步骤S122、根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
在确定目标帧时,可以先根据待测设计的面积约束和FPGA芯片的总面积,估算出待测设计的使用帧数。示例性地,可以根据待测设计的面积约束确定出待测设计在FPGA板卡上占据的面积大小S1,然后根据待测设计的面积S1与FPGA的中面积Sz的比值,估算出待测设计的使用帧数N,N=S1/Sz。
可以理解的是,在FPGA板卡上,每个帧的地址、大小都是固定的,且对于同一功能模块或器件,其包含的帧是连续的,根据待测设计的起始地址和使用帧数,就可以确定出待测设计对应的目标帧。
综上,本发明实施例提供了一种验证方法,将待测设计加载到FPGA芯片上运行,利用FPGA加速提升了验证效率;并且,在验证过程中,可以通过快照条件自定义开始软件仿真的时刻,实现了软硬件协同;在满足快照条件的情况下,通过硬件快照能够快速、精准地定位错误,将快照保存的状态信息导入到仿真软件中,利用仿真软件对待测设计进行更细粒度的调试,保证了仿真的自由度和调试效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
装置实施例
参照图3,示出了本发明的一种验证装置的结构框图,所述装置具体可以包括:
预处理模块301,用于将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
测试模块302,用于通过所述待测设计和所述软件模拟器分别执行基准测试程序;
快照模块303,用于在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
信息导出模块304,用于将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
可选地,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的快照点;
所述待测设计对目标地址空间进行访存。
可选地,所述快照模块,包括:
获取子模块,用于获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
确定子模块,用于根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
第一快照子模块,用于在满足快照条件的情况下,通过硬件快照对所述目标帧对应的状态信息进行保存。
可选地,所述确定子模块,包括:
帧数确定单元,用于根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
目标帧确定单元,用于根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
可选地,所述快照模块,包括:
第二快照子模块,用于在满足快照条件的情况下,从所述可编程逻辑芯片的初始地址开始,对所述可编程逻辑芯片中各个帧对应的状态信息进行遍历并快照保存。
可选地,所述快照模块,包括:
第三快照子模块,用于在所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行,并通过硬件快照对所述可编程逻辑芯片的状态信息进行保存。
综上,本发明实施例提供了一种验证装置,将待测设计加载到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 (14)
1.一种验证方法,其特征在于,所述方法包括:
将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
通过所述待测设计和所述软件模拟器分别执行基准测试程序;
在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
2.根据权利要求1所述的方法,其特征在于,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的快照点;
所述待测设计对目标地址空间进行访存。
3.根据权利要求1所述的方法,其特征在于,所述在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
在满足快照条件的情况下,通过硬件快照对所述目标帧对应的状态信息进行保存。
4.根据权利要求3所述的方法,其特征在于,所述根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧,包括:
根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
5.根据权利要求1所述的方法,其特征在于,所述在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
在满足快照条件的情况下,从所述可编程逻辑芯片的初始地址开始,对所述可编程逻辑芯片中各个帧对应的状态信息进行遍历并快照保存。
6.根据权利要求1所述的方法,其特征在于,所述在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存,包括:
在所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行,并通过硬件快照对所述可编程逻辑芯片的状态信息进行保存。
7.一种验证装置,其特征在于,所述装置包括:
预处理模块,用于将待测设计烧录到可编程逻辑芯片的可编程逻辑区域,将软件模拟器下载到所述可编程逻辑芯片的处理系统中;
测试模块,用于通过所述待测设计和所述软件模拟器分别执行基准测试程序;
快照模块,用于在满足快照条件的情况下,通过硬件快照对所述可编程逻辑芯片的状态信息进行保存;
信息导出模块,用于将所述状态信息导入仿真软件中进行仿真,以对所述待测设计进行调试。
8.根据权利要求7所述的装置,其特征在于,所述快照条件包括以下至少一项:
所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配;
所述待测设计中的目标寄存器中的数值等于预设值;
所述待测设计执行目标指令;
当前时刻为预设的快照点;
所述待测设计对目标地址空间进行访存。
9.根据权利要求7所述的装置,其特征在于,所述快照模块,包括:
获取子模块,用于获取所述待测设计对应的起始地址和面积约束,所述面积约束用于指示在所述可编程逻辑芯片中包含所述待测设计的区域的面积大小;
确定子模块,用于根据所述起始地址和所述面积约束确定所述待测设计对应的目标帧;
第一快照子模块,用于在满足快照条件的情况下,通过硬件快照对所述目标帧对应的状态信息进行保存。
10.根据权利要求9所述的装置,其特征在于,所述确定子模块,包括:
帧数确定单元,用于根据所述面积约束和所述可编程逻辑芯片的总面积,确定所述待测设计的使用帧数;
目标帧确定单元,用于根据所述起始地址和所述使用帧数,确定所述待测设计对应的目标帧。
11.根据权利要求7所述的装置,其特征在于,所述快照模块,包括:
第二快照子模块,用于在满足快照条件的情况下,从所述可编程逻辑芯片的初始地址开始,对所述可编程逻辑芯片中各个帧对应的状态信息进行遍历并快照保存。
12.根据权利要求7所述的装置,其特征在于,所述快照模块,包括:
第三快照子模块,用于在所述待测设计对所述基准测试程序的第一执行结果与所述软件模拟器对所述基准测试程序的第二执行结果不匹配的情况下,中断所述待测设计和所述软件模拟器的运行,并通过硬件快照对所述可编程逻辑芯片的状态信息进行保存。
13.一种电子设备,其特征在于,所述电子设备包括处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;所述存储器用于存放可执行指令,所述可执行指令使所述处理器执行如权利要求1至6中任一项所述的验证方法。
14.一种可读存储介质,其特征在于,当所述可读存储介质中的指令由电子设备的处理器执行时,使得所述处理器能够执行如权利要求1至6中任一项所述的验证方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344674.9A CN117113907B (zh) | 2023-10-17 | 2023-10-17 | 一种验证方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311344674.9A CN117113907B (zh) | 2023-10-17 | 2023-10-17 | 一种验证方法、装置、电子设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117113907A true CN117113907A (zh) | 2023-11-24 |
CN117113907B CN117113907B (zh) | 2023-12-22 |
Family
ID=88794974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311344674.9A Active CN117113907B (zh) | 2023-10-17 | 2023-10-17 | 一种验证方法、装置、电子设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117113907B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1450278A2 (en) * | 2003-01-23 | 2004-08-25 | Quickturn Design Systems, Inc. | Methods and apparatus for verifying the operation of a circuit design |
US20100100860A1 (en) * | 2008-10-21 | 2010-04-22 | Chang Chioumin M | Method and apparatus for debugging an electronic system design (esd) prototype |
CN101720466A (zh) * | 2007-05-09 | 2010-06-02 | 新思公司 | 使用复制存储元件记录仿真器状态 |
CN107066707A (zh) * | 2017-03-27 | 2017-08-18 | 中国科学院计算技术研究所 | 一种使用快照的可调试性设计追踪方法及装置 |
CN115373929A (zh) * | 2022-09-14 | 2022-11-22 | 北京奕斯伟计算技术股份有限公司 | 测试方法、装置、设备、可读存储介质及程序产品 |
CN115686961A (zh) * | 2022-10-31 | 2023-02-03 | 北京奕斯伟计算技术股份有限公司 | 处理器测试方法、装置及电子设备 |
-
2023
- 2023-10-17 CN CN202311344674.9A patent/CN117113907B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1450278A2 (en) * | 2003-01-23 | 2004-08-25 | Quickturn Design Systems, Inc. | Methods and apparatus for verifying the operation of a circuit design |
CN101720466A (zh) * | 2007-05-09 | 2010-06-02 | 新思公司 | 使用复制存储元件记录仿真器状态 |
US20100100860A1 (en) * | 2008-10-21 | 2010-04-22 | Chang Chioumin M | Method and apparatus for debugging an electronic system design (esd) prototype |
CN107066707A (zh) * | 2017-03-27 | 2017-08-18 | 中国科学院计算技术研究所 | 一种使用快照的可调试性设计追踪方法及装置 |
CN115373929A (zh) * | 2022-09-14 | 2022-11-22 | 北京奕斯伟计算技术股份有限公司 | 测试方法、装置、设备、可读存储介质及程序产品 |
CN115686961A (zh) * | 2022-10-31 | 2023-02-03 | 北京奕斯伟计算技术股份有限公司 | 处理器测试方法、装置及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117113907B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4508657B2 (ja) | Asic/soc製造におけるプロトタイプホールドを回避するための製造方法と装置 | |
US8341570B2 (en) | Method and apparatus for executing a hardware simulation and verification solution | |
CN102117238A (zh) | Ip核amba总线接口兼容性通用验证方法及验证平台 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN116663462B (zh) | 断言验证方法、断言验证平台、电子设备及可读存储介质 | |
US10073933B2 (en) | Automatic generation of properties to assist hardware emulation | |
GB2526052A (en) | Deadlock detection using assertions | |
US8423934B1 (en) | Model validation cockpit | |
CN117094269B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
KR20040007463A (ko) | 로직 시뮬레이션을 이용하지 않는 복잡한 ic의 설계검증을 위한 방법 및 장치 | |
US7454726B2 (en) | Technique for generating input stimulus to cover properties not covered in random simulation | |
US20050096862A1 (en) | Auto-linking of function logic state with testcase regression list | |
CN117113907B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
US6807658B2 (en) | Systems and methods for performing clock gating checks | |
CN111338761A (zh) | 一种51单片机虚拟中断控制器及实现方法 | |
US7277840B2 (en) | Method for detecting bus contention from RTL description | |
US20040230414A1 (en) | Method for verification of hardware designs with multiple asynchronous frequency domains | |
CN117112447B (zh) | 一种数据传输方法、装置、电子设备及可读存储介质 | |
CN117093353B (zh) | 一种中断控制方法、装置、电子设备及可读存储介质 | |
El-Kharashy et al. | A novel assertions-based code coverage automatic cad tool | |
CN117725866B (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
CN113673106B (zh) | 一种fpga内核可编程仿真器 | |
Siddiqui | System-on-Chip (SoC) emulation | |
CN118133735A (zh) | 一种验证方法、装置、电子设备及可读存储介质 | |
Lahbib et al. | Verification flow optimization using an automatic coverage driven testing policy |
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 |