CN115576768A - 一种基于uvm的通用验证平台架构自动生成方法 - Google Patents

一种基于uvm的通用验证平台架构自动生成方法 Download PDF

Info

Publication number
CN115576768A
CN115576768A CN202211398410.7A CN202211398410A CN115576768A CN 115576768 A CN115576768 A CN 115576768A CN 202211398410 A CN202211398410 A CN 202211398410A CN 115576768 A CN115576768 A CN 115576768A
Authority
CN
China
Prior art keywords
template
component
verification platform
agent
verification
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
CN202211398410.7A
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.)
Lanzhou University
Original Assignee
Lanzhou University
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 Lanzhou University filed Critical Lanzhou University
Priority to CN202211398410.7A priority Critical patent/CN115576768A/zh
Publication of CN115576768A publication Critical patent/CN115576768A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2273Test methods

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种基于UVM的通用验证平台架构自动生成方法,包括以下步骤:S1:构建UVM通用验证平台组件mako模板库;S2:运行python脚本,输入相应的配置信息;S3:基于输入的配置信息,通过脚本从模板库中抓取相应的模板;S4:模板导入配置信息,模板内控制语句自动执行,完成模板到代码文件的转换;S5:询问用户是否生成验证平台和待测设计的自动连接,并按要求输出连接文件。能够一键生成验证平台所有框架代码,无需人力手动,可以提高验证效率,降低开发成本,减少人为出错,提升验证平台的可靠性;采用了Python脚本对mako模板的导入逻辑,验证人员无需付出多余的学习成本去学脚本语言,而是能够直接上手维护,大大降低了人力成本和学习成本。

Description

一种基于UVM的通用验证平台架构自动生成方法
技术领域
本发明涉及IC验证技术领域,尤其涉及一种基于UVM的通用验证平台架构自动生成方法。
背景技术
近年来,我国数字集成电路行业迅速发展,芯片验证技术的重要性日益凸显。在产品快速迭代的当下,提高验证效率很有必要。
UVM是目前功能验证领域应用最广的方法学,目前业界已有的搭建验证平台的方法有两种,一种是手动搭建,需要花费较大人力成本与时间成本;
另一种方法是使用脚本通过文件读写、语句打印的方式生成验证平台架构代码,这类方法的问题是脚本和待生成的验证环境代码混合在一起,维护成本高,学习成本高,同样也需要消耗更多的人力成本和时间。
因为UVM的限制,验证平台中的组件的类型是比较固定的,名称、数量、例化数量和连接关系则是自定义的。
经检索,专利号为CN202210249193.9的中国专利文献,其公开了一种快速生成PCIeUVM验证平台的方法,其在使用过程中只需要根据提示输入验证平台的独特的部分,就可以生成一个PCIeUVM验证平台的框架,可以大大的提高搭建验证平台的效率,虽然采用了UVM,但是PCIe只是一个专用模块,PCIe验证平台结构不适用于其他模块验证,生成出来的验证平台功能和组件数量是固定的。
如果组件数量可以根据输入配置变化,便能够使验证平台的代码风格和结构嵌套风格一致,但是生成的验证平台结构不是固定的,所以能够给各种模块用,达到通用、风格统一、结构可变等独特性,也能够很好的解决,生成单一的验证平台代码时,无法做到验证平台和待测设计的自动连接,无法生成测试用例的问题,以及在验证时,待测设计的连接耗费时间长、测试用例的调试需要耗费精力多,使得效率难以提高的问题。
发明内容
本发明的目的是为了解决现有技术中存在的缺陷,而提出的基于UVM的通用验证平台架构自动生成方法。
为了实现上述目的,本发明采用了如下技术方案:
一种基于UVM的通用验证平台架构自动生成方法,包括以下步骤:
S1:使用验证语言构建UVM验证平台通用组件mako模板库;
S2:运行Python脚本,提示用户输入要生成的待测设计配置信息和待测设计顶层代码路径;
S3:脚本解析配置信息,从模板库中抓取环境组件、环境配置组件、代理器组件、代理器配置组件、理想模型组件、计分板组件模板并导入配置信息;
S4:模板导入配置信息,模板内控制语句自动执行,完成模板到代码文件的转换;
S5:询问用户是否生成验证平台和待测设计的自动连接,并按要求输出连接文件;
S6:询问用户是否生成基础测试用例和激励,并按要求输出测试用例与激励文件;
S7:将全部代码文件按照文件功能分别自动生成文件夹放置;
S8:用户按照代码文件内嵌的提示语句,填入待测设计的特殊功能验证语句,即可开始验证工作。
进一步地,在步骤S2中,配置信息包括:代理器名称、代理器例化数量、环境组件名称以及待测设计顶层文件路径。
进一步地,在步骤S1中,验证平台模板库包括:
环境组件模板、环境配置组件模板、代理器配置组件模板、代理器组件模板、驱动器组件模板、激励发生器组件模板、激励对象模板、监控器组件模板、计分板组件模板、理想模板组件模板、测试用例模板、待测设计连接模板、传输接口模板和寄存器模板。
进一步地,在步骤S1中,验证平台模板库的模板均包含功能代码的插入提示语句。
进一步地,在步骤S4中,通用验证平台组件包括验证平台测试用例组件、理想模型组件、计分板组件、环境组件和代理器组件,其中,验证平台组件的数量和连接方式可变,模板抓取和生成组件时,代理器组件、理想模型组件和计分板组件会分为输入输出两路成对出现。
进一步地,在步骤S4中,代理器组件激励激活时,代理器组件则包含激励发生器组件、驱动器组件和监控器组件;
代理器组件激励未激活时,代理器组件则仅包含监控器组件。
进一步地,生成验证平台框架代码时,自动生成验证平台的生成日志,日志包括:作者、生成时间、组件列表、验证平台代码文件存储路径,推荐验证命令。
相比于现有技术,本发明的有益效果在于:
能够一键生成验证平台所有框架代码,无需人力手动,可以提高验证效率,节省开发时间,降低开发成本,减少人为出错,提升验证平台的可靠性;
采用了Python脚本对mako模板的导入逻辑,因此维护验证平台框架的生成代码时,无论是增加还是删除,均只需要直接对模板库进行操作;
模板库中的模板均采用验证语言书写,验证人员无需付出多余的学习成本去学脚本语言,而是能够直接上手维护,大大降低了人力成本和学习成本。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。
图1为本发明提出的基于UVM的通用验证平台架构自动生成方法的步骤流程图;
图2为本发明提出的基于UVM的通用验证平台架构自动生成方法的逻辑流程图;
图3为本发明实施例中的自动生成的验证平台结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例一
参照图1-2,基于UVM的通用验证平台架构自动生成方法,包括以下步骤:
S1:使用验证语言构建UVM验证平台通用组件mako模板库;
S2:运行Python脚本,提示用户输入要生成的待测设计配置信息和待测设计顶层代码路径;
S3:脚本解析配置信息,从模板库中抓取环境组件、环境配置组件、代理器组件、代理器配置组件、理想模型组件、计分板组件模板并导入配置信息;
S4:模板导入配置信息,模板内控制语句自动执行,完成模板到代码文件的转换;
S5:询问用户是否生成验证平台和待测设计的自动连接,并按要求输出连接文件
S6:询问用户是否生成基础测试用例和激励,并按要求输出测试用例与激励文件;
S7:将全部代码文件按照文件功能分别自动生成文件夹放置;
S8:用户按照代码文件内嵌的提示语句,填入待测设计的特殊功能验证语句,即可开始验证工作。
实施例二
实施例一的基础上,在步骤S2中,配置信息包括:代理器名称、代理器例化数量、环境组件名称以及待测设计顶层文件路径;
在步骤S1中,验证平台模板库包括:
环境组件模板、环境配置组件模板、代理器配置组件模板、代理器组件模板、驱动器组件模板、激励发生器组件模板、激励对象模板、监控器组件模板、计分板组件模板、理想模板组件模板、测试用例模板、待测设计连接模板、传输接口模板和寄存器模板;
在步骤S1中,验证平台模板库的模板均包含功能代码的插入提示语句;
生成验证平台框架代码时,自动生成验证平台的生成日志,日志包括:作者、生成时间、组件列表、验证平台代码文件存储路径,推荐验证命令。
为了更好的理解本发明的技术方案,以下结合具体实施例更进一步说明。
在步骤S4中,通用验证平台组件包括验证平台测试用例组件、理想模型组件、计分板组件、环境组件和代理器组件,其中,验证平台组件的数量和连接方式可变,模板抓取和生成组件时,代理器组件、理想模型组件和计分板组件会分为输入输出两路成对出现;
具体的,每个组件都有其特定的功能,数量和连接可变,以服务于多种芯片模块,来验证更多功能;
更具体的,验证平台的组件数量变化是非随机的,如:发送路和接收路的代理器组件只可以成对出现,当数量变化,也是从1对,变成3对,接口也是一样,因为例化数量可变,但是又有约束不是乱变化,所以才能形成统一的结构风格和代码风格,便于管理和debug。
在步骤S4中,代理器组件激励激活时,代理器组件则包含激励发生器组件、驱动器组件和监控器组件;
代理器组件激励未激活时,代理器组件则仅包含监控器组件;
实施例三
对芯片中的TDMA模块进行验证平台结构设计,设计的验证平台包括一个环境组件env_1,环境组件中有两个代理器组件agent_A和agent_B,代理器A有两个实例(agtA1,agtA2),激励激活,代理器B有三个实例(agtB1,agtB2,agtB3),激励不激活。验证平台存储在输入命令的当前路径下。模块路径为“share/my_test/dut_test.v”。
S1:使用systemverilog语言构建验证平台环境组件、环境配置组件、代理器组件、代理器配置组件、接口、激励、基础测试用例的mako模板库;
S2:输入启动命令,一键开始运行python脚本。python脚本提示用户输入待测设计的验证平台设计的配置信息和待测设计的顶层代码文件,根据TDMA的验证平台结构设计,输入配置信息:环境组件个数为1,环境组件名称为env_1,代理器组件个数为2,名称分别为agent_A,agent_B,代理器组件agent_A实例名称(agtA1,agtA2),输入激励激活配置,代理器组件agent_B实例名称(agtB1,agtB2,agtB3),输入激励不激活配置。输入待测设计顶层代码路径“share/my_test/dut_test.v”。此处无需用户输入个人信息,脚本能够自动抓取后台的用户姓名、ID以及运行时间,生成在代码文件内和日志文档中;
S3:本发明能生成包含全部组件的完整的验证平台,并能够自动连接验证平台和待测设计,生成基础测试用例和激励。用户输入配置信息后,python脚本解析配置信息,将配置信息转换为mako模板方便处理的数据格式,然后按照配置需求,抓取环境组件模板、环境配置组件模板、代理器组件模板、代理器配置组件模板、接口模板、计分板模板、理想模型模板、监控器模板、驱动器模板、激励发生器模板、激励模板、测试用例模板;
S4:python脚本导入配置到模板,模板中控制语句会自动执行,且几乎不消耗时间。执行后,环境组件模板和环境配置组件模板文件名和内部代码声明类名称前缀会变为env_1,并输出一份环境组件代码文件和一份环境配置组件代码文件,且环境组件代码文件中例化的代理器数量为5个,分别是两个名为agtA1,agtA2的agent_A实例,三个名为agtB1,agtB2,agtB3的agent_B实例。代理器组件模板、代理器配置组件模板、监控器模板、驱动器模板、激励发生器模板会生成出两组代码文件,一组代理器组件代码、代理器配置组件、监控器、驱动器、激励发生器代码文件名和内部代码声明类名称前缀会变为agent_A,另一组代码文件名和内部代码声明类名称前缀会变为agent_B。接口模板也会生成两个代码文件,一个名称前缀为agent_A,一个名称前缀为agent_B,且在代理器组件内部,已经将监控器,驱动器、激励发生器三个组件的连接关系设置完毕。计分板模板、理想模型模板会生成两组代码文件,分别作为发送路和接收路的数据抓取比对,组件代码文件名和内部代码声明类名称前缀会变为env_1。激励模板、测试用例模板在导入配置信息后,代码文件前缀也是env_1。所有代码文件内,均会导入自动生成的用户信息、时间、日期,并排版;
S5:脚本会在电脑屏幕上打出询问,是否要生成验证平台和待测设计的连接,如果要生成,则会从配置信息中输入的待测设计代码顶层路径“share/my_test/dut_test.v”下,抓取接口信息,执行自动连接并输出连接文件;
S6:脚本会再次在电脑屏幕上打出询问,是否要生成验证平台的激励和基础数据收发的测试用例,如果要生成,则将之前已经转换完毕的测试用例文件和激励文件输出;
S7:汇总前面步骤生成的所有代码文件,按照功能开始分区放置,将测试用例和激励文件作为验证平台启动功能的必须文件,单独建立文件夹放置,文件夹命名前缀是env_l;将验证平台的功能性结构组件,包括环境组件、代理器组件、理想模型组件、计分板组件、驱动器、监控器、激励发生器组件,单独建立文件夹放置,文件夹名默认为env_l_func。将环境配置组件和代理器配置组件,放置在一起,建立文件夹默认名为env_l_config。如此按功能自动分类,方便文件查询和文件管理;
S8、所有代码文件中均具有功能插入提示语,用户如果在通用功能之外,需要额外根据模块配置增加功能,则直接填写在提示语之后的位置即可。本例中TDMA具有超时检测功能,因此在驱动器组件中的语句提示下,加上了超时处理功能;在计分板组件中加入了超时中断检测功能,加入后,即生成了可验证TDMA的验证平台。
由上述可知,该方法还能够生成其他模块的验证平台,根据该模块的验证平台结构设计,重新输入配置信息,改变组件名称、数量配置,即可生成区别于实施例的不同结构的、适用于该模块的验证平台。
此外,为了更好的解释本技术方案的流程,在上述实施例的基础上,结合用户使用流程进一步详细说明。
该方法的用户使用流程为:
第一步:输入配置
第二步:输入命令
第三步:选择是否需要测试用例和激励以及自动连接
第四步:按代码文件提示输入特殊功能。
完成。
在上述实施例的基础上,如图1-3所示,是实施例自动生成的验证平台结构图。
该验证平台如需求,包括验证平台测试用例(case),环境组件(env),代理器组件(agent),并实例化了5个;其中agtA1,agtA2激励激活,因此包含激励发生器(sqr)、驱动器(drv)、监控器(mon)三个组件;agtB1,agtB2,agtB3激励未激活,仅包含监控器组件;两个代理器模型AB,均拥有自己的功能覆盖率统计(Functioncoverage)、接口(interface)以及代理器文件列表(agent_pkg)。
DUT接口与验证平台接口自动连接。此外验证平台还包括环境配置组件(env_cfg)、寄存器和激励。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

Claims (7)

1.一种基于UVM的通用验证平台架构自动生成方法,其特征在于,包括以下步骤:
S1:使用验证语言构建UVM验证平台通用组件mako模板库;
S2:运行Python脚本,提示用户输入要生成的待测设计配置信息和待测设计顶层代码路径;
S3:脚本解析配置信息,从模板库中抓取环境组件、环境配置组件、代理器组件、代理器配置组件、理想模型组件、计分板组件模板并导入配置信息;
S4:模板导入配置信息,模板内控制语句自动执行,完成模板到代码文件的转换;
S5:询问用户是否生成验证平台和待测设计的自动连接,并按要求输出连接文件;
S6:询问用户是否生成基础测试用例和激励,并按要求输出测试用例与激励文件;
S7:将全部代码文件按照文件功能分别自动生成文件夹放置;
S8:用户按照代码文件内嵌的提示语句,填入待测设计的特殊功能验证语句,即可开始验证工作。
2.根据权利要求1所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,在步骤S2中,配置信息包括:代理器名称、代理器例化数量、环境组件名称以及待测设计顶层文件路径。
3.根据权利要求2所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,在步骤S1中,验证平台模板库包括:
环境组件模板、环境配置组件模板、代理器配置组件模板、代理器组件模板、驱动器组件模板、激励发生器组件模板、激励对象模板、监控器组件模板、计分板组件模板、理想模板组件模板、测试用例模板、待测设计连接模板、传输接口模板和寄存器模板。
4.根据权利要求3所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,在步骤S1中,验证平台模板库的模板均包含功能代码的插入提示语句。
5.根据权利要求4所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,在步骤S4中,通用验证平台组件包括验证平台测试用例组件、理想模型组件、计分板组件、环境组件和代理器组件,其中,验证平台组件的数量和连接方式可变,模板抓取和生成组件时,代理器组件、理想模型组件和计分板组件会分为输入输出两路成对出现。
6.根据权利要求5所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,在步骤S4中,代理器组件激励激活时,代理器组件则包含激励发生器组件、驱动器组件和监控器组件;
代理器组件激励未激活时,代理器组件则仅包含监控器组件。
7.根据权利要求6所述的基于UVM的通用验证平台架构自动生成方法,其特征在于,生成验证平台框架代码时,自动生成验证平台的生成日志,日志包括:作者、生成时间、组件列表、验证平台代码文件存储路径,推荐验证命令。
CN202211398410.7A 2022-11-09 2022-11-09 一种基于uvm的通用验证平台架构自动生成方法 Pending CN115576768A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211398410.7A CN115576768A (zh) 2022-11-09 2022-11-09 一种基于uvm的通用验证平台架构自动生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211398410.7A CN115576768A (zh) 2022-11-09 2022-11-09 一种基于uvm的通用验证平台架构自动生成方法

Publications (1)

Publication Number Publication Date
CN115576768A true CN115576768A (zh) 2023-01-06

Family

ID=84588964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211398410.7A Pending CN115576768A (zh) 2022-11-09 2022-11-09 一种基于uvm的通用验证平台架构自动生成方法

Country Status (1)

Country Link
CN (1) CN115576768A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952758A (zh) * 2023-03-10 2023-04-11 成都登临科技有限公司 芯片验证方法、装置、电子设备及存储介质
CN116306388A (zh) * 2023-05-23 2023-06-23 苇创微电子(上海)有限公司 一种免除路径连接的自动化uvm验证平台及其搭建方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952758A (zh) * 2023-03-10 2023-04-11 成都登临科技有限公司 芯片验证方法、装置、电子设备及存储介质
CN116306388A (zh) * 2023-05-23 2023-06-23 苇创微电子(上海)有限公司 一种免除路径连接的自动化uvm验证平台及其搭建方法

Similar Documents

Publication Publication Date Title
CN115576768A (zh) 一种基于uvm的通用验证平台架构自动生成方法
CN107038280B (zh) 一种软硬件协同仿真的验证系统及其方法
CN109726507B (zh) 一种高效的多功能验证方法
CN112417798B (zh) 一种时序测试方法、装置、电子设备及存储介质
CN101093521A (zh) 一种fpga仿真装置及其方法
CN115828839A (zh) 一种soc芯片系统级验证系统及方法
CN111339731B (zh) 一种面向SoC的FPGA验证平台和验证方法
CN115952758B (zh) 芯片验证方法、装置、电子设备及存储介质
CN111290954B (zh) 一种基于uvm的fpga构件可视化测试框架和方法
CN112241347B (zh) 实现SystemC验证的方法和验证平台组件架构
CN109885905B (zh) 一种提高数字电路功能验证效率的验证系统
CN116681013B (zh) 网络芯片的仿真验证方法、平台、装置、设备及介质
CN102147831A (zh) 逻辑验证方法和装置
CN106155903A (zh) 用于系统设计验证的装置和方法
CN103530209A (zh) 一种密码键盘自动化测试方法
CN115496018A (zh) 一种SoC芯片多版本验证方法、装置及设备
CN112084802A (zh) 一种rfid标签芯片验证系统
CN111400169A (zh) 一种自动化生成用于测试软硬件的网表文件的方法及系统
CN108776723B (zh) 测试系统自检适配器连线生成方法、装置、设备及存储介质
CN110688269A (zh) 采用axi总线接口的rtl代码自动化验证装置及方法
CN105740579A (zh) 一种连接uvm验证平台的搭建方法
CN111737933A (zh) 一种soc原型验证方法、系统、设备及介质
CN116306479A (zh) 基于uvm的以太网phy通用验证平台及验证方法
CN105068908B (zh) 一种用于kvm asic的功能验证平台的搭建方法
CN113496108B (zh) 一种应用于仿真的cpu模型

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