CN109726476B - 基于uvm验证平台的验证方法和装置 - Google Patents
基于uvm验证平台的验证方法和装置 Download PDFInfo
- Publication number
- CN109726476B CN109726476B CN201811634217.2A CN201811634217A CN109726476B CN 109726476 B CN109726476 B CN 109726476B CN 201811634217 A CN201811634217 A CN 201811634217A CN 109726476 B CN109726476 B CN 109726476B
- Authority
- CN
- China
- Prior art keywords
- transaction
- component
- dut
- uvm
- 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.)
- Active
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
本申请供一种基于UVM验证平台的验证方法及装置,所述方法包括:获取与被验设计DUT对应的事务Transaction集合,所述Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,以使所述UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;从所述UVM验证平台获取所述DUT的验证结果。应用本申请的实施例,可以大大减少设计人员的工作量,节约大量的人力资源,并且验证效率比较高。
Description
技术领域
本申请涉及芯片验证技术领域,特别设计一种基于通用验证方法学(UniversalVerification Methodology,UVM)验证平台的验证方法和装置。
背景技术
随着集成电路的发展,芯片的功能越来越复杂,芯片设计的规模也越来越大,流片费用昂贵,因此芯片设计对验证的要求也越来越高。全面、高效的功能验证对芯片的成功开发具有重要意义。为了进行验证工作,出现了商用的硬件验证语言。目前主流的验证语言是SystemVerilog,使用SystemVerilog能够搭建验证平台,但是如何搭建验证平台缺乏统一的标准。
为了规范验证平台的搭建,在电子设计自动化(Electronic Design Automation,EDA)厂商和用户之间建立一个统一的原则,Accellera提出了通用验证方法学(UniversalVerification Methodology,UVM)标准,并得到了Mentor、Cadence和Synopsys三大厂商的支持。UVM是一个以SystemVerilog类库为主体的验证平台开发框架,验证工程师可以利用其可重构组件构建具有标准层次结构和接口的功能验证环境。
UVM验证平台结构如图1所示,通常被验设计(Design Under Test,DUT)的每一组输入输出接口需要一个测试(Test)项目,每个Test项目包括环境(Environment)组件、事务(Transaction)组件和序列组(Sequence)组件,Transaction组件根据传递信息的协议,定义与该协议各字段对应的变量。每个Environment组件有一组与之对应的Transacion组件,在这组Transaction中,一般有一个Transaction作为其他Transaction的父类。验证平台启动后,Sequence组件会对Trancstion中各个变量的进行赋值或约束,再由Environment组件将其传入DUT。
使用UVM进行验证工作,通常采用基于案件(Case)管理的方式,根据DUT的功能提取出关键的特性,每个Case针对其中的一种或几种特性进行验证。如图1所示,如果想验证不同的特性,可以在验证平台的各个Test中添加不同的Case,完成验证工作。
现有技术方案中,如果DUT的功能有改动,需要建立新的Case,根据实际情况,可能还需要对Environment组件、Transaction组件、Sequence组件进行新建或修改。以网络设备的DUT为例,如果原来该设备只能处理IPV4格式的报文,现在修改为可以处理IPV4和IPV6格式的报文,需要建立与IPV6报文对应的Case,建立新的与IPV6格式对应的Transaction组件,新的能够处理该Transaction组件的Sequence组件,以及能够接收并传输该Transaction组件的Environment组件。
上述基于UVM验证平台的验证方法中,针对不同的DUT需要重新编写新的Case,还需要对UVM验证平台的Environment组件、Transaction组件、Sequence组件进行新建或修改,这就会大大增加设计人员的工作量,浪费大量的人力资源,并且验证效率比较低。
发明内容
有鉴于此,本申请提供一种基于UVM验证平台的验证方法和装置,以解决相关技术中存在的大大增加设计人员的工作量,浪费大量的人力资源,并且验证效率比较低的问题。
具体地,本申请是通过如下技术方案实现的:
一种基于UVM验证平台的验证方法,所述方法包括:
获取与被验设计DUT对应的事务Transaction集合,所述Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;
将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,以使所述UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;
从所述UVM验证平台获取所述DUT的验证结果。
一种基于UVM验证平台的验证装置,所述装置包括:
第一获取模块,用于获取与被验设计DUT对应的事务Transaction集合,所述Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;
添加模块,用于将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,以使所述UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;
第二获取模块,用于从所述UVM验证平台获取所述DUT的验证结果。
由以上本申请提供的技术方案可见,当需要对DUT进行验证时,可以直接设置与DUT对应的事务Transaction集合,该Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值,然后将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,由UVM验证平台的各个Transaction组件通过对应的序列Sequence组件和环境Environment组件将Transaction传入DUT进行验证,就可以实现对DUT进行验证,无需修改UVM验证平台,从而大大减少设计人员的工作量,节约大量的人力资源,并且验证效率比较高。
附图说明
图1为本申请相关技术中一种UVM验证平台的结构示意图;
图2为本申请示出的一种基于UVM验证平台的验证方法的流程图;
图3为本申请示出的另一种基于UVM验证平台的验证方法的示意图;
图4为本申请示出的一种基于UVM验证平台的验证装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了解决上述问题,本发明实施例提供了一种基于UVM验证平台的验证方法,可以大大减少设计人员的工作量,节约大量的人力资源,并且验证效率比较高。请参见图2,图2为本申请示出的一种基于UVM验证平台的验证方法的流程图,应用于编写的验证脚本中。
S21:获取与被验设计DUT对应的Transaction集合。
在本申请中,将Transaction从UVM验证平台中提取出来,针对DUT形成一个单独的Transaction集合,其中的各个Transaction可以由设计人员根据实际需要进行修改和添加,Transaction集合中的每个Transaction不仅包括多个预设变量还包括及其对应的赋值。
S22:将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,以使UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证。
在验证DUT时,将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,以其中一个Transaction为例进行说明,UVM验证平台的Transaction组件接收到该Transaction后,该Transaction组件将Transaction通过对应的Sequence传给对应的Environment组件,再由Environment组件通过对应的接口传给DUT进行验证。由于Transaction不仅包括多个预设变量还包括及其对应的赋值,因此,Sequence无需再进行赋值的工作,只是将其传给Environment组件即可。
S23:从UVM验证平台获取DUT的验证结果。
由以上本申请提供的技术方案可见,当需要对DUT进行验证时,可以直接设置与DUT对应的事务Transaction集合,该Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值,然后将Transaction集合中的各个Transaction依次添加到UVM验证平台的各个Transaction组件中,由UVM验证平台的各个Transaction组件通过对应的序列Sequence组件和环境Environment组件将Transaction传入DUT进行验证,就可以实现对DUT进行验证,无需修改UVM验证平台,从而大大减少设计人员的工作量,节约大量的人力资源,并且验证效率比较高。
具体的,上述S22中将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,具体包括:
监控UVM验证平台的各个Transaction组件中是否有空闲的Transaction组件;
若监控到空闲的Transaction组件,则确定空闲的Transaction组件对应的DUT的接口;
将Transaction集合中未添加过且与接口对应的Transaction添加到空闲的Transaction组件。
可以主动监控UVM验证平台的各个Transaction组件中是否有空闲的Transaction组件,一旦监控到有空闲的Transaction组件,确定空闲的Transaction组件对应的DUT的接口,将Transaction集合中未添加过且与该接口对应的Transaction添加到空闲的Transaction组件,从而可以确保UVM验证平台中的各个Transaction组件都处于工作状态,提升DUT验证效率。
具体的,上述将Transaction集合中未添加过且与接口对应的Transaction添加到空闲的Transaction组件,具体包括:
从Transaction集合中获取一个携带未添加标识且与接口对应的选定Transaction;
将选定Transaction添加到空闲的Transaction组件中;
将选定Transaction的未添加标识更新为添加标识。
为了区分Transaction集合中添加和未添加过的Transaction,可以在Transaction添加相应的标识,便于方便获取。
可选的,上述S23之前从UVM验证平台获取DUT的验证结果之前,上述方法还包括:
检测Transaction集合中是否还包括未添加过的Transaction;
若检测到Transaction集合中不包括未添加过的Transaction,则执行从UVM验证平台获取DUT的验证结果的操作。
由于Transaction集合与DUT对应,可以检测Transaction集合中是否还包括未添加过的Transaction;若检测到Transaction集合中不包括未添加过的Transaction,说明Transaction集合中的Transaction已全部添加到UVM验证平台,就可以从UVM验证平台获取DUT的验证结果了。
可选的,上述S23中从UVM验证平台获取DUT的验证结果之后,上述方法还包括:
显示DUT的验证结果。
为了便于技术人员查验验证结果,从UVM验证平台获取DUT的验证结果之后,还可以显示该验证结果。
下面以一个具体实施例进一步说明本申请的方法,请参见图3,图3为本申请示出的另一种基于UVM验证平台的验证方法的示意图,以两组接口的DUT为例,搭建一个验证该DUT的UVM验证平台。在UVM验证平台中,Environment-0和Environment-1分别与DUT的两组接口对应,Environment-0和Environment-1有与之对应的Sequence-0和Sequence-1,以及与Sequence-0和Sequence-1对应的Transaction-0和Transaction-1。在这个UVM验证平台之外,有独立的Transaction的集合,其中的Transaction可以由设计人员根据验证的需要进行修改或创建新的Transaction。如果将Transaction-0和Transaction-1分别发送给DUT的Port-0和Port-1,将Transaction集合中的Transaction-0和Transaction-1放到UVM验证平台的Transaction-0组件和Transaction-1组件中,以进行后续验证,验证完成后退出;如果需要向Port-0发送Transaction-2,向Port-1发送Transaction-3,可以将Transaction-2和Transaction-3加入UVM验证平台的Transaction-0组件和Transaction-1组件中,以进行后续验证,验证完成后退出。
请参见图4,图4为本申请示出的一种基于UVM验证平台的验证装置的结构示意图,该装置包括:
第一获取模块41,用于获取与被验设计DUT对应的事务Transaction集合,Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;
添加模块42,用于将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,以使UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;
第二获取模块43,用于从UVM验证平台获取DUT的验证结果。
由以上本申请提供的技术方案可见,当需要对DUT进行验证时,可以直接设置与DUT对应的事务Transaction集合,该Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值,然后将Transaction集合中的各个Transaction依次添加到UVM验证平台的各个Transaction组件中,由UVM验证平台的各个Transaction组件通过对应的序列Sequence组件和环境Environment组件将Transaction传入DUT进行验证,就可以实现对DUT进行验证,无需修改UVM验证平台,从而大大减少设计人员的工作量,节约大量的人力资源,并且验证效率比较高。
具体的,添加模块42,用于将Transaction集合中的各个Transaction依次添加到UVM验证平台的对应的Transaction组件中,具体用于:
监控UVM验证平台的各个Transaction组件中是否有空闲的Transaction组件;
若监控到空闲的Transaction组件,则确定空闲的Transaction组件对应的DUT的接口;
将Transaction集合中未添加过且与接口对应的Transaction添加到空闲的Transaction组件。
添加模块42,用于将Transaction集合中未添加过且与接口对应的Transaction添加到空闲的Transaction组件,具体用于:
从Transaction集合中获取一个携带未添加标识且与接口对应的选定Transaction;
将选定Transaction添加到空闲的Transaction组件中;
将选定Transaction的未添加标识更新为添加标识。
可选的,第二获取模块43,还用于:
从UVM验证平台获取DUT的验证结果之前,检测Transaction集合中是否还包括未添加过的Transaction;
若检测到Transaction集合中不包括未添加过的Transaction,则执行从UVM验证平台获取DUT的验证结果的操作。
可选的,上述装置还包括显示模块,用于:
第二获取模块从UVM验证平台获取DUT的验证结果之后,显示DUT的验证结果。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (6)
1.一种基于UVM验证平台的验证方法,其特征在于,所述方法包括:
获取与被验设计DUT对应的事务Transaction集合,所述Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;
将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,以使所述UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;
从所述UVM验证平台获取所述DUT的验证结果;
其中,将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,具体包括:
监控所述UVM验证平台的各个Transaction组件中是否有空闲的Transaction组件;若监控到空闲的Transaction组件,则确定所述空闲的Transaction组件对应的DUT的接口;以及,将所述Transaction集合中未添加过且与所述接口对应的Transaction添加到所述空闲的Transaction组件;
或者,
从所述Transaction集合中获取一个携带未添加标识且与所述接口对应的选定Transaction;将所述选定Transaction添加到所述空闲的Transaction组件中;以及,将所述选定Transaction的未添加标识更新为添加标识。
2.如权利要求1所述的方法,其特征在于,从所述UVM验证平台获取所述DUT的验证结果之前,所述方法还包括:
检测所述Transaction集合中是否还包括未添加过的Transaction;
若检测到所述Transaction集合中不包括未添加过的Transaction,则执行所述从所述UVM验证平台获取所述DUT的验证结果的操作。
3.根据权利要求1或2所述的方法,其特征在于,从所述UVM验证平台获取所述DUT的验证结果之后,所述方法还包括:
显示所述DUT的验证结果。
4.一种基于UVM验证平台的验证装置,其特征在于,所述装置包括:
第一获取模块,用于获取与被验设计DUT对应的事务Transaction集合,所述Transaction集合中的每个Transaction包括多个预设变量及其对应的赋值;
添加模块,用于将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,以使所述UVM验证平台的各个Transaction组件接收到Transaction后,通过对应的序列Sequence组件和环境Environment组件传入DUT进行验证;
第二获取模块,用于从所述UVM验证平台获取所述DUT的验证结果;
其中,所述添加模块,用于将所述Transaction集合中的各个Transaction依次添加到所述UVM验证平台的对应的Transaction组件中,具体用于:
监控所述UVM验证平台的各个Transaction组件中是否有空闲的Transaction组件;若监控到空闲的Transaction组件,则确定所述空闲的Transaction组件对应的DUT的接口;以及,将所述Transaction集合中未添加过且与所述接口对应的Transaction添加到所述空闲的Transaction组件;
或者,
从所述Transaction集合中获取一个携带未添加标识且与所述接口对应的选定Transaction;将所述选定Transaction添加到所述空闲的Transaction组件中;以及,将所述选定Transaction的未添加标识更新为添加标识。
5.如权利要求4所述的装置,其特征在于,所述第二获取模块,还用于:
从所述UVM验证平台获取所述DUT的验证结果之前,检测所述Transaction集合中是否还包括未添加过的Transaction;
若检测到所述Transaction集合中不包括未添加过的Transaction,则执行所述从所述UVM验证平台获取所述DUT的验证结果的操作。
6.根据权利要求4或5所述的装置,其特征在于,所述装置还包括显示模块,用于:
所述第二获取模块从所述UVM验证平台获取所述DUT的验证结果之后,显示所述DUT的验证结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811634217.2A CN109726476B (zh) | 2018-12-29 | 2018-12-29 | 基于uvm验证平台的验证方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811634217.2A CN109726476B (zh) | 2018-12-29 | 2018-12-29 | 基于uvm验证平台的验证方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109726476A CN109726476A (zh) | 2019-05-07 |
CN109726476B true CN109726476B (zh) | 2023-03-24 |
Family
ID=66296143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811634217.2A Active CN109726476B (zh) | 2018-12-29 | 2018-12-29 | 基于uvm验证平台的验证方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109726476B (zh) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657245B (zh) * | 2013-11-20 | 2017-01-04 | 上海华虹集成电路有限责任公司 | 基于amba总线的模块级uvm验证平台的自动生成装置 |
CN105320593B (zh) * | 2014-07-29 | 2019-04-16 | 中兴通讯股份有限公司 | 多路帧随机数据验证处理方法及装置 |
CN106940428B (zh) * | 2016-01-04 | 2020-11-03 | 中兴通讯股份有限公司 | 芯片验证方法、装置及系统 |
US20180060453A1 (en) * | 2016-08-24 | 2018-03-01 | Raytheon Company | Universal verification methodology (uvm) register abstraction layer (ral) painter |
CN106503308B (zh) * | 2016-10-08 | 2019-03-19 | 中国电子科技集团公司第五十八研究所 | 一种基于uvm的can控制器ip验证平台 |
CN106484583A (zh) * | 2016-10-12 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种基于uvm验证平台的upi协议模型链路层模块验证系统 |
-
2018
- 2018-12-29 CN CN201811634217.2A patent/CN109726476B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN109726476A (zh) | 2019-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10354031B2 (en) | Information processing by interpenetrating signal transmission channel in design for testability of chip | |
CN111339731B (zh) | 一种面向SoC的FPGA验证平台和验证方法 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
CN113342583B (zh) | 芯片验证系统、方法、装置、设备和存储介质 | |
CN112417798B (zh) | 一种时序测试方法、装置、电子设备及存储介质 | |
CN113434355B (zh) | 模块验证方法、uvm验证平台、电子设备及存储介质 | |
CN104461812A (zh) | 一种利用已有Verilog BFM构造UVM验证组件的方法 | |
CN105786695A (zh) | 数据测试方法及系统 | |
CN114444420A (zh) | 一种基于芯片验证的验证ip集成方法及系统 | |
CN113254284B (zh) | 芯片测试方法、装置、设备、存储介质以及程序产品 | |
CN113887161A (zh) | 一种片上网络设计实例的验证方法、装置、设备及介质 | |
CN115630036A (zh) | 报错信息处理方法、装置、设备、存储介质和程序产品 | |
US8645897B1 (en) | Integrated circuit design verification system | |
CN102298112B (zh) | 一种可编程逻辑器件的测试方法及系统 | |
CN111624475B (zh) | 大规模集成电路的测试方法及系统 | |
CN109491909A (zh) | 一种cpld刷新验证方法、装置、终端及存储介质 | |
US9280627B1 (en) | GUI based verification at multiple abstraction levels | |
US7657851B2 (en) | Device, system, and method for correction of integrated circuit design | |
CN109726476B (zh) | 基于uvm验证平台的验证方法和装置 | |
CN115470125B (zh) | 基于日志文件的调试方法、设备以及存储介质 | |
US9405870B2 (en) | Generating coverage data for a switch frequency of HDL or VHDL signals | |
CN112567375A (zh) | 形式验证方法、信息识别方法、设备和存储介质 | |
CN112257359B (zh) | 用于数据波形的调试方法、装置、调试系统以及存储介质 | |
CN109086145B (zh) | 数据生成方法、装置及计算机存储介质 | |
CN105740114A (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 |