CN115048888A - 集成电路验证方法、装置、仿真系统、电子设备及介质 - Google Patents

集成电路验证方法、装置、仿真系统、电子设备及介质 Download PDF

Info

Publication number
CN115048888A
CN115048888A CN202210912653.1A CN202210912653A CN115048888A CN 115048888 A CN115048888 A CN 115048888A CN 202210912653 A CN202210912653 A CN 202210912653A CN 115048888 A CN115048888 A CN 115048888A
Authority
CN
China
Prior art keywords
excitation data
frame
register
configuration file
information corresponding
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.)
Pending
Application number
CN202210912653.1A
Other languages
English (en)
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.)
Shanghai Power Tensors Intelligent Technology Co Ltd
Original Assignee
Shanghai Power Tensors Intelligent Technology Co Ltd
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 Shanghai Power Tensors Intelligent Technology Co Ltd filed Critical Shanghai Power Tensors Intelligent Technology Co Ltd
Priority to CN202210912653.1A priority Critical patent/CN115048888A/zh
Publication of CN115048888A publication Critical patent/CN115048888A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

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)
  • Tests Of Electronic Circuits (AREA)

Abstract

本公开提供了一种集成电路验证方法、装置、仿真系统、电子设备及存储介质,其中,该方法包括:获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。

Description

集成电路验证方法、装置、仿真系统、电子设备及介质
技术领域
本公开涉及集成电路设计技术领域,具体而言,涉及一种集成电路验证方法、装置、仿真系统、电子设备及存储介质。
背景技术
随着人们对图像处理效果和功能的要求越来越高,市场对于消费电子领域的图像信号处理(Image Signal Processing,ISP)芯片的技术要求也越来越高,这使得ISP芯片技术迅速迭代。高分辨率、高帧率的适用几乎成为了前沿ISP芯片必备的水准,市场的需求推动着ISP芯片的发展,而ISP芯片的发展也带来了ISP芯片验证流程的复杂性成倍增长,验证时间长的问题。
发明内容
本公开实施例至少提供一种集成电路验证方法、装置、电子设备及存储介质。
第一方面,本公开实施例提供了一种集成电路验证方法,包括:
获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
第二方面,本公开实施例还提供一种集成电路验证装置,包括:
获取模块,用于获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
仿真模块,用于从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
验证模块,用于基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
第三方面,本公开实施例还提供一种对待测试集成电路的仿真系统,包括:激励生成模块、待测模块、以及微控制器;
所述激励生成模块,用于将存储至预设的第一存储空间中的激励数据序列中的多帧激励数据依次读出,并以预设时序向待测模块发送每帧激励数据;
所述微控制器,用于从所述激励数据序列对应的配置文件中读取与每帧激励数据对应的配置信息,并向所述待测模块发送所述每帧激励数据对应的配置信息;其中,所述配置文件被预先存储在所述微控制器中;
所述待测模块,用于响应于接收到所述每帧激励数据、以及与所述每帧激励数据对应的配置信息,基于所述每帧激励数据对应的配置信息,对所述每帧激励数据进行仿真处理,得到所述每帧激励数据对应的仿真处理结果。
第四方面,本公开可选实现方式还提供一种电子设备,处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述机器可读指令被所述处理器执行时执行上述第一方面;或者包括如上述第三方面所述的仿真系统。
第五方面,本公开可选实现方式还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
本公开实施例公开的集成电路验证方法,利用与待测试集成电路对应的描述信息构建测试环境;在获取与待测试集成电路对应的激励数据序列的配置文件后,能够自动从配置文件中读取与每帧激励数据对应的配置信息,并利用测试环境以及自动读取到的配置信息对每帧激励数据进行仿真处理,从而实现了自动移植激励数据的配置参数,提升配置参数的移植效率,降低配置参数移植过程中容易出错的概率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开一些实施例所提供的集成电路验证方法的流程图;
图2示出了本公开一些实施例所提供的试环境结构的具体示意图;
图3示出了本公开一些实施例所提供的微控制器固件控制微控制器工作的具体示意图;
图4示出了本公开一些实施例所提供的微控制器对多帧图像进行寄存器配置的具体示意图;
图5示出了本公开一些实施例所提供集成电路验证装置的示意图;
图6示出了本公开一些实施例所提供集成电路验证装置的示意图;
图7示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
经研究发现,集成电路的设计步骤通常包括:生成行为级描述、生成寄存器转换级电路(Register Transfer Level,RTL)描述、将行为级描述或者RTL级描述转换为门级网表、以及基于门级网表生成物理版图(集成电路)。同时,在设计集成电路的过程中,为了保证所生成的集成电路性能,通常需要在生成RTL描述后,对集成电路进行验证。但随着集成电路行业的快速发展,带来集成电路技术飞速迭代,同时也为集成电路设计带来越来越多的验证加速需求,当前采用通用验证方法学(Universal Verification Methodology,UVM)验证的方式,已经无法满足越来越多的验证需求;为了解决该问题,目前会利用专用仿真加速器(emulator)来实现对集成电路的加速验证。
图像信号处理(image signal processing,ISP)芯片作为集成电路中的一种,在对其进行验证时,ISP的每个测试例(case)通常包括多帧图像,在许多复杂场景中,每帧图像需要配置大量的配置参数,例如每一帧图像可能需要不同的寄存器配置,且每次寄存器配置的内容、数量都可能不同;例如在利用ISP对一段视频流中的多帧视频进行处理过程中,需要对多帧图像分别进行降噪和锐化处理;因此,需要切换ISP芯片的处理模式实现对图像的不同处理,而不同处理过程中,需要为各帧图像配置不同的寄存器参数。而对集成电路的验证通常包括多个验证环节;激励数据序列的配置信息会用于各个验证环节;不同验证环节所采用的开发环境不同,导致了不同验证环节承载配置信息的文件格式也有所区别,这造成了配置信息需要在不同的验证环节之间进行移植。例如,当前在基于emulator对集成电路进行验证之前,需要采用人工的方式来手动写入每帧图像的相关配置参数;这导致移植配置信息速度慢,验证时间延长,降低验证效率。且由于时人工手动方式进行配置参数的移植导致容易出错,对ISP芯片的验证过程造成不利影响。
基于上述研究,本公开提供了一种集成电路验证方法,利用与待测试集成电路对应的描述信息构建测试环境;在获取与待测试集成电路对应的激励数据序列的配置文件后,能够自动从配置文件中读取与每帧激励数据对应的配置信息,并利用测试环境以及自动读取到的配置信息对每帧激励数据进行仿真处理,从而实现了自动移植激励数据的配置参数,提升配置参数的移植效率,降低配置参数移植过程中容易出错的概率。
另外,本公开实施例在对配置信息进行自动移植过程中,通过预先将激励数据序列中每一帧激励数据的待配置寄存器地址和寄存器值放到一起,整体存放在预设的地址空间中,并通过脚本预先将每一帧图像的待配置寄存器数量解析并提取出来,这些寄存器的配置信息将会以中间文件的方式传递给测试环境中的微控制器,并将待测模块的读取指示信号传递给微控制器。使得每当有读取指示信号发出给微控制器,微控制器就会进入到预先写好的读取执行程序中,执行自动化配置寄存器的逻辑,实现ISP芯片验证过程中的自动化帧间配置流程。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本公开针对上述问题所提出的解决方案,都应该是发明人在本公开过程中对本公开做出的贡献。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种集成电路验证方法进行详细介绍,本公开实施例所提供的集成电路验证方法的执行主体一般为仿真加速器(emulator)。仿真加速器能够提供芯片在仿真验证环节中所需要的硬件环境以及软件环境。在一些可能的实现方式中,该集成电路验证方法可以通过仿真加速器中的处理器调用存储器中存储的计算机可读指令的方式来实现。
参见图1所示,为本公开实施例提供的集成电路验证方法的流程图,所述方法包括步骤S101~S103,其中:
S101:获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
S102:从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
S103:基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
本公开实施例步骤S101~S103可以基于自动化脚本执行。
在本公开实例中,在获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境后,从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果,并基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。在该过程中,所述激励数据序列中包括多帧激励数据,所述配置文件包括与多帧所述激励数据分别对应的配置信息,这些配置信息能够被仿真加速器自动读取,实现了自动移植激励数据的配置参数,提升配置参数的移植效率,降低配置参数移植过程中容易出错的概率。
需要注意的是,本公开提供的集成电路验证方法旨在提供一种自动化验证方法,所以可能存在的使用场景可以包括但不限于:硬件仿真、功能验证、形式验证等。而对于进行验证的集成电路可以包括但不限于:图像信号处理器(Image Signal Processor,ISP)、中央处理器(central processing unit,CPU)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、数字信号处理器(Digital Signal Processing,DSP)等。
下面以待测试集成电路为ISP芯片为例,对本公开实施例提供的集成电路验证方法加以说明。其中,ISP一般用来处理图像传感器的输出数据,如做自动曝光控制、自动增益控制、自动白平衡、色彩校正等功能的处理。
针对上述S101:激励数据序列是指由多帧激励数据构成的,用于输入至待测试集成电路的输入数据;其中,待测试集成电路为ISP芯片为例,该激励数据序列例如为视频,多帧激励数据例如为视频中的多帧图像。
配置文件是利用待测试集成电路的RTL代码对待测试集成电路进行仿真时所需要的相关文件,在配置文件中,记载了待测试集成电路验证过程中所需要的配置信息。
具体的,在许多的复杂场景中,视频中不同帧图像都需要配置不同的配置信息;以寄存器配置信息为例,不同的图像对应的寄存器配置的内容、数量都可能不同。其中,每帧图像对应的寄存器配置参数是不同的,这是因为ISP芯片对于每帧图像的处理方式可能各不相同(正如上述对于ISP的介绍),且即使是相同的处理方式,例如坏点矫正(Bad PixelCorrection,BPC),由于每帧图像内容并不相同,即存在的坏点并不相同,也会使得每帧图像对应的寄存器配置信息发生改变。
一种可选的实施方式中,本公开实施例提供一种获取与待测试集成电路对应的激励数据序列的配置文件的具体方式,包括:
获取所述待测试集成电路对应的激励数据序列的原始配置文件;
对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件。
在具体实施中,所述激励数据序列即用于对芯片进行测试的数据序列,只有保证了激励源最大的自由度,才能在输入一侧提供更丰富的组合,进行相关功能的验证。在本公开实施例中,所述激励数据序列中包括了多帧激励数据,即多帧用于测试的图像,这些图像对应的寄存器配置参数可以由所述原始配置文件获得。
由于利用仿真加速器对集成电路进行验证属于对集成电路进行验证过程中的一个环节,在不同的环境或系统中,可识别的文件格式可能是不同的,所以,原始配置文件需要进行格式转换,才能成为本公开实施例中仿真加速器所能识别的所述激励数据序列的配置文件。在不同的集成电路验证程序中,某些配置文件可能需要进行多次格式转换,且需要转换的格式也各不相同,能够进行文件格式转换的方法有多种,本公开在此不做限定。
一种可选的实施方式中,所述配置文件包括:寄存器配置文件;所述寄存器配置文件中携带有与所述激励数据序列中各帧激励数据分别对应的寄存器配置信息;
所述对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件,包括:
按照所述激励数据序列中各帧激励数据的顺序,从所述原始配置文件中读取各帧激励数据分别对应的寄存器配置信息;
将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件。
在具体实施中,可以将所述寄存器配置文件事先存放至一个预设的地址空间中,再通过脚本文件基于激励数据序列中各帧激励数据的顺序,进行每帧激励数据对应的寄存器配置信息的提取,并通过仿真加速器专用的指令将提取后的寄存器配置信息以预设形式写入至目标文件中,得到本公开实施中所使用的仿真加速器可识别的配置文件。
示例性的,寄存器配置信息的写入形式可以是寄存器地址加寄存器值的形式,例如,在形式上的顺序依次为寄存器1的地址、寄存器1的值、寄存器2的地址、寄存器2的值……、寄存器n的地址、寄存器n的值。
一种可选的实施方式中,各帧所述激励数据对应的寄存器配置信息包括:各帧所述激励数据对应的至少一个寄存器的寄存器地址以及寄存器值;
所述将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件,包括:
针对各帧激励数据,将与该帧激励数据对应每个寄存器的寄存器地址、以及寄存器值,生成一条预设数据长度的寄存器信息;基于该帧激励数据对应的至少一个寄存器分别对应的寄存器信息,生成与该帧激励数据对应的目标寄存器信息;
将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中,得到所述配置文件。
在具体实施中,每帧激励数据对应的寄存器数量可以为多个,这在上文中已给出说明。单个寄存器地址和寄存器值的大小通常不会超过32比特,所以我们就用两个32比特拼接在一起共64比特的数据来表示一个寄存器的寄存器信息。当某帧激励数据对应的寄存器数量为多个,那该帧激励数据所对应的寄存器信息将会为多组64比特大小的数据,所述多组64比特大小的数据将会构成该帧激励数据对应的目标寄存器信息。将每帧激励数据对应的目标寄存器信息依次写入至目标文件中,就可以得到包括了多帧所述激励数据分别对应的配置信息的配置文件。
示例性的,对于第A帧激励数据对应的寄存器数量为1,寄存器名称为寄存器1。基于寄存器的类型及承载的功能不同,寄存器的寄存器地址与寄存器值的大小也可能各不相同,此处以寄存器地址数据大小32比特,寄存器值数据大小32比特为例,上述第A帧激励数据对应的寄存器1的32比特大小的寄存器地址数据,以及32bit大小的寄存器值数据,将会作为第A帧激励数据对应的目标寄存器信息。所述第A帧激励数据对应的目标寄存器信息因为只包括了1个寄存器的配置信息,所以数据大小为64比特。在接下来将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中时,所述第A帧激励数据对应的目标寄存器信息将会占用目标文件存储空间中的某个64比特。
示例性的,若所述第A帧激励数据对应的目标寄存器信息包括了3个寄存器的配置信息,那么数据大小将会变成192比特。在接下来将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中时,所述第A帧激励数据对应的目标寄存器信息将会占用目标文件存储空间中的某个192比特。
待测试集成电路对应的描述信息,例如包括:待测试集成电路的功能代码,该功能代码例如包括:硬件描述语言(Hardware Description Language,HDL)代码、或寄存器转换级电路(Register Transfer Level,RTL)代码。
其中,待测试集成电路RTL代码,是利用集成电路的行为级描述生成的。行为级是最符合人类逻辑思维方式的描述角度,可以用C/C++等编程语言来描述;RTL级描述电路指的是用寄存器这一级别的描述方式来描述电路的数据流方式,其中,行为级描述的目标就是实现特定的功能而没有可综合的限制,RTL级描述的目标就是可综合,即可以转换至门级电路。设计人员在设计集成电路时,首先根据集成电路的具体需求,利用高级编程语言,如C/C++编写行为级描述对应的代码,然后将行为级描述的代码转换为RTL代码。从行为级到RTL级的转换,可以由集成电路设计人员手工翻译,也可以利用综合工具将行为级转换至RTL,如明导(Menter Graphics)公司的高层次综合工具Catapult C Synthesis。
本公开还提供一种基于与所述待测试集成电路对应的描述信息构建测试环境的具体方法,包括:
基于与所述待测试集成电路对应的描述信息,对所述待测试集成电路进行实例化,得到激励生成实例、与待测试集成电路对应的待测试实例;
基于所述激励生成实例和所述待测试实例,生成所述测试环境。
其中,所述集成电路对应的描述信息级别,可以包括但不限于:寄存器转传输级(RegisterTranfer Level,RTL)描述信息,即采用硬件描述语言(Hardware DescriptionLanguage,HDL)描述的寄存器传输级电路。在这个级别下,要描述各级寄存器(时序逻辑中的寄存器),以及寄存器之间的信号的是如何转换的(时序逻辑中的组合逻辑),
所述测试环境,是整个验证系统的总称,包括验证结构中的各组件、组件之间的连接关系、测试环境的配置和控制;从更系统的意义来讲,还包括编译仿真的流程、结果分析报告和覆盖率检查等。狭义上主要关注验证平台的结构和组件,它们产生设计所需的各种输入,并在此基础上进行设计功能的检查。
在具体实施中,测试环境可以使用多种语言构建,例如VHDL、Verilog、Open Vera、e、System C、C/C++、SystemVerilog等,本公开对构建验证环境的所使用的语言不做限制,无论哪种语言构建的验证环境若使用了本公开是实施例中的集成电路验证方法,都可视为在本公开的范围内。所述测试环境中可以包括多个模块,这些模块需要通过模块例化才能执行各自的功能。所述模块例化是在一个模块中引用另一个模块,对其端口进行相关连接,模块例化建立了描述的层次。信号端口可以通过位置或名称关联,端口连接也必须遵循一些规则。模块例化可以理解成模块调用,对于一个现场可编程逻辑门阵列(FieldProgrammable Gate Array,FPGA)工程,通常是由一个顶层模块与多个功能子模块组成,为了实现顶层模块与子模块的连接,需要进行模块间的例化(或说是调用)。
在具体实施中,图2示出了一种测试环境结构的具体示意图,其中包括了5个主要模块:微控制器201、待测模块202、激励生成模块203、输出收集模块204、以及存储器模块205。
在微控制器201中,微控制器201的作用是控制和协调整个验证环境,通常需要程序计数器、指令寄存器、指令译码器、定时与控制电路,以及脉冲源、中断等共同完成;图3示出了一种微控制器固件控制微控制器工作的具体示意图,所述微控制器201的工作方式是由微控制器固件进行描述的,微控制器固件一般用高级编程语言(如C语言)来编写,并通过软件编译成二进制格式的固件文件再通过脚本转换成文本格式的初始化固件,最后通过后门(back-door)访问的方式存放到微控制器201程序存储器中。其中,寄存器模型会在测试环境中进行实例化,利用寄存器模型可以更方便的对寄存器进行操作。两种访问寄存器的方式是前门访问(front-door)和后门访问(back-door)。前门访问是指在寄存器模型上做的读写操作,通过总线实现总线上的物理时序访问,是真实的物理操作;后门访问是指将寄存器的操作直接作用到待测设计(Device under test,DUT)内的寄存器变量,而不通过物理总线访问。实际执行中,后门访问较前门访问更方便,更快捷,而为了加快整个验证流程,此处采用了后门访问的方式进行寄存器的访问。
待测模块202,即待验证的ISP模块,在测试环境中,其功能在逻辑行为级层面和最终芯片保持严格一致;
激励生成模块203,在一些场合中也被称为driver(驱动器)、BFM(Bus FunctionModel,总线功能模型)、behavioral(行为模型)或generator(发生器)。激励生成模块203的主要职责是模拟与待测模块203相邻设计的接口协议并发起接口数据传输。在本公开实施例中,激励生成模块203负责将由ISP算法提供、已经初始化到存储器模块205的输入图像按帧读出、并以符合传感器接口要求的时序送到待测模块输入端口;
输出收集器模块204从待测模块202输出端口收集输出图像,并存储到平台存储器模块205中,最后按帧与ISP算法提供的参考结果进行比对,判断case是否通过;
存储器模块205,主要负责存储输入输出图片数据,包括了负责图像输入的存储器2051、以及负责图像输出的存储器2052,其中部分底层器件需要使用对应开发工具进行生成。不同的厂家会提供虚拟存储器的IP,部分底层器件可以使用厂家提供的初拟存储器的IP生成,例如存储器、总线接口、总线桥等。
针对上述S102:本公开实施例提供一种基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理的具体方式,包括:
基于所述配置信息,对所述测试环境进行配置;
利用配置后的测试环境对所述每帧激励数据进行仿真处理。
在具体实施中,根据待测设计功能与性能的不同,可能用到的寄存器数量也可能并不相同,所述配置文件中包含了寄存器名称信息,基于寄存器名称信息可以对测试环境中需要进行实例化的寄存器模型的数量进行确定。
示例性的,当配置文件中的寄存器名称信息包括了寄存器1、寄存器2时,在模型实例化的过程中,需要实例化的寄存器模型就是寄存器1和寄存器2。
一种可选的实施方式中,所述获取与待测试集成电路对应的激励数据序列的配置文件后,还可以包括:
将所述配置文件存储至预设存储空间;
所述从所述配置文件中读取与每帧激励数据对应的配置信息,包括:
从所述预设存储空间中存储的所述配置文件中读取与所述每帧激励数据对应的配置信息。
在具体实施中,为了方便后续的使用,可以获取到的配置文件存储至某一预设的存储空间中等待读取。响应于测试环境中的某一模块需要对所属配置文件进行读取,例如:微控制器,在该微控制器收到读取指令后,可以直接从预设的存储空间中对集成电路验证过程中所需的信息进行读取,例如:激励数据对应的配置信息。
一种可选的实施方式中,所述从所述配置文件中读取与每帧激励数据对应的配置信息,包括:
按照各帧所述激励数据在所述激励数据序列中的位置,依次将各帧所述激励数据作为当前激励数据,从所述配置文件中读取与所述当前激励数据对应的配置信息。
在具体实施中,对于某一芯片的验证需要输入多种激励数据进行验证,以保证当前激励数据的自由度。在ISP芯片的验证中,被作为激励数据的可以是多帧图像,在对芯片的仿真验证时,可以按照激励数据序列中的每帧图像的顺序,依次输入各帧图像,即依次将每一帧图像都当作当前的激励数据,同时,如上文所述,每一帧作为激励数据的图像都有其对应的配置信息,这些配置信息的读取可以通过脚本文件进行实现。
在从所述配置文件中读取与所述当前激励数据对应的配置信息时,例如可以采用下述方式:
针对当前激励数据为首帧激励数据的情况,响应于接收到仿真启动指令,所述测试环境生成与所述当前激励数据对应的读取指示信号;以及针对当前激励数据为非首帧激励数据的情况,响应于完成对所述非首帧激励数据对应的前一激励数据的仿真处理,所述测试环境生成与所述当前激励数据对应的读取指示信号;
一种可选的实施方式中,所述基于所述各帧激励数据分别对应的寄存器数量,从所述配置文件中读取与所述当前激励数据对应的配置信息,包括:
基于所述当前激励数据对应的寄存器数量、所述当前激励数据对应的原始地址偏移数据、以及所述寄存器信息的预设数据长度,从所述配置文件中读取与当前激励数据对应各寄存器的目标寄存器信息。
其中,各帧激励数据分别对应的配置信息包括:各帧激励数据分别对应的寄存器数量;
所述从所述配置文件中读取与每帧激励数据对应的配置信息之前,还包括:
从所述配置文件中获取各帧激励数据分别对应的寄存器数量;
响应于接收到测试环境生成的所述读取指示信号,从所述配置文件中读取与所述当前激励数据对应的配置信息,包括:
基于所述各帧激励数据分别对应的寄存器数量,从所述配置文件中读取与所述当前激励数据对应的配置信息。
在具体实施中,下面进行说明的执行方法可以由脚本文件在芯片验证时自动执行。所述激励数据可以由多帧图像组成,多帧图像中的每一帧都将被作为激励数据进行输入,如图4所示,若当前的待输入激励数据为第一帧图像,即仿真的开始环节,可以将仿真启动指令发送至微控制器以进行第一帧图像的读取,通常激励数据中多帧图像的第一帧图像的寄存器配置是初始化阶段就配置好的,微控制器会去约定好的地址段去取固定数量(即第一帧图片待配置的寄存器数量)的64bit数据,即上文提到的32bit寄存器地址+32bit寄存器值的数据,然后将后32bit的寄存器值配置到前32bit的寄存器地址中,即完成第一帧的寄存器配置。
当第一帧图像处理结束,需要配置第二帧图像的寄存器时,待测模块会发出一个读取指示信号,该读取指示信号例如是待测模块发送给微控制器的一个中断信号;该读取指示信号通过测试环境中的寄存器模块传递给微控制器,当微控制器接受到此读取指示信号并识别出此读取的含义,就会执行此读取指示信号的逻辑,即自动帧间配置。微控制器会通过计数来判断当前帧是第几帧,并通过之前掌握的每帧待配置寄存器的数量这一信息进行计算,从指定地址段取指定长度的数据,然后将取到的64bit数据按照上述的方法(将32bit寄存器值配置到对应32bit的寄存器地址中),完成当前帧的寄存器配置,即完成了帧间配置。
示例性的,若第一帧图像对应的寄存器数量为2个,第二帧图像对应的寄存器数量为3个,那么需要配置第三帧图像的寄存器时,待测模块会发出一个读取指示信号,通过测试环境中的寄存器模块传递给微控制器,当微控制器接受到此读取指示信号并识别出此读取的含义,就会执行此读取指示信号的逻辑,即自动帧间配置。微控制器会通过计数来判断当前帧是第三帧,并通过第一帧图像和第二帧图像对应的寄存器配置信息计算出,在存储有配置信息的预设的存储空间中,第一帧图像对应的2个寄存器的配置信息占预设存储空间的128bit,第二帧图像对应的3个寄存器的配置信息占预设存储空间的192bit,即前320bit数据是已经读取过的寄存器配置数据,若所述第三帧图像对应寄存器数量为1,则微控制器只需要按照存储顺序从存储空间中前320bit数据后的地址开始,读取64bit数据并基于这64bit数据对第三帧图像的寄存器进行配置即可。在配置时64bit中的前32bit数据表征了第三帧图像对应寄存器的地址信息,例如可以是寄存器23的地址信息,那么只需要将64bit数据中的表征寄存器值的32bit数据配置到寄存器23对应的地址信息中即可完成第三帧图像对应的寄存器配置。
针对上述S103,本公开实施例提供一种基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果的具体方法,包括:
将所述仿真处理结果存储至第一目标结果文件后,对所述第一目标结果文件进行格式转换,得到目标格式的目标结果文件;
将所述激励数据序列对应的真实结果和所述目标结果文件进行比对,得到所述待测试集成电路的验证结果。
在具体实施中,当运行结束后,仿真加速器会去指定的地址空间读取输出结果数据,通过仿真加速器专用命令将其下载到一个文件中。然后需要将该文件转化成激励数据序列中的最终结果文件的数据格式,以方便进行比对。最终将两个文件进行比对并将比对结果打印到某个文件中,便于观测该激励数据序列是否通过。在进行多个激励数据序列的验证后根据多个激励数据序列的验证结果可以得到当前验证ISP芯片的最终验证结果。
在本公开实例中,会将上述各个模块的交互通过一套自动化脚本语言串联起来,如将初始化数据和指令输入到存储器中,将激励数据序列仿真后后的结果下载到本地并与预期的结果进行比对。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与集成电路验证方法对应的集成电路验证装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述集成电路验证方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参照图5所示,为本公开实施例提供的一种集成电路验证装置的示意图,所述装置包括:
获取模块51,用于获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
仿真模块52,用于从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
验证模块53,用于基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
一种可选的实施方式中,所述获取模块51,在获取与待测试集成电路对应的激励数据序列的配置文件时,用于:
获取所述待测试集成电路对应的激励数据序列的原始配置文件;
对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件。
一种可选的实施方式中,所述配置文件包括:寄存器配置文件;所述寄存器配置文件中携带有与所述激励数据序列中各帧激励数据分别对应的寄存器配置信息;
所述获取模块51,在对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件时,用于:
按照所述激励数据序列中各帧激励数据的顺序,从所述原始配置文件中读取各帧激励数据分别对应的寄存器配置信息;
将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件。
一种可选的实施方式中,各帧所述激励数据对应的寄存器配置信息包括:各帧所述激励数据对应的至少一个寄存器的寄存器地址以及寄存器值;
所述获取模块51,在将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件时,用于:
针对各帧激励数据,将与该帧激励数据对应每个寄存器的寄存器地址、以及寄存器值,生成一条预设数据长度的寄存器信息;基于该帧激励数据对应的至少一个寄存器分别对应的寄存器信息,生成与该帧激励数据对应的目标寄存器信息;
将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中,得到所述配置文件。
一种可选的实施方式中,所述获取模块51,在基于与所述待测试集成电路对应的描述信息构建测试环境时,用于:
基于与所述待测试集成电路对应的描述信息,对所述待测试集成电路进行实例化,得到激励生成实例、与待测试集成电路对应的待测试实例;
基于所述激励生成实例和所述待测试实例,生成所述测试环境。
一种可选的实施方式中,所述仿真模块52,在基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理时,用于:
基于所述配置信息,对所述测试环境进行配置;
利用配置后的测试环境对所述每帧激励数据进行仿真处理。
一种可选的实施方式中,所述获取模块51,在获取与待测试集成电路对应的激励数据序列的配置文件后,还用于:
将所述配置文件存储至预设存储空间;
所述仿真模块52,在从所述配置文件中读取与每帧激励数据对应的配置信息时,用于:
从所述预设存储空间中存储的所述配置文件中读取与所述每帧激励数据对应的配置信息。
一种可选的实施方式中,所述仿真模块52,在从所述配置文件中读取与每帧激励数据对应的配置信息时,用于:
按照各帧所述激励数据在所述激励数据序列中的位置,依次将各帧所述激励数据作为当前激励数据,从所述配置文件中读取与所述当前激励数据对应的配置信息。
一种可选的实施方式中,所述仿真模块52,在从所述配置文件中读取与所述当前激励数据对应的配置信息时,用于:
针对当前激励数据为首帧激励数据的情况,响应于接收到仿真启动指令,所述测试环境生成与所述当前激励数据对应的读取指示信号;以及针对当前激励数据为非首帧激励数据的情况,响应于完成对所述非首帧激励数据对应的前一激励数据的仿真处理,所述测试环境生成与所述当前激励数据对应的读取指示信号;
响应于接收到测试环境生成的所述读取指示信号,从所述配置文件中读取与所述当前激励数据对应的配置信息。
一种可选的实施方式中,各帧激励数据分别对应的配置信息包括:各帧激励数据分别对应的寄存器数量;
所述仿真模块52,在从所述配置文件中读取与每帧激励数据对应的配置信息之前,还用于:
从所述配置文件中获取各帧激励数据分别对应的寄存器数量;
响应于接收到测试环境生成的所述读取指示信号,从所述配置文件中读取与所述当前激励数据对应的配置信息,包括:
基于所述各帧激励数据分别对应的寄存器数量,从所述配置文件中读取与所述当前激励数据对应的配置信息。
一种可选的实施方式中,所述仿真模块52,在基于所述各帧激励数据分别对应的寄存器数量,从所述配置文件中读取与所述当前激励数据对应的配置信息时,用于:
基于所述当前激励数据对应的寄存器数量、所述当前激励数据对应的原始地址偏移数据、以及所述寄存器信息的预设数据长度,从所述配置文件中读取与当前激励数据对应各寄存器的目标寄存器信息。
一种可选的实施方式中,所述验证模块53,在基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果时,用于:
将所述仿真处理结果存储至第一目标结果文件后,对所述第一目标结果文件进行格式转换,得到目标格式的目标结果文件;
将所述激励数据序列对应的真实结果和所述目标结果文件进行比对,得到所述待测试集成电路的验证结果。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
参照图6所示,本公开实施例还提供一种对待测试集成电路的仿真系统,包括:激励生成模块203、待测模块202、以及微控制器201;
所述激励生成模块203,用于将存储至预设的第一存储空间中的激励数据序列中的多帧激励数据依次读出,并以预设时序向待测模块202发送每帧激励数据;
所述微控制器201,用于从所述激励数据序列对应的配置文件中读取与每帧激励数据对应的配置信息,并向所述待测模块202发送所述每帧激励数据对应的配置信息;其中,所述配置文件被预先存储在所述微控制器201中;
所述待测模块202,用于响应于接收到所述每帧激励数据、以及与所述每帧激励数据对应的配置信息,基于所述每帧激励数据对应的配置信息,对所述每帧激励数据进行仿真处理,得到所述每帧激励数据对应的仿真处理结果。
其中,所述第一存储空间例如包括:图6中示出的存储器模块205中的存储器2051。
一种可选的实施方式中,还包括:预处理模块206;
所述预处理模块206,用于获取所述配置文件,并将所述配置文件存储至所述微控制器201中;
以及基于与所述待测试集成电路对应的描述信息构建测试环境,其中,所述测试环境包括所述待测模块202。
一种可选的实施方式中,所述预处理模块206,在获取所述配置文件时,用于:
获取所述待测试集成电路对应的激励数据序列的原始配置文件;
对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件。
一种可选的实施方式中,所述配置文件包括:寄存器配置文件;所述寄存器配置文件中携带有与所述激励数据序列中各帧激励数据分别对应的寄存器配置信息;
所述预处理模块206,在对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件时,用于:
按照所述激励数据序列中各帧激励数据的顺序,从所述原始配置文件中读取各帧激励数据分别对应的寄存器配置信息;
将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件。
一种可选的实施方式中,各帧所述激励数据对应的寄存器配置信息包括:各帧所述激励数据对应的至少一个寄存器的寄存器地址以及寄存器值;
所述预处理模块206,在将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件时,用于:
针对各帧激励数据,将与该帧激励数据对应每个寄存器的寄存器地址、以及寄存器值,生成一条预设数据长度的寄存器信息;基于该帧激励数据对应的至少一个寄存器分别对应的寄存器信息,生成与该帧激励数据对应的目标寄存器信息;
将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中,得到所述配置文件。
一种可选的实施方式中,所述预处理模块206,在将所述配置文件存储至所述微控制器201中时,用于:将所述配置文件通过后门访问的方式存储到所述微控制器201的程序存储器中。
一种可选的实施方式中,所述微控制器201,在从预先获得的配置文件中读取与每帧激励数据对应的配置信息时,用于:按照各帧所述激励数据在所述激励数据序列中的位置,依次将各帧所述激励数据作为当前激励数据,从所述配置文件中读取与所述当前激励数据对应的配置信息。
一种可选的实施方式中,所述待测模块202,还用于向所述微控制器201发送用于指示读取与所述当前激励数据对应的配置信息的读取指示信号;
所述微控制器201,在从预先获得的配置文件中读取与每帧激励数据对应的配置信息时,用于响应于接收到所述待测模块202发送的所述指示信号,读取与所述当前激励数据对应的配置信息。
一种可选的实施方式中,
所述待测模块202,在向所述微控制器201发送用于指示读取与所述当前激励数据对应的配置信息的读取指示信号时,用于:
针对所述当前激励数据为首帧激励数据的情况,响应于接收到仿真启动指令,生成与所述首帧激励数据对应的读取指示信号,并向所述微控制器201发送所述首帧激励数据对应的读取指示信号;
针对所述当前激励数据为非首帧激励数据的情况,响应于完成对所述当前激励数据对应的前一激励数据的仿真处理,生成与所述当前激励数据对应的读取指示信号。
一种可选的实施方式中,各帧激励数据分别对应的配置信息包括:各帧激励数据分别对应的寄存器数量;
所述微控制器201,在从所述配置文件中读取与每帧激励数据对应的配置信息时,用于:
从所述配置文件中获取各帧激励数据分别对应的寄存器数量;
响应于接收到所述待测模块202发送的对目标激励数据对应的配置信息的读取指示信号,基于所述目标激励数据对应的寄存器数量、所述目标激励数据对应的原始地址偏移数据、以及所述寄存器信息的预设数据长度,从所述配置文件中读取与所述目标激励数据对应各寄存器的目标寄存器信息。
一种可选的实施方式中,还包括:输出收集模块204;
所述待测模块202,还用于向所述输出收集模块204传输所述激励数据对应的仿真处理结果;
所述输出收集模块204,用于将所述待测模块202传输的各帧激励数据对应的仿真处理结果,存储至预设的第二存储空间。
一种可选的实施方式中,还包括:结果处理模块,用于从所述第二存储空间中读取各帧所述激励数据对应的仿真处理结果,基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
此处,第二存储空间如图6中,存储器模块205中的存储器2051。
本公开实施例还提供了一种电子设备,如图7所示,为本公开实施例提供的电子设备结构示意图,包括:
处理器71和存储器72;所述存储器72存储有处理器71可执行的机器可读指令,处理器71用于执行存储器72中存储的机器可读指令,所述机器可读指令被处理器71执行时,处理器71执行下述步骤:
获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
上述存储器72包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器71中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器71通过内存721与外部存储器722进行数据交换。
或者,所述电子设备包括如图6所述的仿真系统。
上述指令的具体执行过程可以参考本公开实施例中所述的集成电路验证方法的步骤,此处不再赘述。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的集成电路验证方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的集成电路验证方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台电子设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (22)

1.一种集成电路的验证方法,其特征在于,包括:
获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
2.根据权利要求1所述的方法,其特征在于,获取与待测试集成电路对应的激励数据序列的配置文件包括:
获取所述待测试集成电路对应的激励数据序列的原始配置文件;
对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件。
3.根据权利要求2所述的方法,其特征在于,所述配置文件包括:寄存器配置文件;所述寄存器配置文件中携带有与所述激励数据序列中各帧激励数据分别对应的寄存器配置信息;
所述对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件,包括:
按照所述激励数据序列中各帧激励数据的顺序,从所述原始配置文件中读取各帧激励数据分别对应的寄存器配置信息;
将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件。
4.根据权利要求3所述的方法,其特征在于,各帧所述激励数据对应的寄存器配置信息包括:各帧所述激励数据对应的至少一个寄存器的寄存器地址以及寄存器值;
所述将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件,包括:
针对各帧激励数据,将与该帧激励数据对应每个寄存器的寄存器地址、以及寄存器值,生成一条预设数据长度的寄存器信息;基于该帧激励数据对应的至少一个寄存器分别对应的寄存器信息,生成与该帧激励数据对应的目标寄存器信息;
将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中,得到所述配置文件。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述从所述配置文件中读取与每帧激励数据对应的配置信息,包括:
按照各帧所述激励数据在所述激励数据序列中的位置,依次将各帧所述激励数据作为当前激励数据,从所述配置文件中读取与所述当前激励数据对应的配置信息。
6.根据权利要求5所述的方法,其特征在于,所述从所述配置文件中读取与所述当前激励数据对应的配置信息,包括:
针对当前激励数据为首帧激励数据的情况,响应于接收到仿真启动指令,所述测试环境生成与所述当前激励数据对应的读取指示信号;以及针对当前激励数据为非首帧激励数据的情况,响应于完成对所述非首帧激励数据对应的前一激励数据的仿真处理,所述测试环境生成与所述当前激励数据对应的读取指示信号;
响应于接收到测试环境生成的所述读取指示信号,从所述配置文件中读取与所述当前激励数据对应的配置信息。
7.根据权利要求6所述的方法,其特征在于,各帧激励数据分别对应的配置信息包括:各帧激励数据分别对应的寄存器数量;
所述从所述配置文件中读取与每帧激励数据对应的配置信息之前,还包括:
从所述配置文件中获取各帧激励数据分别对应的寄存器数量;
响应于接收到测试环境生成的所述读取指示信号,从所述配置文件中读取与所述当前激励数据对应的配置信息,包括:
基于所述当前激励数据对应的寄存器数量、所述当前激励数据对应的原始地址偏移数据、以及所述寄存器信息的预设数据长度,从所述配置文件中读取与当前激励数据对应各寄存器的目标寄存器信息。
8.一种集成电路验证装置,其特征在于,包括:
获取模块,用于获取与待测试集成电路对应的激励数据序列的配置文件,以及基于与所述待测试集成电路对应的描述信息构建测试环境;其中,所述激励数据序列中包括多帧激励数据;所述配置文件包括与多帧所述激励数据分别对应的配置信息;
仿真模块,用于从所述配置文件中读取与每帧激励数据对应的配置信息,并基于所述测试环境、以及读取到的配置信息,对所述每帧激励数据进行仿真处理,得到所述激励数据序列对应的仿真处理结果;
验证模块,用于基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
9.一种对待测试集成电路的仿真系统,其特征在于,包括:激励生成模块、待测模块、以及微控制器;
所述激励生成模块,用于将存储至预设的第一存储空间中的激励数据序列中的多帧激励数据依次读出,并以预设时序向待测模块发送每帧激励数据;
所述微控制器,用于从所述激励数据序列对应的配置文件中读取与每帧激励数据对应的配置信息,并向所述待测模块发送所述每帧激励数据对应的配置信息;其中,所述配置文件被预先存储在所述微控制器中;
所述待测模块,用于响应于接收到所述每帧激励数据、以及与所述每帧激励数据对应的配置信息,基于所述每帧激励数据对应的配置信息,对所述每帧激励数据进行仿真处理,得到所述每帧激励数据对应的仿真处理结果。
10.根据权利要求9所述的仿真系统,其特征在于,还包括:预处理模块;
所述预处理模块,用于获取所述配置文件,并将所述配置文件存储至所述微控制器中;
以及基于与所述待测试集成电路对应的描述信息构建测试环境,其中,所述测试环境包括所述待测模块。
11.根据权利要求10所述的仿真系统,其特征在于,所述预处理模块,在获取所述配置文件时,用于:
获取所述待测试集成电路对应的激励数据序列的原始配置文件;
对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件。
12.根据权利要求11所述的仿真系统,其特征在于,所述配置文件包括:寄存器配置文件;所述寄存器配置文件中携带有与所述激励数据序列中各帧激励数据分别对应的寄存器配置信息;
所述预处理模块,在对所述原始配置文件进行格式转换,得到仿真加速器能够识别的所述激励数据序列的配置文件时,用于:
按照所述激励数据序列中各帧激励数据的顺序,从所述原始配置文件中读取各帧激励数据分别对应的寄存器配置信息;
将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件。
13.根据权利要求11所述的仿真系统,其特征在于,各帧所述激励数据对应的寄存器配置信息包括:各帧所述激励数据对应的至少一个寄存器的寄存器地址以及寄存器值;
所述预处理模块,在将各帧激励数据分别对应的寄存器配置信息按照预设形式依次写入预设格式的目标文件中,得到所述配置文件时,用于:
针对各帧激励数据,将与该帧激励数据对应每个寄存器的寄存器地址、以及寄存器值,生成一条预设数据长度的寄存器信息;基于该帧激励数据对应的至少一个寄存器分别对应的寄存器信息,生成与该帧激励数据对应的目标寄存器信息;
将多帧激励数据分别对应的目标寄存器信息依次写入所述目标文件中,得到所述配置文件。
14.根据权利要求13所述的仿真系统,其特征在于,所述预处理模块,在将所述配置文件存储至所述微控制器中时,用于:将所述配置文件通过后门访问的方式存储到所述微控制器的程序存储器中。
15.根据权利要求9-14任一项所述的仿真系统,其特征在于,所述微控制器,在从预先获得的配置文件中读取与每帧激励数据对应的配置信息时,用于:按照各帧所述激励数据在所述激励数据序列中的位置,依次将各帧所述激励数据作为当前激励数据,从所述配置文件中读取与所述当前激励数据对应的配置信息。
16.根据权利要求15所述的仿真系统,其特征在于,所述待测模块,还用于向所述微控制器发送用于指示读取与所述当前激励数据对应的配置信息的读取指示信号;
所述微控制器,在从预先获得的配置文件中读取与每帧激励数据对应的配置信息时,用于响应于接收到所述待测模块发送的所述指示信号,读取与所述当前激励数据对应的配置信息。
17.根据权利要求16所述的仿真系统,其特征在于,所述待测模块,在向所述微控制器发送用于指示读取与所述当前激励数据对应的配置信息的读取指示信号时,用于:
针对所述当前激励数据为首帧激励数据的情况,响应于接收到仿真启动指令,生成与所述首帧激励数据对应的读取指示信号,并向所述微控制器发送所述首帧激励数据对应的读取指示信号;
针对所述当前激励数据为非首帧激励数据的情况,响应于完成对所述当前激励数据对应的前一激励数据的仿真处理,生成与所述当前激励数据对应的读取指示信号。
18.根据权利要求16或17所述的仿真系统,其特征在于,各帧激励数据分别对应的配置信息包括:各帧激励数据分别对应的寄存器数量;
所述微控制器,在从所述配置文件中读取与每帧激励数据对应的配置信息时,用于:
从所述配置文件中获取各帧激励数据分别对应的寄存器数量;
响应于接收到所述待测模块发送的对目标激励数据对应的配置信息的读取指示信号,基于所述目标激励数据对应的寄存器数量、所述目标激励数据对应的原始地址偏移数据、以及所述寄存器信息的预设数据长度,从所述配置文件中读取与所述目标激励数据对应各寄存器的目标寄存器信息。
19.根据权利要求9-18任一项所述的仿真系统,其特征在于,还包括:输出收集模块;
所述待测模块,还用于向所述输出收集模块传输所述激励数据对应的仿真处理结果;
所述输出收集模块,用于将所述待测模块传输的各帧激励数据对应的仿真处理结果,存储至预设的第二存储空间。
20.根据权利要求19所述的仿真系统,其特征在于,还包括:结果处理模块,用于从所述第二存储空间中读取各帧所述激励数据对应的仿真处理结果,基于所述仿真处理结果、以及与所述激励数据序列对应的真实结果,得到所述待测试集成电路的验证结果。
21.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述处理器用于执行所述存储器中存储的机器可读指令,所述机器可读指令被所述处理器执行时,所述处理器执行如权利要求1至7任一项所述的集成电路验证方法的步骤;或者
包括如权利要求9至20任一项所述的仿真系统。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被电子设备运行时,所述电子设备执行如权利要求1至7任意一项所述的集成电路验证方法的步骤。
CN202210912653.1A 2022-07-30 2022-07-30 集成电路验证方法、装置、仿真系统、电子设备及介质 Pending CN115048888A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210912653.1A CN115048888A (zh) 2022-07-30 2022-07-30 集成电路验证方法、装置、仿真系统、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210912653.1A CN115048888A (zh) 2022-07-30 2022-07-30 集成电路验证方法、装置、仿真系统、电子设备及介质

Publications (1)

Publication Number Publication Date
CN115048888A true CN115048888A (zh) 2022-09-13

Family

ID=83166667

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210912653.1A Pending CN115048888A (zh) 2022-07-30 2022-07-30 集成电路验证方法、装置、仿真系统、电子设备及介质

Country Status (1)

Country Link
CN (1) CN115048888A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116127886A (zh) * 2023-04-12 2023-05-16 北京燧原智能科技有限公司 一种存储器电路的验证方法和装置
CN117034822A (zh) * 2023-10-10 2023-11-10 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质
CN117271248A (zh) * 2023-11-23 2023-12-22 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116127886A (zh) * 2023-04-12 2023-05-16 北京燧原智能科技有限公司 一种存储器电路的验证方法和装置
CN117034822A (zh) * 2023-10-10 2023-11-10 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质
CN117034822B (zh) * 2023-10-10 2023-12-15 北京云枢创新软件技术有限公司 基于三步式仿真的验证方法、电子设备和介质
CN117271248A (zh) * 2023-11-23 2023-12-22 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境
CN117271248B (zh) * 2023-11-23 2024-02-09 成都市楠菲微电子有限公司 Io接口测试方法、装置及uvm验证环境

Similar Documents

Publication Publication Date Title
CN113312879B (zh) 芯片电路功能验证系统、方法、设备及存储介质
CN115048888A (zh) 集成电路验证方法、装置、仿真系统、电子设备及介质
US6083269A (en) Digital integrated circuit design system and methodology with hardware
US7472361B2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
US6536031B2 (en) Method for generating behavior model description of circuit and apparatus for logic verification
US20090158257A1 (en) Systems and Methods for Graphics Hardware Design Debugging and Verification
CN114462338A (zh) 一种集成电路的验证方法、装置、计算机设备及存储介质
US7424416B1 (en) Interfacing hardware emulation to distributed simulation environments
US20040039966A1 (en) Method and apparatus for verifying the correctness of a processor behavioral model
US5974241A (en) Test bench interface generator for tester compatible simulations
CN113835945A (zh) 芯片的测试方法、装置、设备及系统
CN102480467A (zh) 一种基于网络通讯协议的soc软硬件协同仿真验证方法
CN114707453A (zh) 芯片功能的验证方法、装置、电子设备及存储介质
CN116341428B (zh) 构建参考模型的方法、芯片验证方法及系统
US20070157134A1 (en) Method for testing a hardware circuit block written in a hardware description language
US20130024178A1 (en) Playback methodology for verification components
CN117556749A (zh) 芯片验证方法、测试用例的复用方法及装置
CN114970411A (zh) 一种仿真验证方法及系统
CN116340150A (zh) 一种基于uvm的可重用的寄存器性能交互验证系统及其应用
CN116956790A (zh) 一种仿真验证方法、装置、设备及介质
CN114548027A (zh) 在验证系统中追踪信号的方法、电子设备及存储介质
JP5056511B2 (ja) 検証支援プログラム、該プログラムを記録した記録媒体、検証支援装置、および検証支援方法
US7086017B1 (en) Method of post-implementation simulation of a HDL design
CN113204929B (zh) 基于sv和uvm实现ahb vip的方法、电子装置及存储介质
CN114282464A (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