(11)UVM 如何构建好的UVM验证环境?

本文详细介绍了UVM构建验证环境的核心要素,包括单元组件的自闭性、回归创建、通信端口连接和顶层配置。强调了配置对象在环境稳定性和组件复用中的重要性,并对环境元素进行了分类,如成员变量、子组件和子对象。通过理解这些概念,读者可以更好地构建和管理UVM验证环境。
摘要由CSDN通过智能技术生成

UVM 构建环境的要素

一、前言

UVM带来的环境复用,相比于之前SV验证环境做到了下面的几个优势:

  1. 各个模块的验证环境是独立封装的,对外不需要保留数据端口,因此便于环境的进一步集成复用。
  2. 由于UVM自身的phase机制,在顶层协调各个子环境时,无需考虑由于子环境之间的例化顺序而导致的对象句柄引用悬空的问题。
  3. 由于子环境的测试序列是相对独立的,这使得顶层在复用子环境测试序列而构成virtual sequence时,不需要其它额外的迁移成本。
  4. UVM提供的config_db配置方式,使得整体环境的结构和运行模式都可以从树状的config对象中获取,这也使得顶层环境可以在不同uvm_test进行集中管理配置。

二、环境构建的核心要素

在发送测试序列之前,首先需要创建一个结构化的环境。如果我们将环境建立的核心要素拆解开来,它们可以分为四个部分:

  1. 单元组件的自闭性
    自闭性指的是单元组员(例如uvm_agent或者uvm_env)自身可以成为独立行为、不依赖于其它并行的组件。举例来说,driver同sequencer之间,虽然driver需要获取sequencer的transaction item,但是它本身可以独立例化,而它们之间的通信也是基于TLM端对端的连接实现的。(如果按照SV的环境,只例化driver不例化generator,从环境运行的可靠性上来说不行。因为driver中的mailbox是空的。虽然从编译上来说它是独立的,但是从环境运行上来说它不是独立的。)这种单元组件的自闭性为日后的组件复用提供了良好基础。各个
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数字IC小白的日常修炼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值