0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于UVM验证环境开发测试流程

芯片验证工程师 来源:芯片验证工程师 2023-06-09 11:11 次阅读

验证环境用户需要创建许多测试用例来验证一个DUT的功能是否正确,验证环境开发者应该通过以下方式提高测试用例的开发效率:

在数据项类中加入旋钮,以简化测试用例开发控制

创建一些可重用的sequences library。

声明自定义的Sequences

Sequences是由几个数据项组成的,它们共同构成一个数据pattern以触发有趣的DUT场景。

验证组件可以包括一个基本sequences library(而不是单一的数据项),测试用例编写者(验证环境使用者)可以调用它。这种方法加强了对常见数据pattern的复用,并减少了测试用例的代码长度。此外,一个Sequences可以调用其他Sequences,从而创造更复杂的场景。

UVM类库提供了uvm_sequence基类。你应该直接或间接地从这个类派生出所有的Sequences类。要创建一个用户定义的Sequences:

从uvm_sequence基类派生出一个Sequences,并指定request和response数据项类型参数。在下面的例子中,只指定了request类型,即simple_item,所以response数据项类型也是simple_item 。

使用`uvm_object_utils宏来向factory注册Sequences类型。

如果Sequences需要访问其相关sequencer,使用'uvm_declare_p_sequencer宏来声明sequencer指针。

实现Sequences的body任务来触发特定的DUT场景。在body任务中,你可以发送数据项或者调用其他Sequences。

下面例子中的simple_seq_do类定义了一个简单的Sequences。它是由uvm_sequence派生出来的,并 使 用 了 `uvm_object_utils 宏 。这个例子还定义了一个simple_sequencer类,simple_seq_do序列可以在该simple_sequencer上运行。

9b1743c8-05e7-11ee-962d-dac502259ad0.png

发送Sequence Items或者Subsequences的基本流程

要 发 送 一 个sequence item,sequence的body()任务 需 要create() 该 sequence item , 对 该sequence item调 用start_item(),然后随机化该sequence item(可选的),最后对该sequence item调用finish_item()

要发送一个subsequence,parent sequence的body()任务需要create该subsequence,对其进行随机化(可选的),最后对该subsequence调用start()。如果subsequence有一个相应的response,parent sequence可以调用get_response()。

9b2f79d4-05e7-11ee-962d-dac502259ad0.png

9b39711e-05e7-11ee-962d-dac502259ad0.png

上图显示了在uvm_do宏中实现的发送sequence itemssequences的完整流程。uvm_do宏会更根据传递的类型create一个对象,并且根据发送sequence items和sequences执行对应的流程。

uvm_do宏不会执行subsequences的pre_body()和post_body()方法。



审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • UVM
    UVM
    +关注

    关注

    0

    文章

    181

    浏览量

    19160
  • DUT
    DUT
    +关注

    关注

    0

    文章

    189

    浏览量

    12361
  • sequence
    +关注

    关注

    0

    文章

    23

    浏览量

    2839

原文标题:基于UVM验证环境开发测试用例

文章出处:【微信号:芯片验证工程师,微信公众号:芯片验证工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【米尔-紫光PG2L100H国产FPGA开发板试用】官方LED例程测试体验

    通过本次LED例程测试,我们验证了PG2L100H开发板的基本功能完全正常,PDS开发环境配置成功,为后续深入
    发表于 12-06 10:30

    企业AI开发环境要求

    构建一个满足企业AI开发需求的环境是一个复杂且持续的过程,涉及硬件、软件、安全、团队协作及自动化流程等多个方面。以下是对企业AI开发环境要求
    的头像 发表于 11-15 09:41 188次阅读

    单片机芯片开发-单片机方案开发的关键技巧和流程步骤!

    复杂而富有挑战性的任务。今天,英锐恩工程威廉希尔官方网站 小编将为您解锁单片机开发的关键技巧和流程步骤,让您的项目更加顺利! 明确项目需求: 在开始任何开发之前,首先要明确项目的具体需求。这包括功能、性能和
    发表于 09-26 17:04

    电池测试流程测试方法有哪些

    电池测试是确保电池性能、安全性和可靠性的重要环节。由于电池威廉希尔官方网站 的种类繁多,包括锂离子电池、镍氢电池、铅酸电池等,每种电池的测试流程和方法都有所不同。 电池测试
    的头像 发表于 09-23 16:51 770次阅读

    在美国VPS上设置开发测试环境的基本步骤和技巧

    在美国vps上搭建开发环境测试环境是很多开发者和企业追求高效研发与测试
    的头像 发表于 06-24 14:46 414次阅读
    在美国VPS上设置<b class='flag-5'>开发</b>和<b class='flag-5'>测试</b><b class='flag-5'>环境</b>的基本步骤和技巧

    FPGA的学习笔记---FPGA的开发流程

    验证设计是否正确。 3、实现到时序收敛。这一步要干啥,目前还不懂。 4、仿真测试到板级调试。 总体上,感觉比单片机开发要复杂很多。涉及到的工具也多,有点头疼。
    发表于 06-23 14:47

    接口测试流程和步骤有哪些

    接口测试是软件测试的一个重要组成部分,主要用于验证系统各模块之间的交互是否符合预期。 一、接口测试概述 接口测试,又称为API
    的头像 发表于 05-30 14:59 2727次阅读

    fpga原型验证流程

    FPGA原型验证流程是确保FPGA(现场可编程门阵列)设计正确性和功能性的关键步骤。它涵盖了从设计实现到功能验证的整个过程,是FPGA开发流程
    的头像 发表于 03-15 15:05 1512次阅读

    fpga验证测试的区别

    FPGA验证测试在芯片设计和开发过程中都扮演着重要的角色,但它们各自有着不同的侧重点和应用场景。
    的头像 发表于 03-15 15:03 1169次阅读

    fpga验证uvm验证的区别

    FPGA验证UVM验证在芯片设计和验证过程中都扮演着重要的角色,但它们之间存在明显的区别。
    的头像 发表于 03-15 15:00 1535次阅读

    uvm1.1升级为uvm1.2 uvm_report_server报错是何原因?

    ISP算法仿真中,小编会用reference model调用DPI接口用C++ 算法实现pixel算法处理,然后和DUT算法处理输出的pixel值进行比较,比较时候发现报错,报错代码如下,原因是小编把uvm1.1升级为uvm1.2了。
    的头像 发表于 03-04 14:18 789次阅读
    <b class='flag-5'>uvm</b>1.1升级为<b class='flag-5'>uvm</b>1.2 <b class='flag-5'>uvm</b>_report_server报错是何原因?

    UVM手把手教程系列(一)UVM验证平台基础知识介绍

    先抛开UVM,回想一下我们在平时写完程序后,是不是肯定需要灌一个激励给DUT,然后再从DUT获取结果,并跟一个参考模块进行对比,检查结果是否正确。就像下面这个图:
    的头像 发表于 02-27 09:08 5809次阅读
    <b class='flag-5'>UVM</b>手把手教程系列(一)<b class='flag-5'>UVM</b><b class='flag-5'>验证</b>平台基础知识介绍

    数字电路设计有哪些仿真验证流程

    数字电路设计的仿真验证流程是确保设计能够正确运行的重要步骤之一。在现代电子设备中,数字电路被广泛应用于各种应用领域,如计算机、通信设备、汽车电子等等。因此,设计师必须通过仿真验证来确保电路能够按照
    的头像 发表于 01-02 17:00 1529次阅读

    UVM环境中如何控制打印数组或队列元素的数据量

    UVM验证环境的项目中,经常需要使用内置的print()函数或sprint()函数打印
    的头像 发表于 12-20 10:14 4023次阅读
    在<b class='flag-5'>UVM</b><b class='flag-5'>环境</b>中如何控制打印数组或队列元素的数据量

    SD NAND 可靠性验证测试

    SDNAND可靠性验证测试的重要性SDNAND可靠性验证测试至关重要。通过检验数据完整性、设备寿命、性能稳定性,确保产品符合标准,可提高产品的可信度、提高品牌声誉,减少维修成本,确保
    的头像 发表于 12-14 14:29 676次阅读
    SD NAND 可靠性<b class='flag-5'>验证</b><b class='flag-5'>测试</b>