CN108363567B - 一种基于数据库的验证平台激励器自动化生成方法 - Google Patents
一种基于数据库的验证平台激励器自动化生成方法 Download PDFInfo
- Publication number
- CN108363567B CN108363567B CN201810146822.9A CN201810146822A CN108363567B CN 108363567 B CN108363567 B CN 108363567B CN 201810146822 A CN201810146822 A CN 201810146822A CN 108363567 B CN108363567 B CN 108363567B
- Authority
- CN
- China
- Prior art keywords
- interface
- data structure
- unit test
- attribute
- group
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Abstract
本发明揭示了一种基于数据库的验证平台激励器自动化生成方法,包括:利用数据库的方式对产生激励器所需要的关键属性进行分类整合管理,并创建参数化的单元测试组件,验证人员通过自定义的方式完成激励器的自动化组装。本发明提高了芯片验证平台中激励器产生的准确性和完备性,缩短激励器的设计周期,增强激励器在不同被测单元之间的可继承性和可移植性。
Description
技术领域
本发明涉及一种激励器的设计技术,尤其是涉及一种基于数据库的验证平台激励器自动化生成方法。
背景技术
在芯片验证平台中,激励器是重要组成部分之一。激励器用以模拟被测单元的输入样本,完成一个能够准确而尽可能随机化产生样本输入的激励器的设计是整个验证平台的前提。
传统的设计方法,验证人员会根据架构人员提供的设计规格书,理解被测单元输入接口的基本功能和输入时序关系,通过verilog(一种硬件描述语言)代码完成设计描述,并且在平台调试过程中反复调试该激励器的正确性,稳定性和随机性,最终满足测试要求。
上述设计方式,激励器的质量更多的取决于设计规格书的质量,验证人员的个人能力;同时,设计周期长,无继承性,质量检验不方便。另外,即使不同被测单元之间存在相似接口,激励器也无法被简单重用,只能做参考借鉴,从而产生了许多重复性工作,甚至带来不可预料的人工代码的编写错误,增加了平台的创建和调试时间。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于数据库的验证平台激励器自动化生成方法。
为实现上述目的,本发明提出如下技术方案:一种基于数据库的验证平台激励器自动化生成方法,包括:
S1,提取被测单元的接口属性,进行数据库分类存储,形成接口属性数据结构,并自动化生成所述接口属性数据结构中的数据,将所述接口属性数据结构中所述接口分到相应接口组中;
S2,提取所述接口组的属性,进行数据库分类存储,形成接口组属性数据结构,并自动化生成所述接口组属性数据结构中的数据,在所述接口组属性数据结构中表示出接口组和与所述接口组匹配的单元测试组件之间的对应关系;
S3,创建参数化的所述单元测试组件,所述单元测试组件来自于被测单元测试组件库;
S4,定义所述接口组和对应的所述单元测试组件之间的接口连接关系,形成接口组与单元测试组件的连接关系数据结构,并自动化生成所述接口组与单元测试组件的连接关系数据结构中的数据;
S5,读取所述步骤S1、S2和S4中生成的所述数据,自动化产生验证平台激励器的代码。
优选地,所述接口属性数据结构中的接口属性包括被测单元的接口名称、接口方向、接口位宽、接口组别和接口描述,其中,所述接口方向表示接口在激励器和被测单元之间的数据流向关系;所述接口位宽表示接口所定义的比特数目;所述接口组别用于表示接口类别的定义和分组;所述接口描述用于填写接口基本功能的描述性语言。
优选地,所述接口组别用于表示被测单元的接口分组,所述接口组别由验证人员根据激励器的设计规格书和被测单元分类识别出。
优选地,所述接口组属性数据结构中的接口组属性包括所述接口组别、单元测试组件名称、输入属性、延迟属性、流控信息和备注,其中,所述单元测试组件名称为与所述接口组别匹配的单元测试组件名称;所述输入属性表示所述单元测试组件是否需要通过外部输入产生相应的激励信号;所述延迟属性表示所述激励信号产生所需要的延迟信息;所述流控信息表示所述单元测试组件输出的流控信号;所述备注用于描述所述接口组别的信息。
优选地,所述输入属性为无时,表示所述激励信号由所述单元测试组件自身内建逻辑产生;所述输入属性为其他接口信号时,表示所述激励信号由所述其他接口信号,经过所述单元测试组件经过一定延迟后再产生。
优选地,所述接口组的接口与所述单元测试组件的接口为一一对应关系,且通过参数化方式进行代码实例化,形成接口组与单元测试组件的连接关系数据结构。
优选地,若所述单元测试组件的接口没有对应的接口组的接口,则所述单元测试组件的接口做悬空处理。
优选地,所述S1中,自动化生成所述接口属性数据结构中的数据的过程包括:通过脚本语言解析被测单元的顶层verilog文件,并经过一些命名规则的定义完成所述接口属性数据结构中的数据的自动化产生。
优选地,所述S2中,所述自动化生成所述接口组属性数据结构中的数据的过程包括:通过脚本语言解析所述接口组的属性信息,及其接口命名规则,自动化产生所述接口组属性数据结构中的数据,完成单元测试组件的选择。
优选地,所述S2中,所述自动化生成所述接口组属性数据结构中的数据的过程包括:通过脚本语言解析所述接口组与单元测试组件的一一匹配及连接关系,及其接口命名规则,自动化产生所述接口组与单元测试组件的连接关系数据结构中的数据。
本发明的有益效果是:本发明利用数据库的方式对产生激励器所需要的关键属性进行分类整合管理,并创建参数化的单元测试组件,验证人员通过自定义的方式完成激励器的自动化组装。提高了芯片验证平台中激励器产生的准确性和完备性,缩短激励器的设计周期,增强激励器在不同被测单元之间的可继承性和可移植性。
附图说明
图1是本发明方法的流程示意图。
具体实施方式
下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。
本发明所揭示的一种基于数据库的验证平台激励器自动化生成方法,利用数据库的方式对产生激励器所需要的关键属性进行分类整合管理,并创建参数化的单元测试组件,验证人员通过自定义的方式完成激励器的自动化组装。
如图1所示,本发明实施例所揭示的一种基于数据库的验证平台激励器自动化生成方法,包括:
S1,提取被测单元的接口属性,进行数据库分类存储,形成接口属性数据结构,并自动化生成所述接口属性数据结构中的数据,将所述接口属性数据结构中所述接口分到相应接口组中。
具体地,被测单元有多个接口,如时钟信号接口、复位信号结构、报文接口、信息接口等,提取这些接口属性,根据这些属性将接口进行数据库分类存储,形成接口属性数据结构。形成的接口属性数据结构如下表1所示:
接口 | 方向 | 位宽 | 组别 | 描述 |
clockCore | 输入 | 1 | 时钟 | 提供参考时钟信号 |
resetCore | 输入 | 1 | 复位信号 | 提供同步复位信号 |
packetValid | 输入 | 1 | 报文1 | 报文1的有效信号 |
packetSop | 输入 | 1 | 报文1 | 报文1的头信号 |
packetEop | 输入 | 1 | 报文1 | 报文1的尾信号 |
packetData | 输入 | 32 | 报文1 | 报文1的数据信号 |
msg1Valid | 输入 | 1 | 信息1 | 信息1的有效信号 |
msg1Data | 输入 | 64 | 信息1 | 信息1的数据信号 |
msg1Done | 输出 | 1 | 信息1 | 信息1的接收完成信号 |
msg2Valid | 输入 | 1 | 信息2 | 信息2的有效信号 |
msg2Data | 输入 | 128 | 信息2 | 信息2的数据信号 |
msg2Done | 输出 | 1 | 信息2 | 信息2的接收完成信号 |
表1
由上表1可知,接口属性数据结构中的接口属性包括被测单元的接口名称、接口方向、接口位宽、接口组别和接口描述,其中,
接口方向表示该接口在激励器和被测单元之间的数据流向关系,接口方向为输入时,表示从激励器产生输出到被测单元;接口方向为输出时,表示从被测单元产生输出到激励器。
接口位宽表征该接口所定义的比特数目,用于后续标准单元测试组件的参数化输入。
接口组别这是接口的一个关键属性,用于接口类别的定义和分组,需要验证人员通过设计规格书和对被测模块的基本理解做准确的分类,用于单元测试组件的自动化匹配和连接。如,这里的packetValid接口、packetSop接口、packetEop接口和packetData接口均属于报文1接口组,msg1Valid接口、msg1Data接口和msg1Done接口均属于信息1接口组。
接口描述用于填写接口基本功能的描述性语言。
上述接口属性数据结构中的数据可以通过脚本语言解析被测单元的顶层verilog文件,并经过一些命名规则的定义完成该接口属性数据结构中的数据的自动化产生。需要说明的是,被测单元都会提供一个顶层接口模块,用verilog语言编写,其中包含了所有接口的初始信息,如接口名称、接口方向接口位宽等;本申请将这些初始信息作为数据库的初始信息,之后的组别等信息,都是基于此基础上来解析和填充的。
S2,提取接口组的属性,进行数据库分类存储,形成接口组属性数据结构,并自动化生成所述接口组属性数据结构中的数据,在所述接口组属性数据结构中表示出接口组和与所述接口组匹配的单元测试组件之间的对应关系。
具体地,如上述步骤S1形成的接口属性数据结构中,将被测单元的接口分为多个接口组中,如分别分到接口组1、接口组2、接口组3中等。提取这些接口组的属性,根据这些属性将接口组进行数据库分类存储,形成接口组属性数据结构。形成的接口组属性数据结构如下表2所示:
表2
由上表2可知,接口组属性数据结构中的接口组属性包括上述接口组别、单元测试组件名称、输入属性、延迟属性、流控信息和备注,其中,接口组别即为接口属性数据结构中的组别属性,表示接口的分组。
单元测试组件为与该接口组相匹配的单元测试组件名称,例如组别报文1与单元测试组件StdPacketGen相匹配,而组别信息1则与单元测试组件StdMsgGen相匹配。
输入属性表示对应的单元测试组件是否需要通过外部输入产生相应的激励信号。如果输入属性为无,则表示该激励由该单元测试组件内建逻辑自己产生,如果输入为其他接口信号A,表示该激励由其他输入接口信号A,经过该单元测试组件一定延迟后再产生。如这里的组别信息2对应的单元测试组件StdMsgGen的输入为接口信号msg1Valid,则表示该激励由接口信号msg1Valid,经过该单元测试组件StdMsgGen一定延迟后再产生。
延迟属性表示当输入属性为其他接口信号时,激励产生所需要的延迟信息。
流控信息:需要说明的是,在模块间接口设计时,流控设计是一种常见的设计方法,当前级模块发送的激励超出后级模块处理能力的时候,后级模块会通过对应的流控信号通知前级模块警告信息,前级模块会作出相应的抑制输出的操作,所以该条目记录的就是该单元测试组件输出的流控信号,即当单元测试组件的激励器发送的激励超出其处理能力的时候,单元测试组件会通过对应的流控信号通知激励器警告信息,激励器会作出相应的抑制输出的操作。
备注属性用于简单描述该接口组的基本信息。
上述接口组属性数据结构中的数据也可以通过脚本语言解析接口组的相关属性信息,及其接口命名规则,自动化产生所述接口组属性数据结构中的数据,完成单元测试组件的选择。
S3,创建参数化的单元测试组件,单元测试组件来自于被测单元测试组件库。
具体地,单元测试组件即与上述接口组别相对应的单元测试组件,这些单元测试组件来自于被测单元测试组件库,基于标准化,参数化的原则来设计完成,在不同被测设计,不同验证平台,不同项目之间具有很好的继承性和移植性。需要说明的是,被测单元测试组件库可以认为是一个模板库,根据单元测试组件类型进行挑选,参数化是指:对于某一个选定的单元测试组件,可以进行参数化设置,如:输出数据的位宽,用以适配不同的被测对象。
S4,定义接口组和对应的单元测试组件之间的接口连接关系,形成接口组与单元测试组件的连接关系数据结构,并自动化生成所述接口组与单元测试组件的连接关系数据结构中的数据。
具体地,以上述接口组报文1中的接口与对应的单元测试组件StdPac ketGen之间的接口连接关系为例来说明,形成的连接关系数据结构如下表3所示:
单元测试组件接口 | 激励器接口 | 参数化 |
Valid | packetValid | 1 |
Sop | packetSop | 1 |
Eop | packetEop | 1 |
Data | packetData | 64 |
error | 无 | 无 |
表3
由上表3可知,单元测试组件接口与激励器接口成一一对应关系,并通过参数化方式进行代码实例化,如果出现相应的单元测试组件接口没有对应的激励器接口,那么单元测试组件该接口将做悬空处理。
上述连接关系数据结构中的数据也可以通过脚本语言解析接口组与单元测试组件的一一匹配及连接关系,及其接口命名规则,自动化产生接口组与单元测试组件的连接关系数据结构中的数据。
S5,读取上述步骤S1、S2和S4中生成的数据,自动化产生验证平台激励器的代码。
具体地,用户最终利用脚本语言读取上述步骤S1、S2和S4中数据库的相关数据,可以完成自动化产生验证平台激励器的代码产生。
本发明利用数据库的方式对产生激励器所需要的关键属性进行分类整合管理,并创建参数化的单元测试组件,验证人员通过自定义的方式完成激励器的自动化组装。提高了芯片验证平台中激励器产生的准确性和完备性,缩短激励器的设计周期,且增强激励器在不同被测单元之前的可继承性和可移植性。
本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
Claims (10)
1.一种基于数据库的验证平台激励器自动化生成方法,其特征在于,包括:
S1,提取被测单元的接口属性,进行数据库分类存储,形成接口属性数据结构,并自动化生成所述接口属性数据结构中的数据,将所述接口属性数据结构中所述接口分到相应接口组中;
S2,提取所述接口组的属性,进行数据库分类存储,形成接口组属性数据结构,并自动化生成所述接口组属性数据结构中的数据,在所述接口组属性数据结构中表示出接口组和与所述接口组匹配的单元测试组件之间的对应关系;
S3,创建参数化的所述单元测试组件,所述单元测试组件来自于被测单元测试组件库;
S4,定义所述接口组和对应的所述单元测试组件之间的接口连接关系,形成接口组与单元测试组件的连接关系数据结构,并自动化生成所述接口组与单元测试组件的连接关系数据结构中的数据;
S5,读取所述步骤S1、S2和S4中生成的所述数据,自动化产生验证平台激励器的代码。
2.根据权利要求1所述的方法,其特征在于,所述接口属性数据结构中的接口属性包括被测单元的接口名称、接口方向、接口位宽、接口组别和接口描述,其中,所述接口方向表示接口在激励器和被测单元之间的数据流向关系;所述接口位宽表示接口所定义的比特数目;所述接口组别用于表示接口类别的定义和分组;所述接口描述用于填写接口基本功能的描述性语言。
3.根据权利要求2所述的方法,其特征在于,所述接口组别用于表示被测单元的接口分组,所述接口组别由验证人员根据激励器的设计规格书和被测单元分类识别出。
4.根据权利要求2所述的方法,其特征在于,所述接口组属性数据结构中的接口组属性包括所述接口组别、单元测试组件名称、输入属性、延迟属性、流控信息和备注,其中,所述单元测试组件名称为与所述接口组别匹配的单元测试组件名称;所述输入属性表示所述单元测试组件是否需要通过外部输入产生相应的激励信号;所述延迟属性表示所述激励信号产生所需要的延迟信息;所述流控信息表示所述单元测试组件输出的流控信号;所述备注用于描述所述接口组别的信息。
5.根据权利要求4所述的方法,其特征在于,所述输入属性为无时,表示所述激励信号由所述单元测试组件自身内建逻辑产生;所述输入属性为其他接口信号时,表示所述激励信号由所述其他接口信号,经过所述单元测试组件经过一定延迟后再产生。
6.根据权利要求1所述的方法,其特征在于,所述接口组的接口与所述单元测试组件的接口为一一对应关系,且通过参数化方式进行代码实例化,形成接口组与单元测试组件的连接关系数据结构。
7.根据权利要求6所述的方法,其特征在于,若所述单元测试组件的接口没有对应的接口组的接口,则所述单元测试组件的接口做悬空处理。
8.根据权利要求1所述的方法,其特征在于,所述S1中,自动化生成所述接口属性数据结构中的数据的过程包括:通过脚本语言解析被测单元的顶层verilog文件,并经过一些命名规则的定义完成所述接口属性数据结构中的数据的自动化产生。
9.根据权利要求1所述的方法,其特征在于,所述S2中,所述自动化生成所述接口组属性数据结构中的数据的过程包括:通过脚本语言解析所述接口组的属性信息,及其接口命名规则,自动化产生所述接口组属性数据结构中的数据,完成单元测试组件的选择。
10.根据权利要求1所述的方法,其特征在于,所述S2中,所述自动化生成所述接口组属性数据结构中的数据的过程包括:通过脚本语言解析所述接口组与单元测试组件的一一匹配及连接关系,及其接口命名规则,自动化产生所述接口组与单元测试组件的连接关系数据结构中的数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810146822.9A CN108363567B (zh) | 2018-02-12 | 2018-02-12 | 一种基于数据库的验证平台激励器自动化生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810146822.9A CN108363567B (zh) | 2018-02-12 | 2018-02-12 | 一种基于数据库的验证平台激励器自动化生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108363567A CN108363567A (zh) | 2018-08-03 |
CN108363567B true CN108363567B (zh) | 2021-02-12 |
Family
ID=63006086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810146822.9A Active CN108363567B (zh) | 2018-02-12 | 2018-02-12 | 一种基于数据库的验证平台激励器自动化生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108363567B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111045948A (zh) * | 2019-12-13 | 2020-04-21 | 盛科网络(苏州)有限公司 | 模块间接口信号的检查方法、设备和存储介质 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100511149C (zh) * | 2003-05-07 | 2009-07-08 | 华为技术有限公司 | 逻辑仿真测试系统和方法 |
US7428483B2 (en) * | 2005-06-16 | 2008-09-23 | International Business Machines Corporation | Method and apparatus to simulate and verify signal glitching |
CN100458731C (zh) * | 2007-02-12 | 2009-02-04 | 北京中星微电子有限公司 | 一种采用硬件逻辑对ic设计进行验证的方法 |
WO2010129909A1 (en) * | 2009-05-07 | 2010-11-11 | Cypress Semiconductor Corporation | Development, programming, and debugging environment |
US8769487B2 (en) * | 2012-04-10 | 2014-07-01 | Oracle International Corporation | Configurable auto content testing framework for technical documentation |
CN105302549B (zh) * | 2015-09-29 | 2018-07-24 | 莱诺斯科技(北京)股份有限公司 | 一种支持多语言的测试流程生成、调试、执行系统 |
CN107016165B (zh) * | 2017-03-09 | 2020-10-20 | 记忆科技(深圳)有限公司 | 一种SoC自动化随机验证的方法 |
-
2018
- 2018-02-12 CN CN201810146822.9A patent/CN108363567B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108363567A (zh) | 2018-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104408264B (zh) | 一种基于断言的嵌入式存储控制器验证系统及方法 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN105589993A (zh) | 微处理器功能验证设备及微处理器功能验证方法 | |
CN102054100A (zh) | 一种基于静态分析的rtl设计错误检测方法和系统 | |
CN101093521A (zh) | 一种fpga仿真装置及其方法 | |
CN116256621B (zh) | 芯粒的测试方法、装置、电子设备及存储介质 | |
CN108984393A (zh) | 一种单元测试代码自动生成方法及装置 | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN113536718B (zh) | 一种门级仿真网表文件正确性的验证方法及装置 | |
CN111400169A (zh) | 一种自动化生成用于测试软硬件的网表文件的方法及系统 | |
CN108363567B (zh) | 一种基于数据库的验证平台激励器自动化生成方法 | |
US6505324B1 (en) | Automated fuse blow software system | |
CN110347595A (zh) | 一种fpga内部资源甄别与定位方法及系统 | |
CN108647533B (zh) | 用于检测硬件木马的安全断言自动生成方法 | |
CN114239477A (zh) | 硬件连线检查方法、装置、存储介质及电子设备 | |
CN107704351B (zh) | 一种芯片的验证方法和装置 | |
CN116227398B (zh) | 一种自动化生成ip核测试激励的方法及系统 | |
CN115684894B (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN117217163A (zh) | 一种基于脚本的soc芯片的测试方法 | |
CN113434390B (zh) | 一种基于变异的fpga逻辑综合工具模糊测试方法 | |
CN115656791A (zh) | 芯片可测性设计的测试方法及测试平台 | |
CN113378502B (zh) | 验证信号走向配码的测试方法、装置、介质及设备 | |
CN115687108A (zh) | 基于uvm与fpv相结合的验证方法、平台、终端及存储介质 | |
CN115470106A (zh) | 一种可重构芯片的验证方法和系统 | |
CN109471637A (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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 215101 unit 13 / 16, 4th floor, building B, No. 5, Xinghan street, Suzhou Industrial Park, Jiangsu Province Patentee after: Suzhou Shengke Communication Co.,Ltd. Address before: Unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, 215000 Jiangsu Province Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd. |