CN116992805A - 基于生成式约束模型的芯片验证系统、方法及验证设备 - Google Patents

基于生成式约束模型的芯片验证系统、方法及验证设备 Download PDF

Info

Publication number
CN116992805A
CN116992805A CN202310962772.2A CN202310962772A CN116992805A CN 116992805 A CN116992805 A CN 116992805A CN 202310962772 A CN202310962772 A CN 202310962772A CN 116992805 A CN116992805 A CN 116992805A
Authority
CN
China
Prior art keywords
model
constraint
module
register
constraint model
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
CN202310962772.2A
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 Astatine Technology Co ltd
Original Assignee
Shanghai Astatine 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 Astatine Technology Co ltd filed Critical Shanghai Astatine Technology Co ltd
Priority to CN202310962772.2A priority Critical patent/CN116992805A/zh
Publication of CN116992805A publication Critical patent/CN116992805A/zh
Pending legal-status Critical Current

Links

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
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R1/00Details of instruments or arrangements of the types included in groups G01R5/00 - G01R13/00 and G01R31/00
    • G01R1/02General constructional details
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R1/00Details of instruments or arrangements of the types included in groups G01R5/00 - G01R13/00 and G01R31/00
    • G01R1/02General constructional details
    • G01R1/04Housings; Supporting members; Arrangements of terminals
    • G01R1/0408Test fixtures or contact fields; Connectors or connecting adaptors; Test clips; Test sockets
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/2851Testing of integrated circuits [IC]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本申请提供一种基于生成式约束模型的芯片验证系统、方法及验证设备,该系统的模型生成模块在获取文本形式的测试用例后,通过解析测试用例,确定生成式约束模型,该模型包括对芯片的待测试功能进行测试时的约束条件及执行待测试功能的寄存器的寄存器配置数值;寄存器配置模块根据约束条件将寄存器配置数值配置至寄存器,以便芯片设计模块执行待测试功能;数据传输模块接收执行待测试功能后的结果,对分模块比对该结果与标准结果,整个仿真过程运行在硬件加速器上,运行结束后生成仿真报告。通过本申请可实现对芯片功能的测试,且应用的测试用例为文本形式,无需编译代码即可获取测试用例,提升获取测试用例的效率,相应提高了芯片验证的效率。

Description

基于生成式约束模型的芯片验证系统、方法及验证设备
技术领域
本申请属于芯片验证领域,尤其涉及一种基于生成式约束模型的芯片验证系统、方法及验证设备。
背景技术
测试用例是以一种为检测芯片设计的功能正确性而开发的一套寄存器配置方案,仿真环境通常需要通过测试用例,才能实现对芯片功能的测试。
测试用例通常来源于测试用例工程师手动开发,其中每条测试用例通常由几十行代码实现,测试用例数量庞大进而导致测试用例的代码量较大。例如,假设每条测试用例包括30行代码,如果在对芯片的部分功能进行测试时,需要3万条测试用例,对应的测试用例达到90万行代码。进一步的,由于测试用例的代码量较大,导致测试用例的编译过程耗时很多,极大拖慢了编译速度,且降低了对芯片功能进行测试的效率。
发明内容
现有技术中,对芯片的功能进行测试时,由于测试用例经过代码编译后才能执行,测试用例的代码量较大,导致测试用例整体的编译过程较耗时,极大拖慢了编译速度,降低了对芯片功能进行测试的效率。为了解决这一技术问题,本申请实施例提供一种基于生成式约束模型的芯片验证系统、方法及验证设备。
第一方面,本申请公开一种基于生成式约束模型的芯片验证系统,所述系统运行于硬件加速器中,所述系统包括:
模型生成模块、寄存器配置模块、数据传输模块和对分模块;
所述模型生成模块用于在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值;
所述寄存器配置模块用于根据所述约束条件将所述寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能;
所述数据传输模块用于接收所述寄存器执行所述待测试功能后的结果;
所述对分模块用于将所述数据传输模块接收的结果与标准结果进行比对,以便所述硬件加速器根据比对结果生成仿真报告。
在一种可行的设计中,所述模型生成模块包括:
测试用例解析组件、模型确定组件和模型激活组件;
所述测试用例解析组件用于对文本形式的所述测试用例进行解析,获取相应的解析信息,所述解析信息包括所述生成式约束模型的对应参数和所述寄存器配置数值,所述对应参数包括所述生成式约束模型中各节点对应的约束条件;
所述模型确定组件用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构;
所述模型激活组件用于对所述架构配置所述寄存器数值,并通过对配置后的所述架构进行随机化处理,确定所述生成式约束模型。
在一种可行的设计中,所述模型确定组件包括:模型生成组件和模型生长组件;
所述模型生成组件用于生成初始化模型;
所述模型生长组件用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构,并将所述约束条件添加至所述生成式约束模型的架构中。
在一种可行的设计中,所述模型激活组件包括:节点激活组件和随机化组件;
所述节点激活组件用于根据寄存器配置数值,对所述生成式约束模型的架构中各个节点进行配置;
所述随机化组件用于对配置各个所述节点后的生成式约束模型的架构进行随机化处理,确定所述生成式约束模型。
在一种可行的设计中,所述生成式约束模型为树形结构,所述树形结构包括至少两层节点;
若所述树形结构包括两层节点,所述树形结构包括普通约束层和位于所述普通约束层下层的核心约束层;
若所述树形结构包括三层节点,所述树形结构包括普通约束层、位于所述普通约束层下层的核心约束层和位于所述核心约束层下层的子约束层。
在一种可行的设计中,所述测试用例包括第一字段、第二字段和第三字段;
其中,所述第一字段用于指示所述测试用例的主体名称;
所述第二字段用于指示所述生成式约束模型的对应参数;
所述第三字段用于指示各层所述节点对应的所述寄存器配置数值。
在一种可行的设计中,若所述生成式约束模型为树形结构,所述生成式约束模型的对应参数还包括:所述树形结构的层数、每层的所述节点的数量以及所述树形结构中的父子节点间的映射关系。
第二方面,本申请提供一种基于生成式约束模型的芯片验证方法,该方法由第一方面所述的基于生成式约束模型的芯片验证系统执行,所述方法包括:
所述基于生成式约束模型的芯片验证系统中的模型生成模块在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值;
所述基于生成式约束模型的芯片验证系统中的寄存器配置模块根据所述约束条件将所述寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能;
所述基于生成式约束模型的芯片验证系统中的数据传输模块接收所述寄存器执行所述待测试功能后的结果;
所述基于生成式约束模型的芯片验证系统中的对分模块将所述数据传输模块接收的结果与标准结果进行比对,以便硬件加速器根据比对结果生成仿真报告。
第三方面,本申请提供一种基于生成式约束模型的芯片验证设备,包括:
第一方面所述的基于生成式约束模型的芯片验证系统;
所述基于生成式约束模型的芯片验证设备运行在硬件加速器中。
在一种可行的设计中,待配置的寄存器位于设计模块内,所述设计模块与仿真环境相连通,进行指令和数据交互,所述基于生成式约束模型的芯片验证系统位于所述仿真环境中。
通过本申请实施例提供的系统,可实现对芯片功能的测试。而且,该系统进行测试时所应用的测试用例为文本形式,因此,测试用例无需编译即可被执行,减少了编译器进行编译的工作量,相应的也提高了对芯片功能进行测试的效率。
进一步的,在芯片开发前期,仿真环境尚不稳定,可能需要频繁进行调试。现有技术在进行调试时,往往每次调试都需要重复编译测试用例的代码,从而降低了调试效率。本申请实施例提供的方案中,测试用例为文本形式,因此,在调试过程中,无需对测试用例进行编译,从而能够提高调试效率。
在现有技术中,测试用例和仿真环境高度耦合,二者的代码相互关联,难以剥离。因此测试用例工程师需要和环境构建工程师一样,掌握system verilog语言和uvm框架等专业技能,才能开发测试用例,对测试用例工程师的要求较高。而本申请实施例提供的基于生成式约束模型的芯片验证系统中,测试用例为文本形式,测试用例工程师仅需撰写文本即可开发测试用例,无编程语言技能要求,因此能够降低对测试用例工程师的技术门槛,相应的,该测试系统具有广泛的应用前景。
芯片设计工程师往往更擅长verilog语言和面向过程编程思想,而不熟悉测试用例的开发方案和面向对象编程思想,这种情况下,如果芯片设计工程师希望临时修改某些测试用例以进行调试,需要频繁与测试用例工程师沟通修改测试用例的方法,增加了团队内部的沟通成本。而通过本申请实施例提供的基于生成式约束模型的芯片验证系统,如果需要修改测试用例,只需要对测试用例对应的文本进行修改,测试用例修改的难度降低,从而能够减少团队内部的沟通成本,提高芯片设计的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于生成式约束模型的芯片验证系统的结构示意图;
图2为本申请实施例提供的另一种基于生成式约束模型的芯片验证系统的结构示意图;
图3为本申请实施例提供的另一种基于生成式约束模型的芯片验证系统的结构示意图;
图4为本申请实施例提供的一种基于生成式约束模型的芯片验证系统及生成式约束模型的结构示意图;
图5为本申请实施例提供的一种基于文本形式的测试用例确定树形结构的生成式约束模型的示意图;
图6为本申请实施例提供的另一种基于文本形式的测试用例确定树形结构的生成式约束模型的示意图;
图7为本申请实施例提供的另一种基于文本形式的测试用例确定树形结构的生成式约束模型的示意图;
图8为本申请实施例提供的一种基于生成式约束模型的芯片验证方法的工作流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个、两个或两个以上。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
现有技术中,对芯片的功能进行测试时,由于测试用例是通过代码来实现的,测试用例的代码量较大,导致测试用例的编译过程较耗时,极大拖慢了编译速度,且降低了对芯片功能进行测试的效率。为了解决这一技术问题,本申请实施例提供一种基于生成式约束模型的芯片验证系统、方法及验证设备。
其中,本申请实施例提供的基于生成式约束模型的芯片验证系统运行于硬件加速器中。参见图1所示的结构示意图,该基于生成式约束模型的芯片验证系统包括:模型生成模块110、寄存器配置模块120、数据传输模块130和对分模块140。
在一种可行的设计中,该模型生成模块110、寄存器配置模块120、数据传输模块130和对分模块140位于仿真环境中,并且可将文本形式的测试用例加载至该仿真环境中,以便模型生成模块110对文本形式的测试用例进行解析。
其中,所述模型生成模块110用于在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型。
在本申请实施例提供的方案中,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值。
在测试芯片的待测试功能时,往往需要芯片内的模块相互配合,以实现该待测试功能。其中,一个模块可包括至少一个寄存器。另外,约束条件可用于指示在测试芯片的待测试功能的过程中,哪些模块需要处于使能状态,哪些模块需要处于关闭状态,并且,约束条件还可用于指示若处于使能状态的模块的配置数值为随机化,该配置数值的范围。示例性的,针对某一模块的约束条件可为在测试芯片的待测试功能过程中,该模块处于使能状态,该模块的配置数据可为随机化,其配置数据的范围为小于5,这种情况下,根据该约束条件,可确定该模块在测试过程中处于使能状态,并将该模块的配置数值配置为4或其他小于5的数值。
寄存器为芯片内的硬件装置,芯片所执行的功能通常需要由寄存器控制。寄存器数值指的是寄存器在执行相应操作时,需要应用的数值。例如,若寄存器为控制算术运算的寄存器,该寄存器数值可能包括进行加法运算、减法运算、乘法运算、除法运算时所需要指定的数值,不同的寄存器数值代表进行不同的运算。
另外,模型生成模块110通过文本形式的测试用例得到生成式约束模型,该生成式约束模型用于实现对芯片的待测试功能的测试。由于测试用例为文本形式,因此,在应用本申请实施例提供的系统进行测试时,无需编译测试用例。
所述寄存器配置模块120用于根据所述约束条件将所述寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能。
在本申请实施例中,寄存器配置模块120可根据约束条件,确定在对待测试功能进行测试时,哪些寄存器需要处于使能状态,并将相应的寄存器配置数值配置至需要处于使能状态的寄存器中。这种情况下,寄存器在被配置后,可启动并执行相应的待测试功能。
在一种可行的设计中,各个寄存器可位于设计模块中。这种情况下,所述寄存器配置模块120可对设计模块中的寄存器进行相应配置。
所述数据传输模块130用于接收所述寄存器执行所述待测试功能后的结果,所述寄存器在执行相应功能后,产生相应的结果;
所述对分模块140用于将所述数据传输模块接收的结果与标准结果进行比对,以便所述硬件加速器根据比对结果生成仿真报告。
其中,标准结果为待测试功能良好的情况下,在执行该待测试功能后得到的结果。所述对分模块140通过将所述数据传输模块接收的结果与标准结果进行比对,可检测芯片执行功能的正确性。例如,若本次对芯片的某一计算功能进行测试,数据传输模块130接收到的结果为3,而标准结果为2,二者不同,则可确定芯片的该计算功能出错。
另外,由于整个过程运行在硬件加速器上,运行完毕后,该硬件加速器即可生成所述结果对应的仿真报告,通过该仿真报告,测试人员可了解对芯片的待测试功能的测试结果。
在一种可行的设计中,各个寄存器可位于设计模块中。这种情况下,所述数据传输模块130可与设计模块进行数据交互,获取该设计模块中各个寄存器执行待测试功能后的结果。
通过本申请实施例提供的系统,可实现对芯片功能的测试。而且,该系统进行测试时所应用的测试用例为文本形式,因此,无需编译测试用例,提升了仿真系统整体的编译速度,相应的也提高了对芯片功能进行测试的效率。
进一步的,在芯片开发前期,仿真环境尚不稳定,可能需要频繁进行调试。现有技术在进行调试时,往往需要重复编译大量测试用例,从而降低了调试效率。而本申请实施例提供的方案中,测试用例为文本形式,因此,在调试过程中,也无需对测试用例进行编译,从而能够提高调试效率。
在现有技术中,测试用例和仿真环境高度耦合,二者的代码相互关联,难以剥离。因此测试用例工程师需要和环境构建工程师一样,掌握system verilog语言和uvm框架等专业技能,才能开发测试用例,对测试用例工程师的要求较高。而本申请实施例提供的基于生成式约束模型的芯片验证系统中,测试用例为文本形式,因此能够降低对测试用例工程师的技术门槛要求,相应的,该测试系统具有广泛的应用前景。
芯片设计工程师往往更擅长verilog语言和面向过程编程思想,而不熟悉测试用例的开发方案和面向对象编程思想,这种情况下,如果芯片设计工程师希望临时修改某些测试用例以进行调试,需要频繁与测试用例工程师沟通修改测试用例的方法,增加了团队内部的沟通成本。而通过本申请实施例提供的基于生成式约束模型的芯片验证系统,如果需要修改测试用例,只需要对测试用例对应的文本进行修改,测试用例修改的难度降低,从而能够减少团队内部的沟通成本,提高芯片设计的效率。
参见图2所示的示意图,在一种可行的设计中,模型生成模块110包括:测试用例解析组件111、模型确定组件112和模型激活组件113。
其中,所述测试用例解析组件111用于对文本形式的所述测试用例进行解析,获取相应的解析信息,所述解析信息包括所述生成式约束模型的对应参数和所述寄存器配置数值。
所述模型确定组件112用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构。
其中,所述对应参数包括所述生成式约束模型中各节点对应的约束条件。并且,所述对应参数还可包括指示所述生成式约束模型的架构的参数,在一种可行的设计中,如果所述生成式约束模型为树形结构,因此也可将所述生成式约束模型称为约束树模型,这种情况下,所述对应参数可用于指示该树形结构形式的生成式约束模型的架构。示例性的,这种情况下,所述生成式约束模型的对应参数包括:所述树形结构的层数、每层的所述节点的数量、各所述节点对应的约束条件以及所述树形结构中的父子节点间的映射关系。相应的,基于该生成式约束模型的对应参数,可确定该树形结构的架构。
所述模型激活组件113用于对所述架构配置所述寄存器数值,并通过对配置后的所述架构进行随机化处理,确定所述生成式约束模型。
在本申请实施例提供的方案中,模型确定组件112可通过多种形式实现。在一种可行的设计中,参见图3所示的示意图,所述模型确定组件112包括:模型生成组件1121和模型生长组件1122。
其中,所述模型生成组件1121用于生成初始化模型。
该初始化模型通常未体现该模型的形状以及不包含各个模块对应的约束条件,示例性的,如果生成式约束模型为树形结构,则该初始化模型可为一棵空树。
另外,所述模型生成组件1121可定义该初始化模型的相关信息,例如,对初始化模型添加节点的方法、将约束条件添加至相应节点的方法、遍历生成式约束模型的方法、查找生成式约束模型中特定节点的方法以及从节点获取该节点相应的约束条件的方法等。
这种情况下,所述寄存器配置模块可基于该初始化模型的相关信息,遍历生成式约束模型,确定各个节点对应的约束条件。
在一个示例中,所述生成式约束模型为树形结构,可将所述生成式约束模型称为约束树模型,其中的各个节点可称为树节点,这种情况下,所述模型生成组件1121定义的该初始化模型的相关信息可包括:添加树节点的方法、将约束条件添加至相应数据节点的方法、遍历约束树模型的方法、查找约束树模型中特定的树节点的方法以及获取树节点的相应约束条件的方法。
所述模型生长组件1122用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构,并将所述约束条件添加至所述生成式约束模型的架构中。
由于所述模型生成组件1121定义了该初始化模型的相关信息,因此,所述模型生长组件1122可根据该相关信息指示的对初始化模型添加节点的方法,确定所述生成式约束模型的架构,以及根据该相关信息指示的将约束条件添加至相应节点的方法,将所述约束条件添加至所述生成式约束模型的架构中。另外,后续寄存器配置模块还可根据相关信息中指示的遍历约束树模型的方法、查找约束树模型中特定的树节点的方法以及获取树节点的相应约束条件的方法确定寄存器对应的约束条件,以便根据约束条件将寄存器配置数值配置至寄存器中。
示例性的,若所述生成式约束模型为树形结构,所述生成式约束模型的对应参数包括:所述树形结构的层数、每层的所述节点的数量、各所述节点对应的约束条件以及所述树形结构中的父子节点间的映射关系,基于该对应参数,即可确定该树形结构的架构,以及确定各个节点对应的约束关系,从而可得到添加有约束条件的生成式约束模型的架构。
在本申请实施例提供的方案中,所述模型激活组件113可通过多种形式实现。在一种可行的设计中,参见图3所示的示意图,所述模型激活组件113可包括:节点激活组件1131和随机化组件1132。
其中,所述节点激活组件1131用于根据寄存器配置数值,对所述生成式约束模型的架构中各个节点进行配置。
示例性的,若所述生成式约束模型为树形结构,这种情况下,所述节点激活组件1131通常需要对该树形结构中的节点(例如最下层的节点)所对应的寄存器配置相应的寄存器配置数值。
所述随机化组件1132用于对配置各个所述节点后的生成式约束模型的架构进行随机化处理,确定所述生成式约束模型。
通过本申请实施例公开的节点激活组件1131和随机化组件1132,可获取生成式约束模型。
在本申请实施例提供的一种可行的设计中,生成式约束模型为树形结构,所述树形结构包括至少两层节点。其中,该节点也可称为模块,一个模块可包括至少一个寄存器,该树形结构最下层的节点可称为子节点。
若所述树形结构包括两层节点,所述树形结构包括普通约束层和位于所述普通约束层下层的核心约束层,即核心约束层为普通约束层的子节点。
其中,所述普通约束层通常为根节点,普通约束层也可称为普通模块,通常用于执行公用环境对应的操作;核心约束层也可称为核心模块,用于执行本次待测试功能对应的核心操作。例如,若本次测试为对芯片的某一计算功能进行测试,则普通模块可为进行读取数据的模块,核心模块可为对读取的数据进行计算的模块。
若所述树形结构包括三层节点,所述树形结构包括普通约束层、位于所述普通约束层下层的核心约束层和位于所述核心约束层下层的子约束层。也就是说,核心约束层为普通约束层的子节点,子约束层为所述核心约束层的子节点。例如,若本次测试为对芯片的某一计算功能进行测试,则普通模块可为进行读取数据的模块,则核心模块可为对读取的数据进行中间计算的模块,子节点可为对中间计算的结果进一步进行计算的模块。
在本申请实施例中,测试用例为文本形式,在一种可行的设计中,测试用例可包括:所述测试用例包括第一字段、第二字段和第三字段。其中,所述第一字段用于指示所述测试用例的主体名称;所述第二字段用于指示所述生成式约束模型中的对应参数;所述第三字段用于指示各层所述节点对应的所述寄存器配置数值。
其中,第一字段、第二字段和第三字段可通过特定符号连接,示例性的,该特定符号可为连字符。另外,该第三字段也可称为叶子激活码。
上述实施例提供一种基于生成式约束模型的芯片验证系统,该系统可通过文本形式的测试用例,实现对芯片功能的测试。为了明确本申请的优势,以下通过另一实施例,对该测试系统进一步进行说明。
在该实施例中,设定生成式约束模型为树形结构,并且该树形结构包括三层,其中第一层为普通模块层,包括普通模块1、普通模块2和普通模块3,核心模块包括核心模块4、核心模块5、核心模块6和核心模块7,核心模块5的子节点包括子模块a、子模块b、子模块c和子模块d。并且,参见图4所示的示意图,该基于生成式约束模型的芯片验证系统包括:模型生成模块110、寄存器配置模块120、数据传输模块130和对分模块140。其中,模型生成模块110包括:测试用例解析组件111、模型生成组件1121、模型生长组件1122、节点激活组件1131和随机化组件1132。该模型生成模块110、寄存器配置模块120、数据传输模块130和对分模块140可位于仿真环境中。
测试用例解析组件111用于对文本形式的测试用例进行解析,以获取相应的解析信息,所述解析信息包括所述生成式约束模型的对应参数和寄存器配置数值。其中,由于生成式约束模型为树形结构,则该生成式约束模型的对应参数包括:树形结构的层数、每层节点的数量、树形结构中的父子节点间的映射关系以及各节点对应的约束条件。
在这一示例中,该生成式约束模型的对应参数可指示树形结构的层数为三层;第一层的普通模块层的节点数量为3,第二层的核心模块层的节点数量为4,以及第三层的子模块层的节点数量为4;核心模块层的各个节点为普通模块层的子节点,子模块层的各个节点为核心模块5的子节点;并且,该对应参数还包括各节点对应的约束条件。
模型生成组件1121用于生成初始化模型,由于生成式约束模型为树形结构,则模型生成组件1121生成的该初始化模型为一棵约束树,该约束树为一棵空树,该空树的形状未定,并未也未挂载约束条件。
另外,模型生长组件1122用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构,并将所述约束条件添加至所述生成式约束模型的架构中。其中,由于该生成式约束模型的对应参数包括:树形结构的层数、每层的节点的数量、树形结构中的父子节点间的映射关系,因此,基于该对应参数,模型生长组件1122可确定所述生成式约束模型的架构,然后将约束条件添加至该生成式约束模型的架构中。
在本申请对应的示例中,模型生长组件1122可将普通模块对应的约束条件添加至相应的普通模块,将核心模块对应的约束条件添加至相应的核心模块,以及将子模块对应的约束条件添加至相应的子模块。
节点激活组件1131根据寄存器配置数值,对所述生成式约束模型的架构中各个节点进行配置,实现将部分或全部的寄存器配置为特定的寄存器数值。
随机化组件1132用于对配置各个所述节点后的生成式约束模型的架构进行随机化处理,确定所述生成式约束模型。在这一示例中,由于生成式约束模型为树形结构,则经过随机化组件1132的随机化处理,可得到约束树形式的生成式约束模型。
寄存器配置模块120根据约束条件,将寄存器配置数值配置至相应的寄存器中。在这一示例中,由于生成式约束模型为树形结构,寄存器配置数值通常配置至树形结构最下层的节点。该约束条件可指示在测试过程中,各节点是否需要处于使能状态,因此,寄存器配置模块120可将寄存器数值配置至最下层属于使能状态的节点中。
处于使能状态的寄存器被配置相应的数值之后,会启动工作,执行待测试功能指示的相应操作。这种情况下,数据传输模块130接收所述寄存器执行所述待测试功能后的结果,对分模块140将所述数据传输模块130接收的结果与标准结果进行比对,另外,整个仿真过程运行在硬件加速器设备上,运行完成后硬件加速器可根据比对结果生成对应的仿真报告。
通过上述实施例,对本申请实施例提供的基于生成式约束模型的芯片验证系统进行了介绍。为了明确如何对文本形式的测试用例进行解析,以下公开相应示例。并且,在以下各个示例中,设定生成式约束模型为树形结构,设定测试用例中的R代表该节点的寄存器配置数值为随机值(即rand),并且设定第二字段中的1表示对应的节点在测试过程中处于使能状态,以及设定第二字段中的0表示对应的节点在测试过程中处于关闭状态。
在第一个示例中,设定文本形式的测试用例为:decodeEncode-101-1001-R53-12345。参见图5所示的示例图,在将文本形式的测试用例传输至基于生成式约束模型的芯片验证系统后,该基于生成式约束模型的芯片验证系统可确定decodeEncode为第一字段,用于指示测试用例的主体名称,101和1001为第二字段,用于指示生成式约束模型的对应参数,R53和12345为第三字段,用于指示各层所述节点对应的所述寄存器配置数值。另外,R53和12345也可称为叶子激活码,在该示例中,R53和12345分别为不同核心模块的叶子激活码,对应核心模块中各个寄存器的寄存器配置数值。
另外,根据第二字段中的101可确定该生成式约束模型的根节点包括两层,第一层为三个普通模块,分别为普通模块1、普通模块2和普通模块3。由于101这一字段中第一个字符和第三个字符均为1,则表明普通模块1和普通模块3对应的约束条件为在测试过程中处于使能状态,由于101这一字段中第二个字符为0,则表明普通模块2对应的约束条件为在测试过程中处于关闭状态。
根据第二字段中的1001可确定该生成式约束模型的普通模块的子节点包括四个,分别为核心模块1、核心模块2、核心模块3和核心模块4。由于1001这一字段中第一个字符和第四个字符均为1,则表明核心模块1和核心模块4对应的约束条件为在测试过程中处于使能状态,由于1001这一字段中第二个字符和第三个字符均为0,则表明核心模块2和核心模块3对应的约束条件为在测试过程中处于关闭状态。
另外,第三字段中的R53为处于使能状态的第一个核心模块(即核心模块1)对应的寄存器配置数值,基于该字段,可确定核心模块1对应的第一个寄存器(即寄存器a)的寄存器配置数值为随机值(即R),核心模块1对应的第二个寄存器(即寄存器b)的寄存器配置数值为5,核心模块1对应的第三个寄存器(即寄存器c)的寄存器配置数值为3。
第三字段中的12345为处于使能状态的第二个核心模块(即核心模块4)对应的寄存器配置数值,基于该字段,可确定核心模块4对应的第一个寄存器(即寄存器d)的寄存器配置数值为1,第二个寄存器(即寄存器e)的寄存器配置数值为2,第三个寄存器(即寄存器f)的寄存器配置数值为3,第四个寄存器(即寄存器g)的寄存器配置数值为4,第五个寄存器(即寄存器h)的寄存器配置数值为5。
基于该测试用例,模型生成模块可生成图5右侧所示的树形结构的生成式约束模型(即约束树模型),并通过寄存器配置模块对寄存器配置相应的寄存器配置数值,以使被配置后的寄存器执行相应操作。之后,数据传输模块接收各个寄存器的执行结果,以使硬件加速器生成相应的仿真报告。
在第二个示例中,设定文本形式的测试用例为:decodeEncode-11-1000-010-3R5。参见图6所示的示例图,在将文本形式的测试用例传输至基于生成式约束模型的芯片验证系统后,该基于生成式约束模型的芯片验证系统可确定decodeEncode为第一字段,用于指示测试用例的主体名称,11、1000和010为第二字段,用于指示生成式约束模型的对应参数,3R5为第三字段,用于指示各层所述节点对应的所述寄存器配置数值。另外,3R5也可称为叶子激活码,在该示例中,3R5对应子模块中各个寄存器的寄存器配置数值。
基于该测试用例,可确定该生成式约束模型包括三层,其中,该生成式约束模型的根节点包括两个普通模块,分别为普通模块1和普通模块2。由于11这一字段中的两个字符均为1,则表明普通模块1和普通模块2对应的约束条件为在测试过程中处于使能状态。
根据第二字段中的1000可确定该生成式约束模型的普通模块的子节点包括四个,分别为核心模块1、核心模块2、核心模块3和核心模块4。由于1000这一字段中第一个字符为1,则表明核心模块1和对应的约束条件为在测试过程中处于使能状态,由于1000这一字段中第二个字符至第四个字符均为0,则表明核心模块2、核心模块3和核心模块4对应的约束条件为在测试过程中处于关闭状态。
根据第二字段中的010可确定该生成式约束模型的核心模块的子节点包括三个,分别为叶子节点a、叶子节点b和叶子节点c。由于010这一字段中第一个字符和第三个字符均为0,则表明叶子节点a和叶子节点c对应的约束条件为在测试过程中处于关闭状态,由于010这一字段中第二个字符均为0,则表明叶子节点b对应的约束条件为在测试过程中处于使能状态。
由于仅有叶子节点b在测试过程中处于使能状态,因此,3R5字段用于指示叶子节点b对应的寄存器配置数值,基于该字段,可确定叶子节点b对应的第一个寄存器的寄存器配置数值为3,第二个寄存器的寄存器配置数值为R,第三个寄存器的寄存器配置数值为5。
基于该测试用例,模型生成模块可生成图6右侧所示的树形结构的生成式约束模型(即约束树模型),并通过寄存器配置模块对寄存器配置相应的寄存器配置数值,以使被配置后的寄存器执行相应操作。之后,数据传输模块接收芯片设计模块的执行结果,对分模块进行结果比对,运行完成后硬件加速器生成相应的仿真报告。
在另一个示例中,设定文本形式的测试用例为:decodeEncode-011-11-40-32。参见图7所示的示例图,在将文本形式的测试用例传输至基于生成式约束模型的芯片验证系统后,该基于生成式约束模型的芯片验证系统可确定decodeEncode为第一字段,用于指示测试用例的主体名称,011进而11为第二字段,用于指示生成式约束模型的对应参数,40和32为第三字段,用于指示各层所述节点对应的所述寄存器配置数值。另外,40和32也可称为叶子激活码,在该示例中,40和32分别为不同核心模块的叶子激活码,对应核心模块中各个寄存器的寄存器配置数值。
基于该测试用例,可确定该生成式约束模型包括两层,其中,该生成式约束模型的根节点包括三个普通模块,分别为普通模块1、普通模块2和普通模块3。由于011这一字段中的第一个字符为0,则表明普通模块1对应的约束条件为在测试过程中处于关闭状态。由于011这一字段中的第二个和第三个字符均为1,则表明普通模块2和普通模块3对应的约束条件为在测试过程中处于使能状态。
根据第二字段中的11可确定该生成式约束模型的普通模块的子节点包括两个,分别为核心模块1和核心模块2由于11这一字段中的两个字符均为1,则表明核心模块1和核心模块2对应的约束条件为在测试过程中处于使能状态。
由于处于使能状态的核心模块有两个,则40和32这两个字段分别对应其中一个核心模块的寄存器配置数值。其中,第三字段中的40为处于使能状态的第一个核心模块(即核心模块1)对应的寄存器配置数值,基于该字段,可确定核心模块1对应的第一个寄存器(即寄存器a)的寄存器配置数值为4,核心模块2对应的第二个寄存器(即寄存器b)的寄存器配置数值为0。
第三字段中的32为处于使能状态的第二个核心模块(即核心模块2)对应的寄存器配置数值,基于该字段,可确定核心模块2对应的第一个寄存器(即寄存器c)的寄存器配置数值为3,第二个寄存器(即寄存器d)的寄存器配置数值为2。
基于该测试用例,模型生成模块可生成图7右侧所示的树形结构的生成式约束模型(即约束树模型),并通过寄存器配置模块对寄存器配置相应的寄存器配置数值,以使被配置后的寄存器执行相应操作。之后,数据传输模块接收芯片设计模块的执行结果,对分模块进行结果比对,运行完成后硬件加速器生成相应的仿真报告。
与上述实施例相对应的,本申请通过另一实施例公开一种基于生成式约束模型的芯片验证方法,该方法可由上述各个实施例中公开的基于生成式约束模型的芯片验证系统执行,参见图8所示的工作流程示意图,该方法包括以下步骤:
步骤S100、所述基于生成式约束模型的芯片验证系统中的模型生成模块在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值;
步骤S200、所述基于生成式约束模型的芯片验证系统中的寄存器配置模块根据所述约束条件将所述寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能;
步骤S300、所述基于生成式约束模型的芯片验证系统中的数据传输模块接收执行所述待测试功能后的结果;
步骤S400、所述基于生成式约束模型的芯片验证系统中的对分模块将所述数据传输模块接收的结果与标准结果进行比对,以便硬件加速器根据比对结果生成仿真报告。
基于生成式约束模型的芯片验证系统通过执行本申请实施例提供的方法,可实现对芯片功能的测试。而且,该系统进行测试时所应用的测试用例为文本形式,因此,无需编译测试用例,提升了仿真环境整体的编译效率,相应的也提高了对芯片功能进行测试的效率。
与上述实施例相对应的,本申请通过另一实施例公开一种基于生成式约束模型的芯片验证设备,该设备包括以上各个实施例提供的芯片验证系统。并且,该基于生成式约束模型的芯片验证设备也可运行在硬件加速器中。
其中,该基于生成式约束模型的芯片验证系统运行在硬件加速器中,而待配置的寄存器位于设计模块内,所述设计模块与所述仿真环境相连通。这种情况下,基于生成式约束模型的芯片验证系统在获取文本形式的测试用例之后,可基于该测试用例,生成相应的生成式约束模型,并为设计模块内的寄存器配置相应的寄存器配置数值,以便设计模块内的寄存器启动工作,执行待测试的功能。并且,该设备还可接收寄存器执行所述待测试功能的结果,并由芯片验证系统中的对分模块进行结果比对,以便硬件加速器根据比对结果生成对应的仿真报告。
本说明书的各个实施例之间相同相似的部分互相参见即可,每个实施例重点介绍的都是与其他实施例不同之处,相关之处相互参照即可。
本领域的技术人员可以清楚地了解到本申请实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
以上所述的本申请实施方式并不构成对本申请保护范围的限定。

Claims (10)

1.一种基于生成式约束模型的芯片验证系统,其特征在于,所述系统运行于硬件加速器中,所述系统包括:
模型生成模块、寄存器配置模块、数据传输模块和对分模块;
所述模型生成模块用于在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值;
所述寄存器配置模块用于根据所述约束条件将寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能;
所述数据传输模块用于接收所述寄存器执行所述待测试功能后的结果;
所述对分模块用于将所述数据传输模块接收的结果与标准结果进行比对,以便所述硬件加速器根据比对结果生成仿真报告。
2.根据权利要求1所述的系统,其特征在于,所述模型生成模块包括:
测试用例解析组件、模型确定组件和模型激活组件;
所述测试用例解析组件用于对文本形式的所述测试用例进行解析,获取相应的解析信息,所述解析信息包括所述生成式约束模型的对应参数和所述寄存器配置数值,所述对应参数包括所述生成式约束模型中各节点对应的约束条件;
所述模型确定组件用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构;
所述模型激活组件用于对所述架构配置所述寄存器数值,并通过对配置后的所述架构进行随机化处理,确定所述生成式约束模型。
3.根据权利要求2所述的系统,其特征在于,所述模型确定组件包括:模型生成组件和模型生长组件;
所述模型生成组件用于生成初始化模型;
所述模型生长组件用于根据所述生成式约束模型的对应参数,确定所述生成式约束模型的架构,并将所述约束条件添加至所述生成式约束模型的架构中。
4.根据权利要求2所述的系统,其特征在于,所述模型激活组件包括:节点激活组件和随机化组件;
所述节点激活组件用于根据寄存器配置数值,对所述生成式约束模型的架构中各个节点进行配置;
所述随机化组件用于对配置各个所述节点后的生成式约束模型的架构进行随机化处理,确定所述生成式约束模型。
5.根据权利要求2至4任一项所述的系统,其特征在于,
所述生成式约束模型为树形结构,所述树形结构包括至少两层节点;
若所述树形结构包括两层节点,所述树形结构包括普通约束层和位于所述普通约束层下层的核心约束层;
若所述树形结构包括三层节点,所述树形结构包括普通约束层、位于所述普通约束层下层的核心约束层和位于所述核心约束层下层的子约束层。
6.根据权利要求5所述的系统,其特征在于,
所述测试用例包括第一字段、第二字段和第三字段;
其中,所述第一字段用于指示所述测试用例的主体名称;
所述第二字段用于指示所述生成式约束模型的对应参数;
所述第三字段用于指示各层所述节点对应的所述寄存器配置数值。
7.根据权利要求2所述的系统,其特征在于,
若所述生成式约束模型为树形结构,所述生成式约束模型的对应参数还包括:所述树形结构的层数、每层的所述节点的数量以及所述树形结构中的父子节点间的映射关系。
8.一种基于生成式约束模型的芯片验证方法,其特征在于,该方法由权利要求1至7任意一项所述的基于生成式约束模型的芯片验证系统执行,所述方法包括:
所述基于生成式约束模型的芯片验证系统中的模型生成模块在获取文本形式的测试用例之后,通过对所述测试用例进行解析,生成所述测试用例对应的生成式约束模型,所述生成式约束模型包括对芯片的待测试功能进行测试时对应的约束条件,以及执行所述待测试功能的寄存器对应的寄存器配置数值;
所述基于生成式约束模型的芯片验证系统中的寄存器配置模块根据所述约束条件将所述寄存器配置数值配置至所述寄存器中,以便所述寄存器根据所述寄存器配置数值执行所述待测试功能;
所述基于生成式约束模型的芯片验证系统中的数据传输模块接收所述寄存器执行所述待测试功能后的结果;
所述基于生成式约束模型的芯片验证系统中的对分模块将所述数据传输模块接收的结果与标准结果进行比对,以便硬件加速器根据比对结果生成仿真报告。
9.一种基于生成式约束模型的芯片验证设备,其特征在于,包括:
权利要求1至7任一项所述的基于生成式约束模型的芯片验证系统;
所述基于生成式约束模型的芯片验证设备运行在硬件加速器中。
10.根据权利要求9所述的设备,其特征在于,
待配置的寄存器位于设计模块内,所述设计模块与仿真环境相连通,进行指令和数据交互,所述基于生成式约束模型的芯片验证系统位于所述仿真环境中。
CN202310962772.2A 2023-08-01 2023-08-01 基于生成式约束模型的芯片验证系统、方法及验证设备 Pending CN116992805A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310962772.2A CN116992805A (zh) 2023-08-01 2023-08-01 基于生成式约束模型的芯片验证系统、方法及验证设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310962772.2A CN116992805A (zh) 2023-08-01 2023-08-01 基于生成式约束模型的芯片验证系统、方法及验证设备

Publications (1)

Publication Number Publication Date
CN116992805A true CN116992805A (zh) 2023-11-03

Family

ID=88522790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310962772.2A Pending CN116992805A (zh) 2023-08-01 2023-08-01 基于生成式约束模型的芯片验证系统、方法及验证设备

Country Status (1)

Country Link
CN (1) CN116992805A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118536445A (zh) * 2024-07-15 2024-08-23 深圳鲲云信息科技有限公司 一种用于芯片仿真的方法和计算设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN118536445A (zh) * 2024-07-15 2024-08-23 深圳鲲云信息科技有限公司 一种用于芯片仿真的方法和计算设备
CN118536445B (zh) * 2024-07-15 2024-09-20 深圳鲲云信息科技有限公司 一种用于芯片仿真的方法和计算设备

Similar Documents

Publication Publication Date Title
CN105701008B (zh) 用于测试用例生成的系统和方法
CN101286132B (zh) 一种基于软件缺陷模式的测试方法及系统
US8924937B1 (en) Method and system for generating verification information and tests for software
KR20210149045A (ko) 인공 지능 칩 검증
US20070016829A1 (en) Test case generator
CN109739740A (zh) 一种aadl模型组合形式化验证方法
CN116992805A (zh) 基于生成式约束模型的芯片验证系统、方法及验证设备
Ratiu et al. FASTEN: an extensible platform to experiment with rigorous modeling of safety-critical systems
WO2005067415A2 (en) System and method for deriving a process-based specification
CN114995809B (zh) 一种可证明的高安全软件构造方法及系统
CN104579837A (zh) 一种OpenFlow协议一致性测试的方法和系统
Graf et al. Correct development of embedded systems
CN115408289A (zh) 一种面向scade模型的测试用例自动生成方法
Wehrmeister et al. Support for early verification of embedded real-time systems through UML models simulation
Darvas et al. Faithful mapping of model classes to mathematical structures
Zündorf A heuristic for the subgraph isomorphism problem in executing PROGRES
CN114647568A (zh) 自动化测试方法、装置、电子设备及可读存储介质
Zhong et al. Concurrent software fine‐coarse‐grained automatic modelling by Coloured Petri Nets for model checking
Vassor et al. Refinements for multiparty message-passing protocols: specification-agnostic theory and implementation
CN118034661B (zh) 大语言模型智能任务应用系统
CN117056238B (zh) 验证部署框架下模型转换正确性的方法及计算设备
Mingela et al. Towards static typechecking for jolie
Cassol et al. A methodology to infer and refactor an object‐oriented model from C applications
Palakkal et al. Automatic C to Simulink Model Converter (C2M) Tool
Jonsson A case study of interactive conflict-resolution support in software configuration

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