CN113032202B - 芯片验证方法、***、装置、计算机设备及存储介质 - Google Patents
芯片验证方法、***、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN113032202B CN113032202B CN202110323308.XA CN202110323308A CN113032202B CN 113032202 B CN113032202 B CN 113032202B CN 202110323308 A CN202110323308 A CN 202110323308A CN 113032202 B CN113032202 B CN 113032202B
- Authority
- CN
- China
- Prior art keywords
- module
- tested
- operation result
- sub
- verification
- 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 169
- 238000000034 method Methods 0.000 title claims abstract description 97
- 238000012360 testing method Methods 0.000 claims abstract description 110
- 238000012545 processing Methods 0.000 claims abstract description 40
- 230000006870 function Effects 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 31
- 238000004590 computer program Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012216 screening Methods 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/26—Functional testing
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)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种芯片验证方法、***、装置、计算机设备及存储介质,包括:获取芯片中待测模块对应的软件算法的可执行文件;分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
Description
技术领域
本公开涉及芯片开发技术领域,具体而言,涉及一种芯片验证方法、***、装置、计算机设备及存储介质。
背景技术
芯片研发时间的长短影响着芯片成品上市后的竞争力,芯片验证时间对整个研发周期有决定性的影响,所以如何在保证验证的完备性的基础上缩短验证时间是芯片验证从业人员需要考虑的问题。
由于芯片是基于算法进行开发的,在验证的过程中,需要先基于算法构建参考验证模型,然后同时通过参考验证模型和芯片去对测试数据进行处理,由于硬件实现和软件实现之间的差异,二者的处理结果可能不一致。若二者处理结果不一致,一般会修改算法。当算法修改之后,参考验证模型需要对应修改,而参考验证模型的修改过程较为繁琐,因此,这种验证方法效率较低。
发明内容
本公开实施例至少提供一种芯片验证方法、***、装置、计算机设备及存储介质。
第一方面,本公开实施例提供了一种芯片验证方法,包括:
获取芯片中待测模块对应的软件算法的可执行文件;
分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
基于上述方法,可以直接基于待测模块对应的软件算法的可执行文件对第一测试数据进行处理,然后将可执行文件对第一测试数据的第一运算结果,和待测模块对第一测试数据的第二运算结果进行对比,确定待测模块的验证结果,这样,当需要对软件算法进行时,可以直接利用修改后的软件算法对应的可执行文件再对待测模块进行验证,通过这种方法,节省了构建和修改参考验证模型的过程,而是直接将可执行文件作为参考验证模型,提高了芯片验证的效率。
一种可能的实施方式中,所述方法还包括:
在对所述待测模块验证通过的情况下,获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据;
分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果;
基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
通过对待测模块中的待测子模块进行验证,可以实现对于待测模块更细致的验证,因此可以在提高芯片验证效率的同时,进一步提升验证的完备性。
一种可能的实施方式中,所述芯片为图像信号处理ISP芯片。
一种可能的实施方式中,所述方法还包括:
若所述第一运算结果和所述第二运算结果不一致,执行调整指令;其中,所述调整指令包括针对所述待测模块进行调整的第一调整指令,或者针对所述待测模块和所述软件算法进行调整的第二调整指令;
重新执行针对所述待测模块的验证过程,直至所述第一运算结果和所述第二运算结果一致。
一种可能的实施方式中,所述方法还包括根据以下方法确定所述待测模块中待测子模块:
确定所述待测模块中各个子模块的调用关系;
基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定待测子模块。
通过对待测模块中的子模块的筛选,可以实现对于重要度较高的子模块的验证,进而进一步提高验证效率。
一种可能的实施方式中,所述方法还包括:
获取所述第一测试数据,并将所述第一测试数据存储在所述可执行文件指示的用于存储输入数据的第一目标存储位置;
所述方法还包括根据以下方法确定所述第一运算结果:
运行所述可执行文件,从所述第一目标存储位置获取所述第一测试数据;
基于所述可执行文件对所述第一测试数据进行处理,确定所述第一运算结果,并将所述第一运算结果存储在所述可执行文件指示的用于存储输出数据的第二目标存储位置;
所述基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果,包括:
从所述第二目标存储位置读取所述第一运算结果,以及接收所述待测模块输出的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
第二方面,本公开实施例还提供一种芯片验证***,包括:
数据生成单元,用于生成针对待测模块的第一测试数据;
序列调度单元,用于将所述第一测试数据调度至主验证单元以及算法运算单元;
所述算法运算单元,用于基于所述待测模块对应的软件算法的可执行文件,对所述第一测试数据进行处理,得到第一运算结果,并将所述第一运算结果传输至主验证单元;
所述主验证单元,用于将所述第一测试数据驱动至所述待测模块,获取所述待测模块对所述第一测试数据的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
一种可能的实施方式中,所述数据生成单元,还用于:在对所述待测模块验证通过的情况下,生成针对所述待测模块的待测子模块的第二测试数据;
所述序列调度单元,还用于:将所述第二测试数据调度至子验证单元;
所述子验证单元,用于将所述第二测试数据驱动至所述待测子模块,接收所述待测子模块对所述第二测试数据的第三运算结果,以及调用所述待测子模块对应的函数对所述第二测试数据进行处理,得到第四运算结果,并基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
第三方面,本公开实施例提供了一种芯片验证装置,包括:
获取模块,用于获取芯片中待测模块对应的软件算法的可执行文件;
运算模块,用于分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
验证模块,用于基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
一种可能的实施方式中,所述获取模块,还用于:
在对所述待测模块验证通过的情况下,获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据;
所述运算模块,还用于分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果;
所述验证模块,还用于基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
一种可能的实施方式中,所述芯片为图像信号处理ISP芯片。
一种可能的实施方式中,所述装置还包括调整模块,用于:
若所述第一运算结果和所述第二运算结果不一致,执行调整指令;其中,所述调整指令包括针对所述待测模块进行调整的第一调整指令,或者针对所述待测模块和所述软件算法进行调整的第二调整指令;
重新执行针对所述待测模块的验证过程,直至所述第一运算结果和所述第二运算结果一致。
一种可能的实施方式中,所述运算模块,用于根据以下方法确定所述待测模块中待测子模块:
确定所述待测模块中各个子模块的调用关系;
基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定待测子模块。
一种可能的实施方式中,所述获取模块,还用于:
获取所述第一测试数据,并将所述第一测试数据存储在所述可执行文件指示的用于存储输入数据的第一目标存储位置;
所述运算模块,用于根据以下方法确定所述第一运算结果:
运行所述可执行文件,从所述第一目标存储位置获取所述第一测试数据;
基于所述可执行文件对所述第一测试数据进行处理,确定所述第一运算结果,并将所述第一运算结果存储在所述可执行文件指示的用于存储输出数据的第二目标存储位置;
所述验证模块,在基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果时,用于:
从所述第二目标存储位置读取所述第一运算结果,以及接收所述待测模块输出的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
第四方面,本公开实施例还提供一种计算机设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
第五方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
关于上述芯片验证***、装置、计算机设备、及计算机可读存储介质的效果描述参见上述芯片验证方法的说明,这里不再赘述。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种芯片验证方法的流程图;
图2示出了本公开实施例所提供的芯片验证方法中,芯片结构与算法流程的对应示意图;
图3示出了本公开实施例所提供的芯片验证方法中,对待测模块中的待测子模块进行验证方法的流程图;
图4示出了本公开实施例所提供的一种芯片验证***的架构示意图;
图5示出了本公开实施例所提供的芯片验证***中主验证单元的结构示意图;
图6示出了本公开实施例所提供的芯片验证***中子验证单元的结构示意图;
图7示出了本公开实施例所提供的一种ISP芯片验证***的架构示意图;
图8示出了本公开实施例所提供的一种芯片验证装置的架构示意图;
图9示出了本公开实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
本公开中所述芯片为数字芯片,所述芯片验证为在芯片流片之前的验证过程,因此所述芯片并非实体芯片,而是由前端设计的芯片,或者可以理解为芯片代码。
相关技术中,在对芯片验证时,一般是先基于芯片对应的算法构建参考验证模型,所述参考验证模型对于测试数据的处理结果与所述算法对于测试数据的处理结果相同,一般的,芯片对应的算法采用C语言或者C++语言进行编写,而所述参考验证模型,为采用更接近硬件语言的语言对所述算法进行实现,例如采用systemverilog语言实现,以便于更细致的检测算法的可能出现的问题。
然而由于硬件实现与软件实现之间的差异,导致芯片对测试数据的处理结果与参考验证模型对测试数据的处理结果可能不同。
这里,所述硬件实现与软件实现之间的差异,包括算法本身设计可能会有问题,或者在基于算法设计芯片时,芯片设计的问题;或者部分处理步骤能够在算法实现,但是无法应用于芯片上。
当芯片对测试数据的处理结果与参考验证模型对测试数据的处理结果不同时,一般是需要修改算法,当算法修改后,由于参考验证模型是基于算法实现的,因此参考验证模型也需要对应修改,而参考验证模型的修改过程较为繁琐,因此这种验证方法效率较低。
基于上述研究,本公开提供了一种芯片验证方法、装置、计算机设计即存储介质,可以直接基于待测模块对应的软件算法的可执行文件对第一测试数据进行处理,然后将可执行文件对第一测试数据的第一运算结果,和待测模块对第一测试数据的第二运算结果进行对比,确定待测模块的验证结果,这样,当需要对软件算法进行修改时,可以直接利用修改后的软件算法对应的可执行文件再对待测模块进行验证,通过这种方法,节省了构建和修改参考验证模型的过程,而是直接将可执行文件作为参考验证模型,提高了芯片验证的效率。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种芯片验证方法进行详细介绍,本公开实施例所提供的芯片验证方法一般在验证平台上执行,所述验证平台一般部署在具有一定计算能力的计算机设备上,该计算机设备例如可以为个人计算机、服务器等。
参见图1所示,为本公开实施例提供的一种芯片验证方法的流程图,所述方法包括步骤101~步骤103,其中:
步骤101、获取芯片中待测模块对应的软件算法的可执行文件。
步骤102、分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果。
步骤103、基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
以下是对上述步骤的详细说明。
针对步骤101、
以数据芯片为图像信号处理ISP芯片为例,在ISP芯片中芯片内部模块的划分与ISP芯片对应的算法的算法流程保持一致,即在ISP芯片内部有某一函数子模块,则在ISP芯片对应的算法中对应有函数,示例性的如图2所示。
在一种特殊的场景中,对于某些流程,若芯片中对应模块内的结构与该算法流程的函数结构保持一致,或者该算法流程中的某些函数在经过封装后与芯片对应的模块保持一致,则该类芯片也可通过本方案进行验证。
实际应用中,具体上述结构和算法对应特点的芯片都适用于本公开所提供的验证方法,下面将以ISP芯片为例,对本公开所提供的方法进行详细的描述。
所述待测模块对应的软件算法,为所述待测模块在设计时所依据的算法,理论上,所述待测模块与所述软件算法对于同一数据的处理结果应该相同。
所述获取所述软件算法的可执行文件,可以是指将所述软件算法的处理代码打包,生成一个可以运行的文件,该可执行文件有固定的输入数据的获取地址,以及输出数据的存储地址,所述获取地址和存储地址都是记录在所述可执行文件中的代码中的。
针对步骤102和步骤103、
以所述芯片为ISP芯片为例,所述第一测试数据可以包括图像数据和配置数据,所述配置数据可以包括用于描述所述图像数据对应的图像的属性信息,例如快门参数,曝光率等。
在一种可能的实施方式中,在获取到第一测试数据后,可以将所述第一测试数据以文本的形式存储在所述可执行文件指示的用于存储输入数据的第一目标存储位置中,当所述可执行文件被运行之后,可以从所述第一目标存储位置获取所述第一测试数据的文本,然后基于所述可执行文件对所述第一测试数据的文本进行处理,确定所述第一运算结果。
可执行文件在生成第一运算结果之后,可以将所述第一运算结果存储在所述可执行文件指示的用于存储输出数据的第二目标存储位置,这里,第一运算结果也是以文本的形式进行存储的,所述第一目标存储位置和所述第二目标存储位置例如都可以是指文件夹。
在利用待测试模块处理第一测试数据时,可以将第一测试数据通过对应的驱动模块,驱动至待测试模块,待测试模块在接收到输入数据(即所述第一测试数据)后,可以对输入数据进行处理,得到第二运算结果。
这里,由于待测试模块为通过软件描述的硬件模块,所述将第一测试数据通过对应的驱动模块,驱动至待测试模块,可以理解为通过对应的驱动模块将所述第一测试数据发送至待测试模块对应的接口,以使待测试模块对所述第一测试数据进行处理。
在基于所述第一运算结果和所述第二运算结果,确定待测试模块的验证结果时,可以先从所述第二目标存储位置读取所述第一运算结果,以及接收所述待测模块输出的第二运算结果,然后基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
具体的,在基于第一运算结果和第二运算结果,确定针对所述待测模块的验证结果时,若所述第一运算结果和所述第二运算结果一致,则确定所述待测模块验证通过。
若所述第一运算结果和所述第二运算结果不一致,则可以执行用户输入的调整指令,其中,所述调整指令包括针对所述待测模块进行调整的第一调整指令,或者针对所述待测模块和所述软件算法进行调整的第二调整指令;然后重新执行针对所述待测模块的验证过程(即重新执行步骤102~步骤103的过程),直至所述第一运算结果和所述第二运算结果一致。
这里,所述对待测模块进行调整可以是理解为对待测模块对应的软件代码进行调整,所述对软件算法进行调整可以理解为对软件算法的代码进行调整,在调整待测模块和/或软件算法的代码时,可以理解为用户输入了多个调整指令。
在所述第一运算结果和所述第二运算结果不一致时,其原因可能是因为软件算法的问题,或者是待测模块的问题,当软件算法需要修改时,待测模块是基于软件算法设计的,因此待测模块需要对应修改,因此修改的可以是软件算法和待测模块,或者仅修改待测模块,所述待测模块都是必须要修改的。
在一种可能的实施方式中,在对待测模块验证通过的情况下,可以根据如图3所示的方法,对待测模块中的待测子模块进行验证,具体可以包括以下几个步骤:
步骤301、获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据。
其中,不同待测子模块对应的第二测试数据可能不同。
步骤302、分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果。
步骤303、基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
通过对待测模块中的待测子模块进行验证,可以实现对于待测模块更细致的验证,因此可以在提高芯片验证效率的同时,进一步提升验证的完备性。
实际应用中,所述获取待测模块中的待测子模块对应的软件算法中的目标函数,示例性的可以通过systemverilog的直接编程接口(Direct Programming Interface,DPI)直接调用所述软件算法中的目标函数。
这里,通过DPI接口调用的目标函数可以理解为该函数对应的参考模型,所述利用目标函数处理所述第二测试数据,可以是利用该目标函数对应的参考模型,处理所述第二测试数据。
所述利用待测子模块处理第二测试数据,可以是将所述第二测试数据通过所述待测子模块对应的驱动传输至所述待测子模块中,所述待测子模块在接收到输入数据(这里指上述第二测试数据)后,可以对所述输入数据进行处理,得到所述第三运算结果。
所述基于第三运算结果和所述第四运算结果,确定所述待测子模块的验证结果的过程与上述基于第一运算结果和第二运算结果,确定待测模块的验证结果的过程类似,在此将不再赘述。
一般的,由于对于待测子模块的验证是在待测模块验证通过的情况下进行的,所述待测子模块是待测模块中的模块,因此对于所述目标函数和待测子模块的调整较小。
在一种可能的实施方式中,对于所述待测模块中的每一个子模块,都可以作为上述待测子模型,并按照图3所示的方法进行验证;在另外一种可能的实施方式中,为了提高验证效率,可以从待测模块中筛选出部分子模块作为上述待测子模块,并进行验证。
具体的,可以先确定待测模块中各个子模块的调用关系,然后基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定待测子模块。
示例性的,可以确定每个子模块被调用的次数,被调用次数越多,说明该子模块的重要度越高,因此可以将对应的被调用的次数超过预设次数的子模块作为所述待测子模块。
基于相同的构思,本公开还提供了一种芯片验证***,参见图4所示,为本公开实施例提供的一种芯片验证***的架构示意图,包括:
数据生成单元,用于生成针对待测模块的第一测试数据,并将生成的第一测试数据发送至所述序列调度单元;
序列调度单元,用于将所述第一测试数据调度至主验证单元以及算法运算单元;
所述算法运算单元,用于基于所述待测模块对应的软件算法的可执行文件,对所述第一测试数据进行处理,得到第一运算结果,并将所述第一运算结果传输至主验证单元;
所述主验证单元,用于将所述第一测试数据驱动至所述待测模块,获取所述待测模块对所述第一测试数据的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
在一种可能的实施方式中,所述主验证单元的结构可以如图5所示,包括数据驱动模块和数据对比模块,所述数据驱动模块用于将所述第一测试数据驱动至所述待测模块,所述数据对比模块用于获取所述待测模块对所述第一测试数据的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
以ISP芯片为例,所述主验证单元的数据驱动模块可以包括图像数据驱动模块和配置数据驱动模块,所述图像数据驱动模块用于将图像数据驱动至所述待测模块对应的图像数据接口,所述配置数据驱动模块用于将配置数据驱动至所述待测模块对应的配置数据接口,以使所述待测模块基于所述图像数据和配置数据进行运算,得到第二运算结果。
在另外一种可能的实施方式中,所述数据生成单元,还用于:在对所述待测模块验证通过的情况下,生成针对所述待测模块的待测子模块的第二测试数据;
所述序列调度单元,还用于:将所述第二测试数据调度至子验证单元;
所述子验证单元,用于将所述第二测试数据驱动至所述待测子模块,接收所述待测子模块对所述第二测试数据的第三运算结果,以及调用所述待测子模块对应的函数对所述第二测试数据进行处理,得到第四运算结果,并基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
在一种可能的实施方式中,所述子验证单元的结构可以如图6所示,包括数据驱动模块,函数运算模块,以及数据对比模块。所述数据驱动模块,用于将所述第二测试数据驱动至所述待测子模块,不同的待测子模块所对应的数据驱动模块可能不同;所述函数运算模块,用于调用所述待测子模块对应的函数对所述第二测试数据进行处理,得到第四运算结果;所述数据对比模块,用于接收所述待测子模块对所述第二测试数据的第三运算结果,基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果
或者,所述函数运算模块可以是一个单独的模块,即所述函数运算模块在调用所述待测子模块对应的函数对所述第二测试数据进行处理,得到第四运算结果后,将所述第四运算结果传输至所述子验证单元,所述子验证单元再执行数据比较的过程。
或者,所述主验证单元和所述子验证单元可以共用一个数据对比模块,即在生成第三运算结果和第四运算结果后,可以将第三运算结果和第四运算结果传输至主验证单元的数据对比模块中,由主验证单元的数据对比模块执行对于待测子模块的验证过程。
下面将以待测模块为ISP芯片中的模块,ISP芯片对应的软件算法中包括四个函数为例,对上述芯片验证方法进行详细介绍。
参见图7所示,为本公开实施例提供的一种ISP芯片验证***的架构示意图,包括:
数据生成单元,用于生成图像数据和配置数据,并将生成的图像数据和配置数据发送至所述序列调度单元。
序列调度单元,用于将所述图像数据和配置数据调度至主验证单元;以及生成图像数据和配置数据分别对应的图像数据文本和配置数据文本,并运行待测模块对应的ISP算法的可执行文件,对图像数据文本和配置数据文本进行处理,生成第一运算结果。
所述主验证单元,用于通过图像数据驱动(相当于图中的图像数据代理)将图像数据驱动至待测模块,通过配置数据驱动(相当于图中的配置数据代理)将配置数据驱动至待测模块,并接收待测模块基于所述图像数据和配置数据生成的第二运算结果,并通过数据比较器,对所述第一运算结果和第二运算结果进行比较,确定待测模块的验证结果。
待测模块中包括函数1子模块、函数2子模块、函数3子模块以及函数4子模块,分别与ISP算法中函数1、函数2、函数3、函数4对应。
子验证单元,包括函数1驱动(同图中的函数1代理)、函数2驱动(同图中的函数2代理)、函数3驱动(同图中的函数3代理)、函数4驱动(同图中的函数4代理)、以及配置数据驱动(同图中的配置代理)。
在对所述待测模块中的各个函数子模块进行验证时,可以通过数据生成单元生成各个函数子模块对应的测试数据和配置数据,然后通过子验证单元中的各个函数驱动将测试数据驱动至待测模块中的各个函数子模块,以及通过配置数据驱动将配置数据驱动至待测模块,以通过待测模块的函数子模块对测试数据进行处理,得到第三运算结果,同时,可以通过DPI接口调用ISP算法中的函数作为所述各个函数子模块对应的参考模型,并基于参考模型对测试数据进行处理,得到第四运算结果,然后通过数据比较器对比第三运算结果和第四运算结果,这里所使用的数据比较器可以是指主验证单元中的数据比较器,或者是所述自验证单元中包括的数据比较器。
需要说明的是,在验证***中第一运算结果、第二运算结果、第三运算结果以及第四运算结果都是文本格式,例如可以是TXT文本。
本公开提供的芯片验证方法,可以直接基于待测模块对应的软件算法的可执行文件对第一测试数据进行处理,然后将可执行文件对第一测试数据的第一运算结果,和待测模块对第一测试数据的第二运算结果进行对比,确定待测模块的验证结果,这样,当需要对软件算法进行时,可以直接利用修改后的软件算法对应的可执行文件再对待测模块进行验证,通过这种方法,节省了构建和修改参考验证模型的过程,而是直接将可执行文件作为参考验证模型,提高了芯片验证的效率。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与芯片验证方法对应的芯片验证装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述芯片验证方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图8所示,为本公开实施例提供的一种芯片验证装置的架构示意图,所述装置包括:获取模块801、运算模块802、验证模块803、调整模块804;其中,
获取模块801,用于获取芯片中待测模块对应的软件算法的可执行文件;
运算模块802,用于分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
验证模块803,用于基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
一种可能的实施方式中,所述获取模块801,还用于:
在对所述待测模块验证通过的情况下,获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据;
所述运算模块802,还用于分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果;
所述验证模块803,还用于基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
一种可能的实施方式中,所述芯片为图像信号处理ISP芯片。
一种可能的实施方式中,所述装置还包括调整模块804,用于:
若所述第一运算结果和所述第二运算结果不一致,执行调整指令;其中,所述调整指令包括针对所述待测模块进行调整的第一调整指令,或者针对所述待测模块和所述软件算法进行调整的第二调整指令;
重新执行针对所述待测模块的验证过程,直至所述第一运算结果和所述第二运算结果一致。
一种可能的实施方式中,所述运算模块802,用于根据以下方法确定所述待测模块中待测子模块:
确定所述待测模块中各个子模块的调用关系;
基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定待测子模块。
一种可能的实施方式中,所述获取模块801,还用于:
获取所述第一测试数据,并将所述第一测试数据存储在所述可执行文件指示的用于存储输入数据的第一目标存储位置;
所述运算模块802,用于根据以下方法确定所述第一运算结果:
运行所述可执行文件,从所述第一目标存储位置获取所述第一测试数据;
基于所述可执行文件对所述第一测试数据进行处理,确定所述第一运算结果,并将所述第一运算结果存储在所述可执行文件指示的用于存储输出数据的第二目标存储位置;
所述验证模块803,在基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果时,用于:
从所述第二目标存储位置读取所述第一运算结果,以及接收所述待测模块输出的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
基于同一技术构思,本公开实施例还提供了一种计算机设备。参照图9所示,为本公开实施例提供的计算机设备900的结构示意图,包括处理器901、存储器902、和总线903。其中,存储器902用于存储执行指令,包括内存9021和外部存储器9022;这里的内存9021也称内存储器,用于暂时存放处理器901中的运算数据,以及与硬盘等外部存储器9022交换的数据,处理器901通过内存9021与外部存储器9022进行数据交换,当计算机设备900运行时,处理器901与存储器902之间通过总线903通信,使得处理器901在执行以下指令:
获取芯片中待测模块对应的软件算法的可执行文件;
分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的芯片验证方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的芯片验证方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种芯片验证方法,其特征在于,包括:
获取芯片中待测模块对应的软件算法的可执行文件;
分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果;
在对所述待测模块验证通过的情况下,获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据;其中,所述待测子模块为基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定的;
分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果;
基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
2.根据权利要求1所述的方法,其特征在于,所述芯片为图像信号处理ISP芯片。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若所述第一运算结果和所述第二运算结果不一致,执行调整指令;其中,所述调整指令包括针对所述待测模块进行调整的第一调整指令,或者针对所述待测模块和所述软件算法进行调整的第二调整指令;
重新执行针对所述待测模块的验证过程,直至所述第一运算结果和所述第二运算结果一致。
4.根据权利要求1~3任一所述的方法,其特征在于,所述方法还包括:
获取所述第一测试数据,并将所述第一测试数据存储在所述可执行文件指示的用于存储输入数据的第一目标存储位置;
所述方法还包括根据以下方法确定所述第一运算结果:
运行所述可执行文件,从所述第一目标存储位置获取所述第一测试数据;
基于所述可执行文件对所述第一测试数据进行处理,确定所述第一运算结果,并将所述第一运算结果存储在所述可执行文件指示的用于存储输出数据的第二目标存储位置;
所述基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果,包括:
从所述第二目标存储位置读取所述第一运算结果,以及接收所述待测模块输出的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果。
5.一种芯片验证***,其特征在于,包括:
数据生成单元,用于生成针对待测模块的第一测试数据;以及,在对所述待测模块验证通过的情况下,生成针对所述待测模块的待测子模块的第二测试数据;
序列调度单元,用于将所述第一测试数据调度至主验证单元以及算法运算单元;以及,在对所述待测模块验证通过的情况下,将所述第二测试数据调度至子验证单元;
所述算法运算单元,用于基于所述待测模块对应的软件算法的可执行文件,对所述第一测试数据进行处理,得到第一运算结果,并将所述第一运算结果传输至主验证单元;
所述主验证单元,用于将所述第一测试数据驱动至所述待测模块,获取所述待测模块对所述第一测试数据的第二运算结果,并基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果;
所述子验证单元,用于将所述第二测试数据驱动至所述待测子模块,接收所述待测子模块对所述第二测试数据的第三运算结果,以及调用所述待测子模块对应的函数对所述第二测试数据进行处理,得到第四运算结果,并基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果;其中,所述待测子模块为基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定的。
6.一种芯片验证装置,其特征在于,包括:
第一获取模块,用于获取芯片中待测模块对应的软件算法的可执行文件;
第一运算模块,用于分别利用所述可执行文件和所述待测模块处理第一测试数据,得到第一运算结果和第二运算结果;
第一验证模块,用于基于所述第一运算结果和所述第二运算结果,确定针对所述待测模块的验证结果;
第二获取模块,用于在对所述待测模块验证通过的情况下,获取所述待测模块中的待测子模块对应的软件算法中的目标函数,以及针对所述待测子模块的第二测试数据;其中,所述待测子模块为基于所述待测模块中各个子模块的调用关系,从所述各个子模块中确定的;
第二运算模块,用于分别利用所述待测子模块和所述目标函数,处理所述第二测试数据,得到第三运算结果和第四运算结果;
第二验证模块,用于基于所述第三运算结果和所述第四运算结果,确定针对所述待测子模块的验证结果。
7.一种计算机设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当计算机设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至4任一项所述的芯片验证方法的步骤。
8.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至4任一项所述的芯片验证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110323308.XA CN113032202B (zh) | 2021-03-26 | 2021-03-26 | 芯片验证方法、***、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110323308.XA CN113032202B (zh) | 2021-03-26 | 2021-03-26 | 芯片验证方法、***、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032202A CN113032202A (zh) | 2021-06-25 |
CN113032202B true CN113032202B (zh) | 2024-03-05 |
Family
ID=76474148
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110323308.XA Active CN113032202B (zh) | 2021-03-26 | 2021-03-26 | 芯片验证方法、***、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032202B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113884857B (zh) * | 2021-09-29 | 2024-03-08 | 上海阵量智能科技有限公司 | 芯片、芯片压力测试方法、装置、电子设备及存储介质 |
CN115237703B (zh) * | 2022-09-21 | 2023-02-28 | 苏州浪潮智能科技有限公司 | 一种基板管理控制芯片调试方法、装置、设备及可读介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622312A (zh) * | 2003-11-27 | 2005-06-01 | 北京北阳电子技术有限公司 | 一种验证芯片硬件行为与软件模拟行为的一致性的方法 |
CN101105769A (zh) * | 2007-06-27 | 2008-01-16 | 北京中星微电子有限公司 | 芯片验证的预处理方法和预处理装置 |
CN104536885A (zh) * | 2014-12-17 | 2015-04-22 | 记忆科技(深圳)有限公司 | 一种生成Soc随机验证平台的方法 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN106777665A (zh) * | 2016-12-07 | 2017-05-31 | 盛科网络(苏州)有限公司 | 提高协同仿真平台验证效率的方法及*** |
CN111400116A (zh) * | 2020-03-10 | 2020-07-10 | 珠海全志科技股份有限公司 | 芯片测试验证方法、计算机装置及计算机可读存储介质 |
-
2021
- 2021-03-26 CN CN202110323308.XA patent/CN113032202B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1622312A (zh) * | 2003-11-27 | 2005-06-01 | 北京北阳电子技术有限公司 | 一种验证芯片硬件行为与软件模拟行为的一致性的方法 |
CN101105769A (zh) * | 2007-06-27 | 2008-01-16 | 北京中星微电子有限公司 | 芯片验证的预处理方法和预处理装置 |
CN104536885A (zh) * | 2014-12-17 | 2015-04-22 | 记忆科技(深圳)有限公司 | 一种生成Soc随机验证平台的方法 |
CN106708687A (zh) * | 2015-11-12 | 2017-05-24 | 青岛海信电器股份有限公司 | 一种基于可执行文件的芯片验证方法和装置 |
CN106777665A (zh) * | 2016-12-07 | 2017-05-31 | 盛科网络(苏州)有限公司 | 提高协同仿真平台验证效率的方法及*** |
CN111400116A (zh) * | 2020-03-10 | 2020-07-10 | 珠海全志科技股份有限公司 | 芯片测试验证方法、计算机装置及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113032202A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110555296B (zh) | 基于区块链的身份验证方法、装置及设备 | |
CN107122289B (zh) | ***回归测试的方法、装置及*** | |
CN113032202B (zh) | 芯片验证方法、***、装置、计算机设备及存储介质 | |
CN108596267B (zh) | 一种图像重建方法、终端设备及计算机可读存储介质 | |
CN110401634A (zh) | 一种Web应用漏洞检测规则引擎实现方法及终端 | |
US7853932B2 (en) | System, method and computer program product for checking a software entity | |
CN110189122B (zh) | 为区块链上的数据锚定时间的方法及装置、电子设备 | |
CN110147685B (zh) | 数据验证方法、***、装置及设备 | |
CN107832059A (zh) | 一种基于Makefile的代码静态分析方法和装置 | |
CN106708723B (zh) | 一种测试、校验方法及装置 | |
CN111274120B (zh) | 一种接口文档的验证方法和装置 | |
US20100037190A1 (en) | Methods and systems for on-the-fly chip verification | |
CN114218882A (zh) | 一种SoC芯片检验方法、装置及相关设备 | |
CN110263548A (zh) | 一种Web应用漏洞检测规则生成方法、终端及存储介质 | |
CN113704126A (zh) | 验证方法及其装置、计算机存储介质以及处理器 | |
CN107203373B (zh) | 界面控件的获取方法、测试方法及获取装置、测试装置 | |
US20120291019A1 (en) | Program verification apparatus based on model verifying and storage medium | |
CN113760751B (zh) | 生成测试用例的方法、电子设备及存储介质 | |
CN111258882B (zh) | 一种基于数字媒体***的测试数据获取方法及装置 | |
CN113742775A (zh) | 一种图像数据安全检测方法、***和存储介质 | |
CN109656805B (zh) | 用于业务分析的代码链路的生成方法、装置及业务服务器 | |
CN114443375A (zh) | 测试方法及装置、电子装置及计算机可读存储介质 | |
US20060048082A1 (en) | Test-cases for functional verification of system-level interconnect | |
CN110020670B (zh) | 一种模型迭代方法、装置及设备 | |
CN106815136B (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 |