CN111611176B - 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 - Google Patents
一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 Download PDFInfo
- Publication number
- CN111611176B CN111611176B CN202010596787.8A CN202010596787A CN111611176B CN 111611176 B CN111611176 B CN 111611176B CN 202010596787 A CN202010596787 A CN 202010596787A CN 111611176 B CN111611176 B CN 111611176B
- Authority
- CN
- China
- Prior art keywords
- interface
- coverage
- description
- rate model
- coverage rate
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3676—Test management for coverage analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种通用接口覆盖率模型验证环境自动生成方法、系统及介质,本发明方法包括:获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本;根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件,自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件。本发明具有良好继承性,避免了对代码直接进行修改的重复性工作,也避免了代码编写风格差异带来的风险,本发明还可以应用于标准接口之外的自定义协议接口的覆盖率模型生成。
Description
技术领域
本发明涉及集成电路功能验证领域,具体涉及一种通用接口覆盖率模型验证环境自动生成方法、系统及介质。
背景技术
随着集成电路的设计规模越来越大,对于功能正确性验证的挑战也随之增大。功能正确性验证的挑战主要表现在以下几方面:验证功能点是否完备,测试结果的正确性检测,覆盖率模型是否完善等。功能点的完备性可以通过多次功能点的评审来尽可能保证完备性。测试结果的正确性检测可以通过编写参考模型,并与设计进行一致性检查来保证。覆盖率模型通常由验证师根据功能点文档进行编写,由于不同验证师对功能点的理解和代码编写风格有差异,会造成每个验证师编写的功能覆盖率模型存在较大差异,在其它项目中需要继承该覆盖率模型时,往往需要花费较多的时间对该覆盖率模型进行调测试,不具有良好的继承性,从而导致很多重复工作的进行。因此寻找一种具有良好继承性,且能够通用的覆盖率模型生成方法,对于节省集成电路设计验证的时间和人力成本具有重要意义。
发明内容
本发明要解决的技术问题:针对现有技术的上述问题,提供一种通用接口覆盖率模型验证环境自动生成方法、系统及介质,本发明对于相同接口的不同覆盖率模型需求,仅需对描述文件进行少量修改即可,从而提高了覆盖率模型的继承性,具有良好继承性,避免了对代码直接进行修改的重复性工作,也避免了代码编写风格差异带来的风险,本发明还可以应用于标准接口之外的自定义协议接口的覆盖率模型生成。
为了解决上述技术问题,本发明采用的技术方案为:
一种通用接口覆盖率模型验证环境自动生成方法,该方法包括:
1)获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;
2)根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
3)根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件。
可选地,所述覆盖率模型描述模板包括顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板均为表格形式且表头中至少包含项目子系统、项目模块、接口协议和类型,所述顶层描述模板的数量为1个,所述接口描述模板、断言描述模板和覆盖组描述模板的数量为至少一个。
可选地,所述顶层描述模板记录的信息包括索引关系、覆盖率模型、设计接口层次,其中索引关系用于记录建立索引关系的接口描述模板、断言描述模板和覆盖组描述模板,索引关系的记录字段包括项目子系统、项目模块、接口协议;覆盖率模型用于记录需要使用接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口功能覆盖率模型;设计接口层次用于记录所需要收集覆盖率的接口在验证环境中的层次关系,设计接口层次的记录字段包括模块的实例化名及其对应的接口层次;所述接口描述模板记录的信息包括要生成的覆盖率模型的接口信号、信号位宽、宏定义值,接口信号的记录字段包括覆盖率模型接口、设计接口,其中设计接口为与覆盖率模型接口相连的接口,宏定义值的记录字段包括信号位宽声明、断言和覆盖组描述;所述断言描述模板记录的信息包括覆盖率模型中断言的断言描述、注释和配置选项,断言描述的记录字段包括断言名、断言触发条件、断言检测时序,配置选项的记录字段包括断言生成使能控制、断言生成类型控制,断言生成使能控制用于控制是否生成此断言,断言生成类型控制用于控制断言是覆盖断言或时序断言,覆盖断言只检测断言是否覆盖到、不具有报错功能;时序断言会在时序检测出错时立即报断言错;所述覆盖组描述模板记录的信息包括覆盖组描述、注释和配置选项,覆盖组描述的记录字段包括覆盖组名、覆盖组触发条件、覆盖点类型、覆盖点名、采样信号、仓名、仓取值,配置选项的记录字段包括覆盖组生成使能、覆盖组配置项、覆盖点类型配置项、仓类型配置项,覆盖组生成使能用于控制是否生成此覆盖组,覆盖点类型配置项用于区分覆盖点是独立覆盖点还是交叉覆盖点,仓类型配置项包括三种仓类型:正常仓、非法仓和不统计仓。
可选地,步骤3)中使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境的详细步骤包括:
3.1)进行描述表分类:根据表头的类型将覆盖率模型描述模板分类为顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,并根据表头中的项目名、子系统名、模块名和接口协议将每个模板进行记录以便后续根据顶层描述模板中的索引关系进行所需模板的查找;
3.2)覆盖率模型代码生成:根据顶层描述模板以及分类得到的接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型代码;
3.3)接口宏定义文件生成:根据接口描述模板,查找全部接口描述模板中接口信号位宽定义所使用的宏定义值,并将其保存到接口宏定义文件中,以便于后续进行位宽的修改;
3.4)文件列表文件生成:将接口覆盖率模型文件和接口宏定义文件写入文件列表文件中,其路径使用一个宏定义值;
3.5)连接文件生成:根据顶层描述模板以及分类得到的接口描述模板的内容,将接口覆盖率模型与所需要收集覆盖率的接口进行连接,并将连接关系保存到连接文件中;
3.6)非接口宏定义和中文字符替换:将生成的接口覆盖率模型代码中的宏定义值替换为断言和覆盖组编写的语法支持的对应内容;将生成的接口覆盖率模型代码中的中文字符替换为生成的接口覆盖率模型代码的编译环境支持的语言文字。
可选地,步骤3.2)的详细步骤包括:
3.2.1)读取顶层描述模板的第一行的内容作为当前行n;
3.2.2)判断当前行n的内容和已生成的接口覆盖率模型来确认是否需要生成该接口覆盖率模型代码,如果需要则生成一个保存该接口覆盖率模型空模板的文件,并在文件中加入该接口覆盖率模型的空模块,然后进入步骤3.2.3);如果前面已经生成了该接口覆盖率模型代码,则进入步骤3.2.7);
3.2.3)根据顶层描述模板当前行n的内容的描述和所获取的接口描述模板分类,查找到所需的接口描述模板,并根据接口描述模板内容在生成的接口覆盖率模型的模块中加上接口信号代码,对于覆盖率模型而言,由于其作用是收集设计接口上的信号,因此所述接口覆盖率模型中加上的接口信号均为输入信号;
3.2.4)根据顶层模板第n行内容的描述和所获取的断言描述模板分类,查找所需的断言描述模板,并根据断言描述模板的内容和断言编写语法在生成的接口覆盖率模型的模块中生成所需的断言代码;
3.2.5)根据顶层模板第n行内容的描述和所获取的覆盖组描述模板分类,查找所需的覆盖组描述模板,并根据覆盖组描述模板的内容和覆盖组编写语法在生成的接口覆盖率模型的模块中生成所需的覆盖组代码;
3.2.6)保存并记录所生成的接口覆盖率模型;
3.2.7)判断当前行n是否为最后一行,若当前行n不是最后一行,则读取下一行作为新的当前行n,进入步骤3.2.2);若当前行n是最后一行,则结束该步骤并跳到步骤3.3)。
此外,本发明还提供一种通用接口覆盖率模型验证环境自动生成系统,包括:
模板获取程序单元,用于获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;
描述文件获取程序单元,用于根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
脚本生成程序单元,用于根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件。
此外,本发明还提供一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,该计算机设备被编程或配置以执行所述通用接口覆盖率模型验证环境自动生成方法的步骤。
此外,本发明还提供一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,该计算机设备的存储器中存储有被编程或配置以执行所述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
此外,本发明还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行所述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
和现有技术相比,本发明具有下述优点:本发明通用接口覆盖率模型验证环境自动生成方法包括:获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本;根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件,自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件。本发明对于相同接口的不同覆盖率模型需求,仅需对描述文件进行少量修改即可,从而提高了覆盖率模型的继承性,具有良好继承性,避免了对代码直接进行修改的重复性工作,也避免了代码编写风格差异带来的风险,本发明还可以应用于标准接口之外的自定义协议接口的覆盖率模型生成。本发明针对不同的处理器内部接口验证需求,仅需对描述文件进行修改即可生成所需覆盖率模型代码,从而提高了覆盖率模型的可继承性,避免了大量的重复性工作和编码风格差异带来的风险。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为本发明实施例中顶层描述模板的结构示意图。
图3为本发明实施例中接口描述模板的结构示意图。
图4为本发明实施例中断言描述模板的结构示意图。
图5为本发明实施例中覆盖组描述模板的结构示意图。
图6为本发明实施例中覆盖率模型自动生成脚本处理流程示意图。
图7为本发明实施例中覆盖率模型代码的生成步骤流程示意图。
具体实施方式
在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
如图1所示,本实施例通用接口覆盖率模型验证环境自动生成方法包括:
1)获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;
2)根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
3)根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件。其中,接口覆盖率模型是按照顶层模板生成的,如果获取覆盖率模型描述文件时声明了多个接口覆盖率模型则生成多个文件,每个文件保存一个对应的覆盖率模型;所述宏定义文件是覆盖率模型中部分接口信号位宽所使用的宏定义值;文件列表中包含了所生成的覆盖率模型和宏定义文件,文件路径使用宏定义值以便于覆盖率模型环境的移植;连接文件是根据顶层模板和接口模板的内容生成的,详细列出了接口覆盖率模型与设计接口之间的连接关系。
本实施例中,覆盖率模型描述模板包括顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板均为表格形式且表头中至少包含项目子系统、项目模块、接口协议和类型,顶层描述模板的数量为1个,接口描述模板、断言描述模板和覆盖组描述模板的数量为至少一个,可根据所需要的接口覆盖率模型进行添加。覆盖率模型描述模板的各模板为表格形式,验证师需要按照格式要求将接口所涉及的全部覆盖组和断言写入模板中,再根据具体设计选择所需要的覆盖组和断言,就能够使用覆盖率模型自动生成脚本生成所需的覆盖率模型代码。由于顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板均为表格形式且带有表头,因此可通过表头的类型可以标识该描述模板为顶层描述模板、接口描述模板、断言描述模板或覆盖组描述模板中的一种,并使用表头的项目子系统、项目模块、接口协议和类型作为顶层描述模板中填写内容的索引,以便找到与顶层描述模板相关联的接口描述模板、断言描述模板和覆盖组描述模板。作为一种可选的实施方式,顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板的表头中还包括:该模板所属项目、作者、修改时间。
如图2所示,顶层描述模板记录的信息包括索引关系、覆盖率模型、设计接口层次,其中索引关系用于记录建立索引关系的接口描述模板、断言描述模板和覆盖组描述模板,索引关系的记录字段包括项目子系统、项目模块、接口协议;覆盖率模型用于记录需要使用接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口功能覆盖率模型;设计接口层次用于记录所需要收集覆盖率的接口在验证环境中的层次关系,设计接口层次的记录字段包括模块的实例化名及其对应的接口层次;顶层描述模板为覆盖率模型的总体描述,其表头中的类型为顶层,描述了需要使用接口、断言和覆盖组描述模板生成所需的接口功能覆盖率模型,并通过顶层描述模板中的内容与其它模板的表头建立索引关系,以便快速查找所需的接口描述模板、断言描述模板和覆盖组描述模板,接口功能覆盖率模型是使用System Verilog语言(SV语言)编写的负责收集接口功能覆盖率的模块。顶层描述模板还指定了所需要收集覆盖率的接口在验证环境中的层次关系,该层次关系在覆盖率模型与设计接口进行连接时使用。
如图3所示,接口描述模板记录的信息包括要生成的覆盖率模型的接口信号、信号位宽、宏定义值,接口信号的记录字段包括覆盖率模型接口、设计接口,其中设计接口为与覆盖率模型接口相连的接口,宏定义值的记录字段包括信号位宽声明、断言和覆盖组描述;接口描述模板为覆盖率模型的接口描述,其表头中的类型为接口,描述了要生成的覆盖率模型的接口信号、宏定义值和与设计的连接关系。如果定义接口信号位宽中使用了宏定义值,覆盖率模型自动生成脚本则会提取该值并生成对应宏定义值后保存到宏定义文件;同时,如果断言和覆盖组中需要加其它宏定义值,可以在接口描述模板中添加,该宏定义值不会保存到宏定义文件中,步覆盖率模型自动生成脚本需要自动将生成的覆盖率模型代码中的这些宏定义值替换。
如图4所示,断言描述模板记录的信息包括覆盖率模型中断言的断言描述、注释和配置选项,断言描述的记录字段包括断言名、断言触发条件、断言检测时序,配置选项的记录字段包括断言生成使能控制、断言生成类型控制,断言生成使能控制用于控制是否生成此断言,断言生成类型控制用于控制断言是覆盖断言或时序断言,覆盖断言只检测断言是否覆盖到、不具有报错功能;时序断言会在时序检测出错时立即报断言错。
断言描述模板为覆盖率模型中断言的描述,其表头中的类型为断言,描述了接口覆盖率模型中需要生成的断言,断言描述模板包含多项内容:断言使能、属性名、触发条件、断言时序、断言类型和注释等。断言使能用于控制是否生成此断言。属性名为断言名称,用于区分不同的断言。触发条件用于控制断言触发的具体条件,一般在复位完成后的时钟边沿进行触发。断言时序项用于描述该断言所需检查的具体时序关系,该时序关系必须按照System Verilog语言中关于断言的语法要求进行编写。断言描述模板的断言类型项用于控制断言是覆盖断言或时序断言,覆盖断言只检测断言是否覆盖到,不具有报错功能;时序断言会在时序检测出错时立即报断言错。断言描述模板的注释部分,主要是说明作用,方便使用者快速理解该断言检测的功能。
如图5所示,覆盖组描述模板记录的信息包括覆盖组描述、注释和配置选项,覆盖组描述的记录字段包括覆盖组名、覆盖组触发条件、覆盖点类型、覆盖点名、采样信号、仓名、仓取值,配置选项的记录字段包括覆盖组生成使能、覆盖组配置项、覆盖点类型配置项、仓类型配置项,覆盖组生成使能用于控制是否生成此覆盖组,覆盖点类型配置项用于区分覆盖点是独立覆盖点还是交叉覆盖点,仓类型配置项包括三种仓类型:正常仓、非法仓和不统计仓。覆盖组描述模板为覆盖率模型中覆盖组的描述,其表头中的类型为覆盖组,描述了接口覆盖率模型中需要生成的覆盖组,覆盖组描述模板包含多项内容:覆盖组使能、覆盖组名、触发条件、覆盖组配置选项、覆盖点类型、覆盖点名、采样变量、仓类型、仓名、仓取值和注释。覆盖组使能用于控制是否生成此覆盖组。覆盖组名为该条覆盖组的名字,用于与其它覆盖组进行区分,同时,取名还可以依据覆盖组的功能进行命名,从而可以通过覆盖组名明白该覆盖组的功能。覆盖组配置选项,该配置选项必须是System Verilog语言中对覆盖组所定义的配置选项。覆盖点类型用于区分覆盖点是独立覆盖点还是交叉覆盖点。覆盖点名是该覆盖点的名字,一般可以根据所采样的变量信号进行命名,使该覆盖点名更有意义。采样变量是指明该覆盖点所采样的接口信号。仓类型是为了将所采样的接口信号的值进行区分,其包括三种仓类型:正常仓、非法仓和不统计仓。仓名是给所建立的仓建立的名字,用于仓的区分。仓取值主要描述该仓下具体的取值或取值范围。注释部分,主要是说明作用,方便使用者的快速理解该覆盖组检查的功能。
步骤2)根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件的步骤包括:根据步骤1)所定义的顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板的格式要求,设计接口所需收集的功能覆盖点,设计接口在验证环境中的层次关系生成所需覆盖率模型描述文件的过程。需要注意全部模板中的表头内容的填写与顶层描述模板的内容之间建立的索引关系必须正确,脚本在不能找到正确的索引关系时会输出错误信号,且不会生成覆盖率模型中的该部分代码。步骤2)集中体现了本发明提高了覆盖率模型代码继承性的优点,如果后续新项目中,所需收集覆盖率的接口在步骤2)所生成的覆盖率模型描述文件中存在,则可以继承该接口在覆盖率模型描述文件中的接口、断言和覆盖组描述模板,用户仅需要根据新项目进行对全部描述模板的表头和顶层描述模板内容进行修改,从而很快生成新项目所需的覆盖率模型描述文件。
如图6所示,步骤3)中使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境的详细步骤包括:
3.1)进行描述表分类:根据表头的类型将覆盖率模型描述模板分类为顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,并根据表头中的项目名、子系统名、模块名和接口协议将每个模板进行记录以便后续根据顶层描述模板中的索引关系进行所需模板的查找;
3.2)覆盖率模型代码生成:根据顶层描述模板以及分类得到的接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型代码;
3.3)接口宏定义文件生成:根据接口描述模板,查找全部接口描述模板中接口信号位宽定义所使用的宏定义值,并将其保存到接口宏定义文件中,以便于后续进行位宽的修改;
3.4)文件列表文件生成:将接口覆盖率模型文件和接口宏定义文件写入文件列表文件中,其路径使用一个宏定义值;文件列表文件的生成路径和其中内容包含宏定义值,主要是为了便于将所生成的覆盖率模型集成到验证环境中;
3.5)连接文件生成:根据顶层描述模板以及分类得到的接口描述模板的内容,将接口覆盖率模型与所需要收集覆盖率的接口进行连接,并将连接关系保存到连接文件中;覆盖率模型集成到验证环境时,只需要将该文件包含到验证环境的顶层即可;
3.6)非接口宏定义和中文字符替换:将生成的接口覆盖率模型代码中的宏定义值替换为断言和覆盖组编写的语法支持的对应内容;将生成的接口覆盖率模型代码中的中文字符替换为生成的接口覆盖率模型代码的编译环境支持的语言文字。为了使覆盖率模型描述文件具有更好的继承性和可配性,在断言和覆盖组描述模板中使用了宏定义值,但是断言和覆盖组编写的语法是不支持使用宏定义值的,所以需要替换所生成的覆盖率模型中的非接口宏定义值;同时,用户在模板内容填写时可能会输入中文字符,导致生成的覆盖率模型在编译的时候报语法错误,所以也需要进行中文字符的查找与替换。
如图7所示,步骤3.2)的详细步骤包括:
3.2.1)读取顶层描述模板的第一行的内容作为当前行n;
3.2.2)判断当前行n的内容和已生成的接口覆盖率模型来确认是否需要生成该接口覆盖率模型代码,如果需要则生成一个保存该接口覆盖率模型空模板的文件,并在文件中加入该接口覆盖率模型的空模块,然后进入步骤3.2.3);如果前面已经生成了该接口覆盖率模型代码,则进入步骤3.2.7);
3.2.3)根据顶层描述模板当前行n的内容的描述和所获取的接口描述模板分类,查找到所需的接口描述模板,并根据接口描述模板内容在生成的接口覆盖率模型的模块中加上接口信号代码,对于覆盖率模型而言,由于其作用是收集设计接口上的信号,因此所述接口覆盖率模型中加上的接口信号均为输入信号;
3.2.4)根据顶层模板第n行内容的描述和所获取的断言描述模板分类,查找所需的断言描述模板,并根据断言描述模板的内容和断言编写语法在生成的接口覆盖率模型的模块中生成所需的断言代码;
3.2.5)根据顶层模板第n行内容的描述和所获取的覆盖组描述模板分类,查找所需的覆盖组描述模板,并根据覆盖组描述模板的内容和覆盖组编写语法在生成的接口覆盖率模型的模块中生成所需的覆盖组代码;
3.2.6)保存并记录所生成的接口覆盖率模型;
3.2.7)判断当前行n是否为最后一行,若当前行n不是最后一行,则读取下一行作为新的当前行n,进入步骤3.2.2);若当前行n是最后一行,则结束该步骤并跳到步骤3.3)。
此外,本实施例还提供一种通用接口覆盖率模型验证环境自动生成系统,包括:
模板获取程序单元,用于获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;
描述文件获取程序单元,用于根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
脚本生成程序单元,用于根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件,所述接口覆盖率模型是按照顶层模板生成的,如果获取覆盖率模型描述文件时声明了多个接口覆盖率模型则生成多个文件,每个文件保存一个对应的覆盖率模型;所述宏定义文件是覆盖率模型中部分接口信号位宽所使用的宏定义值;所述文件列表中包含了所生成的覆盖率模型和宏定义文件,文件路径使用宏定义值以便于覆盖率模型环境的移植;所述连接文件是根据顶层模板和接口模板的内容生成的,详细列出了接口覆盖率模型与设计接口之间的连接关系。
此外,本实施例还提供一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,该计算机设备被编程或配置以执行前述通用接口覆盖率模型验证环境自动生成方法的步骤。
此外,本实施例还提供一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,该计算机设备的存储器中存储有被编程或配置以执行前述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
此外,本实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有被编程或配置以执行前述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
以上对本发明的较佳实施例子进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;任何熟悉本领域的技术人员,在不脱离本发明技术方案范围情况下,都可利用上述揭示的方法和技术内容对本发明技术方案做出许多可能的变动和修饰,或修改为等同变化的等效实施例,这并不影响本发明的实质内容。因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均仍属于本发明技术方案保护的范围内。
Claims (5)
1.一种通用接口覆盖率模型验证环境自动生成方法,其特征在于,该方法包括:
1)获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;
2)根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
3)根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件;
所述覆盖率模型描述模板包括顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板均为表格形式且表头中至少包含项目子系统、项目模块、接口协议和类型,所述顶层描述模板的数量为1个,所述接口描述模板、断言描述模板和覆盖组描述模板的数量为至少一个;
所述顶层描述模板记录的信息包括索引关系、覆盖率模型、设计接口层次,其中索引关系用于记录建立索引关系的接口描述模板、断言描述模板和覆盖组描述模板,索引关系的记录字段包括项目子系统、项目模块、接口协议;覆盖率模型用于记录使用接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型;设计接口层次用于记录所需要收集覆盖率的接口在验证环境中的层次关系,设计接口层次的记录字段包括模块的实例化名及其对应的接口层次;所述接口描述模板记录的信息包括要生成的覆盖率模型的接口信号、信号位宽、宏定义值,接口信号的记录字段包括覆盖率模型接口、设计接口,其中设计接口为与覆盖率模型接口相连的接口,宏定义值的记录字段包括信号位宽声明、断言和覆盖组描述;所述断言描述模板记录的信息包括覆盖率模型中断言的断言描述、注释和配置选项,断言描述的记录字段包括断言名、断言触发条件、断言检测时序,配置选项的记录字段包括断言生成使能控制、断言生成类型控制,断言生成使能控制用于控制是否生成此断言,断言生成类型控制用于控制断言是覆盖断言或时序断言,覆盖断言只检测断言是否覆盖到、不具有报错功能;时序断言会在时序检测出错时立即报断言错;所述覆盖组描述模板记录的信息包括覆盖组描述、注释和配置选项,覆盖组描述的记录字段包括覆盖组名、覆盖组触发条件、覆盖点类型、覆盖点名、采样信号、仓名、仓取值,配置选项的记录字段包括覆盖组生成使能、覆盖组配置项、覆盖点类型配置项、仓类型配置项,覆盖组生成使能用于控制是否生成此覆盖组,覆盖点类型配置项用于区分覆盖点是独立覆盖点还是交叉覆盖点,仓类型配置项包括三种仓类型:正常仓、非法仓和不统计仓;
步骤3)中使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境的详细步骤包括:
3.1)进行描述表分类:根据表头的类型将覆盖率模型描述模板分类为顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,并根据表头中的项目名、子系统名、模块名和接口协议将每个模板进行记录以便后续根据顶层描述模板中的索引关系进行所需模板的查找;
3.2)覆盖率模型代码生成:根据顶层描述模板以及分类得到的接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型代码;
3.3)接口宏定义文件生成:根据接口描述模板,查找全部接口描述模板中接口信号位宽定义所使用的宏定义值,并将其保存到接口宏定义文件中,以便于后续进行位宽的修改;
3.4)文件列表文件生成:将接口覆盖率模型文件和接口宏定义文件写入文件列表文件中,其路径使用一个宏定义值;
3.5)连接文件生成:根据顶层描述模板以及分类得到的接口描述模板的内容,将接口覆盖率模型与所需要收集覆盖率的接口进行连接,并将连接关系保存到连接文件中;
3.6)非接口宏定义和中文字符替换:将生成的接口覆盖率模型代码中的宏定义值替换为断言和覆盖组编写的语法支持的对应内容;将生成的接口覆盖率模型代码中的中文字符替换为生成的接口覆盖率模型代码的编译环境支持的语言文字;
步骤3.2)的详细步骤包括:
3.2.1)读取顶层描述模板的第一行的内容作为当前行n;
3.2.2)判断当前行n的内容和已生成的接口覆盖率模型来确认是否需要生成该接口覆盖率模型代码,如果需要则生成一个保存该接口覆盖率模型空模板的文件,并在文件中加入该接口覆盖率模型的空模块,然后进入步骤3.2.3);如果前面已经生成了该接口覆盖率模型代码,则进入步骤3.2.7);
3.2.3)根据顶层描述模板当前行n的内容的描述和所获取的接口描述模板分类,查找到所需的接口描述模板,并根据接口描述模板内容在生成的接口覆盖率模型的模块中加上接口信号代码,对于覆盖率模型而言,由于其作用是收集设计接口上的信号,因此所述接口覆盖率模型中加上的接口信号均为输入信号;
3.2.4)根据顶层模板第n行内容的描述和所获取的断言描述模板分类,查找所需的断言描述模板,并根据断言描述模板的内容和断言编写语法在生成的接口覆盖率模型的模块中生成所需的断言代码;
3.2.5)根据顶层模板第n行内容的描述和所获取的覆盖组描述模板分类,查找所需的覆盖组描述模板,并根据覆盖组描述模板的内容和覆盖组编写语法在生成的接口覆盖率模型的模块中生成所需的覆盖组代码;
3.2.6)保存并记录所生成的接口覆盖率模型;
3.2.7)判断当前行n是否为最后一行,若当前行n不是最后一行,则读取下一行作为新的当前行n,进入步骤3.2.2);若当前行n是最后一行,则结束该步骤并跳到步骤3.3)。
2.一种通用接口覆盖率模型验证环境自动生成系统,其特征在于包括:
模板获取程序单元,用于获取包含通用接口所涉及的全部覆盖组和断言的覆盖率模型描述模板;所述覆盖率模型描述模板包括顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板均为表格形式且表头中至少包含项目子系统、项目模块、接口协议和类型,所述顶层描述模板的数量为1个,所述接口描述模板、断言描述模板和覆盖组描述模板的数量为至少一个;所述顶层描述模板记录的信息包括索引关系、覆盖率模型、设计接口层次,其中索引关系用于记录建立索引关系的接口描述模板、断言描述模板和覆盖组描述模板,索引关系的记录字段包括项目子系统、项目模块、接口协议;覆盖率模型用于记录需要使用接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型;设计接口层次用于记录所需要收集覆盖率的接口在验证环境中的层次关系,设计接口层次的记录字段包括模块的实例化名及其对应的接口层次;所述接口描述模板记录的信息包括要生成的覆盖率模型的接口信号、信号位宽、宏定义值,接口信号的记录字段包括覆盖率模型接口、设计接口,其中设计接口为与覆盖率模型接口相连的接口,宏定义值的记录字段包括信号位宽声明、断言和覆盖组描述;所述断言描述模板记录的信息包括覆盖率模型中断言的断言描述、注释和配置选项,断言描述的记录字段包括断言名、断言触发条件、断言检测时序,配置选项的记录字段包括断言生成使能控制、断言生成类型控制,断言生成使能控制用于控制是否生成此断言,断言生成类型控制用于控制断言是覆盖断言或时序断言,覆盖断言只检测断言是否覆盖到、不具有报错功能;时序断言会在时序检测出错时立即报断言错;所述覆盖组描述模板记录的信息包括覆盖组描述、注释和配置选项,覆盖组描述的记录字段包括覆盖组名、覆盖组触发条件、覆盖点类型、覆盖点名、采样信号、仓名、仓取值,配置选项的记录字段包括覆盖组生成使能、覆盖组配置项、覆盖点类型配置项、仓类型配置项,覆盖组生成使能用于控制是否生成此覆盖组,覆盖点类型配置项用于区分覆盖点是独立覆盖点还是交叉覆盖点,仓类型配置项包括三种仓类型:正常仓、非法仓和不统计仓;
描述文件获取程序单元,用于根据覆盖率模型描述模板和所需的覆盖组和断言获取覆盖率模型描述文件;
脚本生成程序单元,用于根据覆盖率模型描述模板的格式及要求获取覆盖率模型自动生成脚本,使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境,得到包括所需接口覆盖率模型、宏定义文件、文件列表和连接文件;
所述脚本生成程序单元使用覆盖率模型自动生成脚本处理生成的覆盖率模型描述文件自动生成接口覆盖率模型环境的详细步骤包括:
3.1)进行描述表分类:根据表头的类型将覆盖率模型描述模板分类为顶层描述模板、接口描述模板、断言描述模板和覆盖组描述模板,并根据表头中的项目名、子系统名、模块名和接口协议将每个模板进行记录以便后续根据顶层描述模板中的索引关系进行所需模板的查找;
3.2)覆盖率模型代码生成:根据顶层描述模板以及分类得到的接口描述模板、断言描述模板和覆盖组描述模板生成所需的接口覆盖率模型代码;
3.3)接口宏定义文件生成:根据接口描述模板,查找全部接口描述模板中接口信号位宽定义所使用的宏定义值,并将其保存到接口宏定义文件中,以便于后续进行位宽的修改;
3.4)文件列表文件生成:将接口覆盖率模型文件和接口宏定义文件写入文件列表文件中,其路径使用一个宏定义值;
3.5)连接文件生成:根据顶层描述模板以及分类得到的接口描述模板的内容,将接口覆盖率模型与所需要收集覆盖率的接口进行连接,并将连接关系保存到连接文件中;
3.6)非接口宏定义和中文字符替换:将生成的接口覆盖率模型代码中的宏定义值替换为断言和覆盖组编写的语法支持的对应内容;将生成的接口覆盖率模型代码中的中文字符替换为生成的接口覆盖率模型代码的编译环境支持的语言文字;
步骤3.2)的详细步骤包括:3.2.1)读取顶层描述模板的第一行的内容作为当前行n;3.2.2)判断当前行n的内容和已生成的接口覆盖率模型来确认是否需要生成该接口覆盖率模型代码,如果需要则生成一个保存该接口覆盖率模型空模板的文件,并在文件中加入该接口覆盖率模型的空模块,然后进入步骤3.2.3);如果前面已经生成了该接口覆盖率模型代码,则进入步骤3.2.7);3.2.3)根据顶层描述模板当前行n的内容的描述和所获取的接口描述模板分类,查找到所需的接口描述模板,并根据接口描述模板内容在生成的接口覆盖率模型的模块中加上接口信号代码,对于覆盖率模型而言,由于其作用是收集设计接口上的信号,因此所述接口覆盖率模型中加上的接口信号均为输入信号;3.2.4)根据顶层模板第n行内容的描述和所获取的断言描述模板分类,查找所需的断言描述模板,并根据断言描述模板的内容和断言编写语法在生成的接口覆盖率模型的模块中生成所需的断言代码;3.2.5)根据顶层模板第n行内容的描述和所获取的覆盖组描述模板分类,查找所需的覆盖组描述模板,并根据覆盖组描述模板的内容和覆盖组编写语法在生成的接口覆盖率模型的模块中生成所需的覆盖组代码;3.2.6)保存并记录所生成的接口覆盖率模型;3.2.7)判断当前行n是否为最后一行,若当前行n不是最后一行,则读取下一行作为新的当前行n,进入步骤3.2.2);若当前行n是最后一行,则结束该步骤并跳到步骤3.3)。
3.一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,其特征在于,该计算机设备被编程或配置以执行权利要求1所述通用接口覆盖率模型验证环境自动生成方法的步骤。
4.一种通用接口覆盖率模型验证环境自动生成系统,包括计算机设备,其特征在于,该计算机设备的存储器中存储有被编程或配置以执行权利要求1所述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
5.一种计算机可读存储介质,其特征在于,该计算机可读存储介质中存储有被编程或配置以执行权利要求1所述通用接口覆盖率模型验证环境自动生成方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596787.8A CN111611176B (zh) | 2020-06-28 | 2020-06-28 | 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010596787.8A CN111611176B (zh) | 2020-06-28 | 2020-06-28 | 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111611176A CN111611176A (zh) | 2020-09-01 |
CN111611176B true CN111611176B (zh) | 2023-05-30 |
Family
ID=72201022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010596787.8A Active CN111611176B (zh) | 2020-06-28 | 2020-06-28 | 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111611176B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112596966B (zh) * | 2020-12-17 | 2022-11-01 | 海光信息技术股份有限公司 | 芯片验证方法、装置、设备、存储介质 |
CN112560390B (zh) * | 2020-12-23 | 2022-09-06 | 海光信息技术股份有限公司 | 自动生成交叉覆盖点中的忽略仓的方法、装置、设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014110922A1 (zh) * | 2013-01-18 | 2014-07-24 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
US9824075B1 (en) * | 2016-03-31 | 2017-11-21 | Google Inc. | System and method for interaction coverage |
CN109189666A (zh) * | 2018-08-02 | 2019-01-11 | 腾讯科技(北京)有限公司 | 接口测试方法、装置和计算机设备 |
CN109992804A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 激励生成装置、芯片验证装置及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030093716A1 (en) * | 2001-11-13 | 2003-05-15 | International Business Machines Corporation | Method and apparatus for collecting persistent coverage data across software versions |
US20060225051A1 (en) * | 2005-04-05 | 2006-10-05 | Cisco Technology, Inc. | Method and system for code coverage |
-
2020
- 2020-06-28 CN CN202010596787.8A patent/CN111611176B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014110922A1 (zh) * | 2013-01-18 | 2014-07-24 | 浪潮电子信息产业股份有限公司 | 一种基于扩展型Cache Coherence协议的多级一致性域仿真验证和测试方法 |
US9824075B1 (en) * | 2016-03-31 | 2017-11-21 | Google Inc. | System and method for interaction coverage |
CN109992804A (zh) * | 2017-12-29 | 2019-07-09 | 北京中科寒武纪科技有限公司 | 激励生成装置、芯片验证装置及系统 |
CN109189666A (zh) * | 2018-08-02 | 2019-01-11 | 腾讯科技(北京)有限公司 | 接口测试方法、装置和计算机设备 |
Non-Patent Citations (4)
Title |
---|
张运涛 ; 何玮 ; 曹宗生 ; 孟广国 ; .功能覆盖率统计用于核级可编程逻辑仿真验证.自动化博览.2017,(第06期),全文. * |
罗莉 ; 夏军 ; 邓宇 ; .通用SPI Flash控制器的设计与验证.计算机工程.2011,(第08期),全文. * |
艾阳阳 ; 罗莉 ; 杨庆娜 ; 张恒浩 ; 夏婷婷 ; .一种基于贝叶斯网络的随机测试方法在Cache一致性验证中的设计与实现.计算机工程与科学.2017,(第08期),全文. * |
许彤 ; 吕涛 ; .基于覆盖率模型的AMBA接口随机验证方法.计算机应用研究.2008,(第07期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111611176A (zh) | 2020-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102804147B (zh) | 执行abap源代码的代码检查的代码检查执行系统 | |
CN104503816B (zh) | 一种硬件语言vhdl到msvl的自动转换系统 | |
US8924937B1 (en) | Method and system for generating verification information and tests for software | |
CN102184138B (zh) | 一种软件错误自动重现和定位的方法及系统 | |
US8943423B2 (en) | User interface indicators for changed user interface elements | |
CN101739339B (zh) | 一种基于程序动态依赖关系的软件故障定位方法 | |
CN111611176B (zh) | 一种通用接口覆盖率模型验证环境自动生成方法、系统及介质 | |
CN101183332A (zh) | 一种根据程序内容自动生成测试数据集的方法和装置 | |
CN110659197B (zh) | 应用程序的测试用例生成方法、装置和软件测试系统 | |
CN109189388A (zh) | 页面配置方法、服务器及计算机可读介质 | |
CN103136100A (zh) | 一种Android测试的方法和系统 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN109885290A (zh) | 应用程序服务描述信息生成与发布方法、装置和存储介质 | |
CN109491884A (zh) | 代码性能检测方法、装置、计算机设备和介质 | |
CN112731117A (zh) | 芯片的自动验证方法和系统,及存储介质 | |
CN110286882B (zh) | 一种基于模型检测的前台系统设计与验证方法 | |
CN112084108A (zh) | 一种测试脚本生成方法、装置及相关组件 | |
CN116820996A (zh) | 基于人工智能的集成测试用例自动生成方法和装置 | |
CN107741905B (zh) | 测试用例及其解析模型、执行方法、存储介质和处理器 | |
CN114116475A (zh) | 一种基于日志的软件调试方法 | |
CN110286912A (zh) | 代码检测方法、装置及电子设备 | |
CN115309661A (zh) | 一种应用测试方法、装置、电子设备及可读存储介质 | |
CN108228314A (zh) | 一种基于设备规约的虚拟原型错误检测方法 | |
CN114327614A (zh) | 参考模型数据流记录和分析的方法及应用 | |
CN113177020A (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 |