CN117195826A - 一种芯片验证方法、装置、验证设备及存储介质 - Google Patents
一种芯片验证方法、装置、验证设备及存储介质 Download PDFInfo
- Publication number
- CN117195826A CN117195826A CN202311213597.3A CN202311213597A CN117195826A CN 117195826 A CN117195826 A CN 117195826A CN 202311213597 A CN202311213597 A CN 202311213597A CN 117195826 A CN117195826 A CN 117195826A
- Authority
- CN
- China
- Prior art keywords
- parameter
- port
- dut
- verification
- configuration information
- 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
Links
- 238000012795 verification Methods 0.000 title claims abstract description 181
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000004806 packaging method and process Methods 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims description 18
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 description 22
- 238000010586 diagram Methods 0.000 description 10
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本发明实施例提供了一种芯片验证方法、装置、验证设备及存储介质,该方法应用于验证设备,验证设备中配置有软件形式的Checker、封装在Checker和DUT外部的Wrapper,Wrapper中包含DUT的第一参数、表征DUT端口的第一端口,Checker中包含与第一参数关联的第二参数、与第一端口关联的第二端口、对DUT进行功能验证的验证代码,验证设备预先存储有第一参数的各待测参数值,该方法包括:从待测参数值中选择目标待测参数值,封装为参数包;Wrapper获取目标待测参数值,并在实例化DUT时,将DUT的第一参数赋值为目标待测参数值,以使与第一参数关联的第二参数的参数取值调整为第一参数的参数取值;Checker运行验证代码,获得DUT的验证结果。应用本发明实施例提供的方案能够提升芯片验证的效率。
Description
技术领域
本发明涉及芯片验证技术领域,特别是涉及一种芯片验证方法、装置、验证设备及存储介质。
背景技术
在SOC(System On Chip,系统芯片)设计领域,为了提升芯片内模块的复用性以及芯片的灵活性,芯片内大多模块都被设计为参数化模块,即在被实例化时可以重新配置的模块。由于该类模块需要在SOC上多次复用,若该类模块出现问题,可能会导致芯片出现致命问题,因此对于该类模块的验证一般很严格,一般选用验证结果置信度较高的形式化验证(Formal Verification,FV)作为针对该类模块进行验证的验证手段。
相关技术中,在对参数化模块进行形式化验证时,往往需要人工对该模块中参数的参数取值进行多次修改,以验证该模块在不同参数值场景下的逻辑功能是否符合预期,导致验证过程效率低。
发明内容
本发明实施例的目的在于提供一种芯片验证方法、装置、验证设备及存储介质,以提升芯片验证的效率。具体技术方案如下:
第一方面,本发明实施例提供了一种芯片验证方法,应用于验证设备,所述验证设备中配置有软件形式的Checker、软件形式的封装在所述Checker和DUT外部的Wrapper,所述Wrapper中包含所述DUT的第一参数、表征所述DUT端口的第一端口,所述Checker中包含与所述第一参数关联的第二参数、与所述第一端口关联的第二端口、对所述DUT进行功能验证的验证代码,所述验证设备预先存储有所述第一参数的各待测参数值,所述方法包括:
从待测参数值中选择目标待测参数值,封装为参数包;
所述Wrapper从所述参数包中获取所述目标待测参数值,并在实例化所述DUT时,将所述DUT的第一参数赋值为所述目标待测参数值,以使与所述第一参数关联的所述第二参数的参数取值调整为所述第一参数的参数取值;
所述Checker基于所述第二参数,运行所述验证代码,获得所述DUT的验证结果。
本发明的一个实施例中,所述Checker中用于定义所述第二参数及所述第二端口的程序通过以下方式生成:
获取所述DUT的参数配置信息及端口配置信息,其中,所述参数配置信息中包括:所述DUT中包含的各参数的参数类型、参数名,所述端口配置信息中包括:所述DUT中包含的各端口的端口名;
生成参数类型为所述参数配置信息中的参数类型,参数名为所述参数配置信息中的参数名的程序,作为用于定义所述第二参数的程序;
生成端口名为所述端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义所述第二端口的程序。
本发明的一个实施例中,所述Wrapper中用于定义所述第一端口的程序通过以下方式生成:
获取所述DUT的端口配置信息,所述端口配置信息中包括:所述DUT中包含的各端口的端口类型、端口名;
生成端口类型为所述端口配置信息中的端口类型,端口名为所述端口配置信息中的端口名的程序,作为用于定义所述第一端口的程序。
本发明的一个实施例,所述Checker的程序基于SVA语言编写。
第二方面,本发明实施例提供了一种芯片验证装置,应用于验证设备,所述装置中包括:封装模块、软件形式的Checker、软件形式的封装在所述Checker和DUT外部的Wrapper,所述Wrapper中包含所述DUT的第一参数、表征所述DUT端口的第一端口,所述Checker中包含与所述第一参数关联的第二参数、与所述第一端口关联的第二端口、对所述DUT进行功能验证的验证代码,所述验证设备预先存储有所述第一参数的各待测参数值,所述装置包括:
所述封装模块,用于从待测参数值中选择目标待测参数值,封装为参数包;
所述Wrapper,用于从所述参数包中获取所述目标待测参数值,并在实例化所述DUT时,将所述DUT的第一参数赋值为所述目标待测参数值,以使与所述第一参数关联的所述第二参数的参数取值调整为所述第一参数的参数取值;
所述Checker,用于基于所述第二参数,运行所述验证代码,获得所述DUT的验证结果。
本发明的一个实施例中,所述装置还包括:第一代码生成模块,用于通过以下方式生成所述Checker中用于定义所述第二参数及所述第二端口的程序:
获取所述DUT的参数配置信息及端口配置信息,其中,所述参数配置信息中包括:所述DUT中包含的各参数的参数类型、参数名,所述端口配置信息中包括:所述DUT中包含的各端口的端口名;
生成参数类型为所述参数配置信息中的参数类型,参数名为所述参数配置信息中的参数名的程序,作为用于定义所述第二参数的程序;
生成端口名为所述端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义所述第二端口的程序。
本发明的一个实施例中,所述装置还包括:第二代码生成模块,用于通过以下方式生成所述Wrapper中用于定义所述第一端口的程序:
获取所述DUT的端口配置信息,所述端口配置信息中包括:所述DUT中包含的各端口的端口类型、端口名;
生成端口类型为所述端口配置信息中的端口类型,端口名为所述端口配置信息中的端口名的程序,作为用于定义所述第一端口的程序。
本发明的一个实施例中,所述Checker的程序基于断言SVA语言编写。
第三方面,本发明实施例提供了一种验证设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一的方法步骤。
第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一的方法步骤。
第五方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一的方法。
本发明实施例有益效果:
本发明实施例提供的一种芯片验证方法,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的实施例。
图1为本发明实施例提供的一种进行芯片验证的流程示意图;
图2为相关技术中的一种形式化验证的示意图;
图3为相关技术中进行形式化验证的框架示意图;
图4为本发明实施例提供的一种形式化验证的框架示意图;
图5为本发明实施例提供的一种生成Checker中第二参数及第二端口的流程示意图;
图6为本发明实施例提供的一种生成Wrapper中第一端口的流程示意图;
图7为本发明实施例提供的一种芯片验证装置的结构示意图;
图8为本发明实施例提供的一种验证设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本发明所获得的所有其他实施例,都属于本发明保护的范围。
为了提升芯片验证的效率,本发明实施例的目的在于提供一种芯片验证方法、装置、验证设备及存储介质,下面进行具体说明。
第一方面,本发明实施例提供了一种芯片验证方法,应用于验证设备。验证设备中配置有软件形式的Checker(检查器)、软件形式的封装在Checker和DUT(Device UnderTest,待测器件)外部的Wrapper(封装器)。
其中,Wrapper中包含DUT的第一参数、表征DUT端口的第一端口。上述DUT即为待测芯片中的参数化模块,上述第一参数即为参数化模块中包含的参数。并且,由于Wrapper封装在Checker和DUT外部,因此后续对DUT中参数的参数取值进行调整时,可以无需对DUT进行操作,直接对Wrapper中DUT的第一参数的参数取值进行调整即可,实现在不操作DUT中相关代码的前提下,对DUT中参数的参数取值进行修改,将DUT设计代码与验证过程解耦。
其中,Checker为对参数化模块进行验证的形式化验证平台。Checker中包含与第一参数关联的第二参数、与第一端口关联的第二端口、对DUT进行功能验证的验证代码。具体的,可以通过bind(绑定)的方式进行关联。
通过将第二参数与第一参数关联、第二端口与第一端口关联,可以让Checker中的第二参数的参数取值与Wrapper中DUT的第一参数的参数取值保持一致。
其中,验证设备预先存储有第一参数的各待测参数值。在后续开始进行芯片验证后,将从各待测参数值中选取一个作为目标待测参数值,并将该目标待测参数值封装在参数包(Package)内。后续依次将各待测参数值作为目标待测参数值,并进行后续验证,从而完成完整的验证过程。
上述各待测参数值可以覆盖大量的corner case(边角情况),从而使得后续进行芯片验证时可以验证出参数化模块在所有参数取值场景下的验证结果,覆盖更多的极端参数取值场景,提升对参数化模块进行验证的置信度。
具体的,上述Wrapper、Checker、参数包都可以通过Tcl(Tool command language,工具命令语言)脚本自动生成,并且可以通过Tcl脚本实现自动进行后续图1所示的芯片验证过程。
参见图1,图1为本发明实施例提供的一种进行芯片验证的流程示意图,上述芯片验证方法包括以下步骤S101-S103。
S101,从待测参数值中选择目标待测参数值,封装为参数包。
上述目标待测参数值可以为验证设备预先存储的第一参数的各待测参数值中的任一取值。封装后的参数包中可以包含:第一参数的参数名及目标待测参数值。
一个例子a-1中,DUT中包含三个第一参数,参数名分别为:PARAM_0、PARAM_1、PARAM_2,其中,验证设备中预先存储有:参数名为PARAM_0的第一参数包含1、2这两个待测参数值;参数名为PARAM_1的第一参数包含16、17这两个待测参数值;参数名为PARAM_2的第一参数包含128这一个待测参数值。为了对每一第一参数的各待测参数值进行验证,可以依次对各第一参数的待测参数值进行遍历,生成三个第一参数的多个取值情况,具体的,可以生成如表1所示的取值情况,表1为本发明实施例提供的一种第一参数的取值情况表。
表1
如表1所示,取值情况1中,参数名为PARAM_0的第一参数的参数取值为1、参数名为PARAM_1的第一参数的参数取值为16、参数名为PARAM_2的第一参数的参数取值为128;取值情况2中,参数名为PARAM_0的第一参数的参数取值为2、参数名为PARAM_1的第一参数的参数取值为16、参数名为PARAM_2的第一参数的参数取值为128;取值情况3中,参数名为PARAM_0的第一参数的参数取值为1、参数名为PARAM_1的第一参数的参数取值为17、参数名为PARAM_2的第一参数的参数取值为128;取值情况4中,参数名为PARAM_0的第一参数的参数取值为2、参数名为PARAM_1的第一参数的参数取值为17、参数名为PARAM_2的第一参数的参数取值为128。
表1表征的各第一参数的取值情况只是一种示例,具体情况中每一参数的取值范围往往远大于表1所示的参数取值范围,例如,每一参数的取值范围为0-500等,在实际应用中可以根据实际的取值需求对取值情况进行设置。
在表1所示的各取值情况下,可以选取其中一种取值情况作为本次验证的场景。
一个例子a-2中,对应上述例子a-1,从表1中选取取值情况1作为本次验证场景,则选取参数取值1作为参数名为PARAM_0的第一参数的目标待测参数值、选取参数取值16作为参数名为PARAM_1的第一参数的目标待测参数值、选取参数取值128作为参数名为PARAM_2的第一参数目标待测参数值,将该三个第一参数封装为参数包。具体的,可以通过Tcl脚本自动生成由以下代码表示的参数包:
其中,my_package为定义的参数包的名称,在定义第一参数时,可以使用localparam将定义的参数限制为本地参数,从而将定义的参数限制在当前所验证的参数化模块中,防止对芯片中其他模块造成影响。
具体的,在通过Tcl脚本自动生成参数包的相关代码时,参数包中会封装参数化模块所包含的所有参数,如前述示例中参数化模块中包含参数PARAM_0、PARAM_1、PARAM_2,参数包中封装了以上所有参数。
S102,Wrapper从参数包中获取目标待测参数值,并在实例化DUT时,将DUT的第一参数赋值为目标待测参数值,以使与第一参数关联的第二参数的参数取值调整为第一参数的参数取值。
具体的,可以先将参数包导入(Import)至Wrapper,使得Wrapper可以从参数包中获取目标待测参数值,并在实例化DUT时,将目标待测参数值实例化至Wrapper下DUT中。
一个例子a-3中,对应上述例子a-2,可以在导入参数包my_package后,通过运行Tcl脚本在Wrapper中自动生成以下代码实现上述步骤S101。
上述代码用于将参数包中定义的各第一参数的目标待测参数值实例化至Wrapper中DUT所包含的各第一参数中。
并且,由于Checker中的第二参数与Wrapper中DUT的第一参数绑定、Checker中的第二端口与Wrapper中表征DUT端口的第一端口绑定,使得Checker中的第二参数的参数取值为Wrapper中实例化后的DUT的第一参数的参数取值,即第二参数的参数取值=第一参数的参数取值=参数包中第一参数的目标待测参数值。具体的,可以通过运行Tcl脚本在Checker中自动生成以下代码实现对Checker中的第二参数与Wrapper中DUT的第一参数的绑定。
S103,Checker基于第二参数,运行验证代码,获得DUT的验证结果。
上述验证代码为对DUT进行完整功能验证的代码。验证代码的编写可根据实际的参数化模块的功能需求确定,具体对验证代码的编写可参见相关技术。
具体的,Checker运行验证代码,获得DUT在第二参数的参数取值的场景下的验证结果,即获得DUT中各参数在目标待测参数值下的验证结果。
对应上述例子a-2,Checker运行验证代码,获得DUT中各第一参数在取值情况1下的验证结果。另外,在完成DUT中各第一参数在取值情况1下的验证结果后,可以重复上述步骤S101-S103,继续进行下一次形式化验证,获得DUT在下一取值情况下的验证结果,例如,在完成DUT中各第一参数在取值情况1下的验证结果后,选取取值情况2作为下一次验证场景,获得DUT在取值情况2下的验证结果,依次类推,最终获取到DUT在所有取值情况下(取值情况1-取值情况4)的验证结果。从而可以自动完成对DUT中所包含参数的所有取值情况的形式化验证。
另外,形式化验证是使用数学证明的方法进行电路功能验证的一种验证方法学,通过使用数学工具去分析一个涉及所有可能的行为空间,而不是计算特定输入值的输出结果。参见图2,图2为相关技术中的一种形式化验证的示意图,将DUT的输入约束、DUT的规则属性以及DUT本身传送到Checker,Checker通过内置的相关算法遍历每一输入的规则属性,得到每一规则属性的验证结果,验证结果可以为:无结论、已证明或者得到反例。其中,向Checker中输入的规则属性即为对DUT进行功能验证的验证代码,并且通过从待测参数值中选取目标待测参数值,并在实例化DUT时,将目标待测参数值赋值给DUT的第一参数,实现对DUT中第一参数的取值自动修改,以获得DUT在不同取值场景下的验证结果。具体的形式化验证可参见相关技术。
此外,参见图3,图3为相关技术中进行形式化验证的框架示意图,相关技术中,在对参数化模块进行验证前,验证人员需要预先为参数化模块中包含的参数编写一套用于定义待与该参数关联的Checker中参数的相关程序以及对DUT进行验证的验证代码,并将Checker中的参数(Parameters)与DUT的参数、Checker中的端口(Ports)与DUT的端口通过bind(绑定)的方式进行关联。对参数化模块进行形式化验证的过程如下:
步骤一,基于当前DUT中各参数的参数取值,运行Checker中的验证代码,实现参数化模块在该参数取值场景下的功能验证。
步骤二,人工修改DUT中各参数的参数取值,并返回执行步骤一,完成参数化模块在这一参数取值场景下的功能验证,直至达到预设验证需求。预设验证需求根据实际需求确定。
可见,相关技术中,在对参数化模块进行验证过程中,需要人工不断修改DUT中的参数,还需要在每次人工修参数取值后人工启动形式化验证过程,导致整个验证过程很低效。
而在本发明实施例中,参见图4,图4为本发明实施例提供的一种形式化验证的框架示意图,通过Tcl脚本自动生成参数包、Wrapper、Checker,并将Wrapper内的DUT中的第一参数与Checker中的第二参数进行绑定、DUT中的第一端口与Checker中的第二端口进行绑定,使得在自动生成参数包后,Wrapper可以导入参数包并在实例化DUT时,将参数包中的目标待测参数值赋值给第一参数,基于第一参数与第二参数的绑定关系,自动将目标待测参数值赋值给第二参数,以使Checker可以基于第二参数的参数取值对DUT在该参数取值情况下的功能进行验证。
在本发明实施例中,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
另外,利用本发明实施例提供的方案在完成一次取值情况验证后,可以自动开始对下一次取值情况的验证,多次验证无需人工参与,大大提升验证效率。并且,一般采用人工修改参数取值的方式在参数取值情况较多的情况下,需要人工修改的次数很多,而本发明实施例通过自动从与预先存储的各待测参数值中选取目标待测参数值封装为参数包,可以大大提升验证效率,而且一般采用人工修改参数取值的方式在不会将参数的所有取值可能进行验证,会漏掉一些参数的极端取值的验证,而本发明实施例可以预先将参数的所有可能取值情况进行存储,使得后续可以对所有取值情况进行验证,大大提升芯片验证的置信度。
并且,本发明实施例提供的方案可以应用于流片前,在流片前对芯片进行验证,可以在后续进行流片时,降低流片的失败率,减少因流片失败造成的成本损失。
此外,由于因为参数化模块需要在SOC上多次复用,一旦出现问题,可能会导致芯片出现致命问题,通过本发明实施例提供的方案可以大大提升了芯片验证的置信度,大大降低由于参数化模块出现问题对芯片造成的损害。
本发明的一个实施例中,参见图5,图5为本发明实施例提供的一种生成Checker中第二参数及第二端口的流程示意图,Checker中用于定义第二参数及第二端口的程序可以通过以下步骤S501-S503生成。
S501,获取DUT的参数配置信息及端口配置信息。
其中,参数配置信息中包括:DUT中包含的各参数的参数类型、参数名,端口配置信息中包括:DUT中包含的各端口的端口名。
一个例子b中,对应上述例子a-1,获取到的参数配置信息包括:DUT中包含的三个参数的参数名,分别为:PARAM_0、PARAM_1、PARAM_2,且参数类型都为parameter(参数)。在本例中获取到的端口配置信息可以包括:DUT中包含的三个端口的端口名,分别为:port_0、port_1、port_2。
S502,生成参数类型为参数配置信息中的参数类型,参数名为参数配置信息中的参数名的程序,作为用于定义第二参数的程序。
对应上述例子b,可以通过Tcl脚本自动生成由以下代码定义Checker中的第二参数:
其中,定义的三个第二参数的参数名分别为:PARAM_0、PARAM_1、PARAM_2,且参数类型都为parameter。
S503,生成端口名为端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义第二端口的程序。
对应上述例子b,可以通过Tcl脚本自动生成由以下代码定义Checker中的第二端口:
其中,定义的三个第二端口的端口名,分别为:port_0、port_1、port_2,且因为checker只负责接收信号,所以端口类型都为input(输入)类型。
在本发明实施例中,通过生成参数类型为参数配置信息中的参数类型,参数名为参数配置信息中的参数名的程序,作为用于定义第二参数的程序,生成端口名为端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义第二端口的程序,可以自动生成Checker中用于定义第二参数及第二端口的程序,相比于相关技术中需要人工编写Checker中第一参数的相关程序的方式,大大提升了芯片验证的效率。
本发明的一个实施例中,参见图6,图6为本发明实施例提供的一种生成Wrapper中第一端口的流程示意图,Wrapper中用于定义第一端口的程序可以通过以下步骤S601-S602生成。
S601,获取DUT的端口配置信息。
其中,端口配置信息中包括:DUT中包含的各端口的端口类型、端口名。
一个例子c中,获取到的端口配置信息可以包括:DUT中包含的三个端口的端口名,分别为:port_0、port_1、port_2,其中,端口名为port_0和port_1的两个端口的端口类型为input类型,端口名为port_2的端口的端口类型为output(输出)类型。
S602,生成端口类型为端口配置信息中的端口类型,端口名为端口配置信息中的端口名的程序,作为用于定义第一端口的程序。
对应上述例子c,可以通过Tcl脚本自动生成由以下代码定义Wrapper中的第一端口:
其中,定义的三个第一端口的端口名,分别为:port_0、port_1、port_2,且端口名为port_0和port_1的两个端口的端口类型为input类型,端口名为port_2的端口的端口类型为output类型。
在本发明实施例中,通过生成端口类型为端口配置信息中的端口类型,端口名为端口配置信息中的端口名的程序,作为用于定义第一端口的程序,可以自动生成Wrapper中用于定义第一端口的程序,提升了芯片验证的效率。
本发明的一个实施例,Checker的程序基于SVA(System Verilog Assertion,断言)语言编写。
具体的,可以通过SVA语言编写Checker中的第二参数、第二端口、对DUT进行功能验证的验证代码。
另外,在封装参数包的过程中,也可以将参数包封装为System Verilog(SV语言)中的包。
在本发明实施例中,通过利用SVA语言编写Checker中的相关程序,增大了程序的可读性,提升了芯片验证过程中的便捷性。
第二方面,本发明实施例提供了一种芯片验证装置,应用于验证设备,上述装置中包括:封装模块701、软件形式的Checker703、软件形式的封装在Checker和DUT外部的Wrapper702,Wrapper中包含DUT的第一参数、表征DUT端口的第一端口,Checker中包含与第一参数关联的第二参数、与第一端口关联的第二端口、对DUT进行功能验证的验证代码,验证设备预先存储有第一参数的各待测参数值。参见图7,图7为本发明实施例提供的一种芯片验证装置的结构示意图,上述装置包括:
封装模块701,用于从待测参数值中选择目标待测参数值,封装为参数包;
Wrapper702,用于从参数包中获取目标待测参数值,并在实例化DUT时,将DUT的第一参数赋值为目标待测参数值,以使与第一参数关联的第二参数的参数取值调整为第一参数的参数取值;
Checker703,用于基于第二参数,运行验证代码,获得DUT的验证结果。
在本发明实施例中,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
本发明的一个实施例中,装置还包括:第一代码生成模块,用于通过以下方式生成Checker中用于定义第二参数及第二端口的程序:获取DUT的参数配置信息及端口配置信息,其中,参数配置信息中包括:DUT中包含的各参数的参数类型、参数名,端口配置信息中包括:DUT中包含的各端口的端口名;生成参数类型为参数配置信息中的参数类型,参数名为参数配置信息中的参数名的程序,作为用于定义第二参数的程序;生成端口名为端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义第二端口的程序。
在本发明实施例中,通过生成参数类型为参数配置信息中的参数类型,参数名为参数配置信息中的参数名的程序,作为用于定义第二参数的程序,生成端口名为端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义第二端口的程序,可以自动生成Checker中用于定义第二参数及第二端口的程序,相比于相关技术中需要人工编写Checker中第一参数的相关程序的方式,大大提升了芯片验证的效率。
本发明的一个实施例中,装置还包括:第二代码生成模块,用于通过以下方式生成Wrapper中用于定义第一端口的程序:获取DUT的端口配置信息,端口配置信息中包括:DUT中包含的各端口的端口类型、端口名;生成端口类型为端口配置信息中的端口类型,端口名为端口配置信息中的端口名的程序,作为用于定义第一端口的程序。
在本发明实施例中,通过生成端口类型为端口配置信息中的端口类型,端口名为端口配置信息中的端口名的程序,作为用于定义第一端口的程序,可以自动生成Wrapper中用于定义第一端口的程序,提升了芯片验证的效率。
本发明的一个实施例中,Checker的程序基于断言SVA语言编写。
在本发明实施例中,通过利用SVA语言编写Checker中的相关程序,增大了程序的可读性,提升了芯片验证过程中的便捷性。
本发明实施例还提供了一种验证设备,参见图8,图8为本发明实施例提供的一种验证设备的结构示意图。如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现上述任一芯片验证方法的步骤。
应用本发明实施例提供的验证设备进行芯片验证时,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
上述验证设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述验证设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一芯片验证方法的步骤。
应用本发明实施例提供的计算机可读存储介质中存储的计算机程序进行芯片验证时,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一芯片验证方法。
应用本发明实施例提供的计算机程序产品进行芯片验证时,由于Wrapper封装在Checker和DUT外部,因此在从待测参数值中选择出目标待测参数值并封装为参数包后,Wrapper可以将从参数包中获取到的目标待测参数值直接赋值给DUT的第一参数,以实现对DUT的第一参数自动赋值,无需人工对DUT的第一参数赋值,并由于Checker中的第二参数与Wrapper中DUT的第一参数关联、Checker中的第二端口与Wrapper中的第一端口关联,使得Wrapper将第一参数赋值为目标待测参数值后,第二参数的参数取值也为目标待测参数值,从而使得Checker可以在第二参数取值为目标待测参数值的基础上,运行对DUT进行功能验证的验证代码,获得DUT在目标待测参数值下的验证结果,实现对DUT在目标待测参数值下的逻辑功能的验证,整个验证过程无需人工参与,提升了芯片验证的效率。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、验证设备、存储介质及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种芯片验证方法,其特征在于,应用于验证设备,所述验证设备中配置有软件形式的检查器Checker、软件形式的封装在所述Checker和待测器件DUT外部的封装器Wrapper,所述Wrapper中包含所述DUT的第一参数、表征所述DUT端口的第一端口,所述Checker中包含与所述第一参数关联的第二参数、与所述第一端口关联的第二端口、对所述DUT进行功能验证的验证代码,所述验证设备预先存储有所述第一参数的各待测参数值,所述方法包括:
从待测参数值中选择目标待测参数值,封装为参数包;
所述Wrapper从所述参数包中获取所述目标待测参数值,并在实例化所述DUT时,将所述DUT的第一参数赋值为所述目标待测参数值,以使与所述第一参数关联的所述第二参数的参数取值调整为所述第一参数的参数取值;
所述Checker基于所述第二参数,运行所述验证代码,获得所述DUT的验证结果。
2.根据权利要求1所述的方法,其特征在于,所述Checker中用于定义所述第二参数及所述第二端口的程序通过以下方式生成:
获取所述DUT的参数配置信息及端口配置信息,其中,所述参数配置信息中包括:所述DUT中包含的各参数的参数类型、参数名,所述端口配置信息中包括:所述DUT中包含的各端口的端口名;
生成参数类型为所述参数配置信息中的参数类型,参数名为所述参数配置信息中的参数名的程序,作为用于定义所述第二参数的程序;
生成端口名为所述端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义所述第二端口的程序。
3.根据权利要求1所述的方法,其特征在于,所述Wrapper中用于定义所述第一端口的程序通过以下方式生成:
获取所述DUT的端口配置信息,所述端口配置信息中包括:所述DUT中包含的各端口的端口类型、端口名;
生成端口类型为所述端口配置信息中的端口类型,端口名为所述端口配置信息中的端口名的程序,作为用于定义所述第一端口的程序。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述Checker的程序基于断言SVA语言编写。
5.一种芯片验证装置,其特征在于,应用于验证设备,所述装置中包括:封装模块、软件形式的检查器Checker、软件形式的封装在所述Checker和待测器件DUT外部的封装器Wrapper,所述Wrapper中包含所述DUT的第一参数、表征所述DUT端口的第一端口,所述Checker中包含与所述第一参数关联的第二参数、与所述第一端口关联的第二端口、对所述DUT进行功能验证的验证代码,所述验证设备预先存储有所述第一参数的各待测参数值,
所述封装模块,用于从待测参数值中选择目标待测参数值,封装为参数包;
所述Wrapper,用于从所述参数包中获取所述目标待测参数值,并在实例化所述DUT时,将所述DUT的第一参数赋值为所述目标待测参数值,以使与所述第一参数关联的所述第二参数的参数取值调整为所述第一参数的参数取值;
所述Checker,用于基于所述第二参数,运行所述验证代码,获得所述DUT的验证结果。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:第一代码生成模块,用于通过以下方式生成所述Checker中用于定义所述第二参数及所述第二端口的程序:
获取所述DUT的参数配置信息及端口配置信息,其中,所述参数配置信息中包括:所述DUT中包含的各参数的参数类型、参数名,所述端口配置信息中包括:所述DUT中包含的各端口的端口名;
生成参数类型为所述参数配置信息中的参数类型,参数名为所述参数配置信息中的参数名的程序,作为用于定义所述第二参数的程序;
生成端口名为所述端口配置信息中的端口名,端口类型为输入类型的程序,作为用于定义所述第二端口的程序。
7.根据权利要求5所述的装置,其特征在于,所述装置还包括:第二代码生成模块,用于通过以下方式生成所述Wrapper中用于定义所述第一端口的程序:
获取所述DUT的端口配置信息,所述端口配置信息中包括:所述DUT中包含的各端口的端口类型、端口名;
生成端口类型为所述端口配置信息中的端口类型,端口名为所述端口配置信息中的端口名的程序,作为用于定义所述第一端口的程序。
8.根据权利要求5-7中任一项所述的装置,其特征在于,所述Checker的程序基于断言SVA语言编写。
9.一种验证设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-4任一的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311213597.3A CN117195826A (zh) | 2023-09-19 | 2023-09-19 | 一种芯片验证方法、装置、验证设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311213597.3A CN117195826A (zh) | 2023-09-19 | 2023-09-19 | 一种芯片验证方法、装置、验证设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117195826A true CN117195826A (zh) | 2023-12-08 |
Family
ID=89005005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311213597.3A Pending CN117195826A (zh) | 2023-09-19 | 2023-09-19 | 一种芯片验证方法、装置、验证设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117195826A (zh) |
-
2023
- 2023-09-19 CN CN202311213597.3A patent/CN117195826A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104360920B (zh) | 一种接口自动化测试方法及装置 | |
CN112131829A (zh) | 一种芯片寄存器的验证方法、系统及相关装置 | |
CN110597730B (zh) | 基于场景法的自动化测试用例生成方法及系统 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN105760292B (zh) | 一种用于单元测试的断言验证方法和装置 | |
JP2009087354A (ja) | ウェブアプリケーションの自動テスト生成システム及び方法 | |
CN109739700B (zh) | 一种接口测试方法和装置 | |
US10824783B2 (en) | Approach for logic signal grouping and RTL generation using XML | |
CN111124871A (zh) | 接口测试方法及装置 | |
CN114117977B (zh) | 一种适用于自动验证处理器系统场景的方法 | |
US20210263837A1 (en) | Real time fault localization using combinatorial test design techniques and test case priority selection | |
CN110209587B (zh) | 安全芯片业务流程的测试方法及装置 | |
CN116956801B (zh) | 芯片验证方法、装置、计算机设备和存储介质 | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN112561690A (zh) | 信用卡分期业务接口的测试方法、系统、设备及存储介质 | |
CN114996076B (zh) | 一种用于芯片仿真的遍历型用例验证方法、系统及电子设备 | |
CN116738901A (zh) | 一种芯片验证方法及装置 | |
CN117195826A (zh) | 一种芯片验证方法、装置、验证设备及存储介质 | |
CN111427793A (zh) | 一种Jmeter脚本自动生成方法 | |
US20230055523A1 (en) | Method, apparatus, and storage medium for generating test cases | |
CN112651199B (zh) | 质量验证平台和质量验证方法 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN110659215A (zh) | 一种开放式工业app快速开发及测试验证方法 | |
Parshionikar et al. | Verification of 32-Bit Memory Using Layered Testbench with Optimum Functional Coverage and Constrained Randomization | |
US20230110499A1 (en) | Address solving for instruction sequence generation |
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 |