#UVM# 搞清验证平台中的 uvm_top、uvm_test_top及module top的层次关系

本文介绍了UVM验证方法学中的关键概念,包括uvm_top作为验证组件树的唯一根,uvm_test_top作为uvm_top的子组件,以及module top作为包含UVM测试平台和DUT RTL的顶层模块。重点讨论了uvm_top的全局唯一性,uvm_test_top的层级关系,以及如何通过不同组件类型实例化uvm_root。
摘要由CSDN通过智能技术生成

1. UVM 方法学的测试平台构建框架关系

UVM 验证方法学普遍被业界各大芯片公司、EDA公司所推崇,成为当今主流芯片验证人员的必备技能。作为初学小白,今天对平台中的三个概念,进行个人理解总结。
uvm 是以树的形式,组织所有的验证组件(其实就是验证文件)的。作为一棵树,必然有其唯一的根的存在。刚接触uvm 时候,认为我们自己写的my_test 便是最终的根,其实不然。
UVM验证树形架构
请注意:
(a)树形结构中的"()"双引号+括号中间的内容,是我们自己创建的uvm class(文件),其上方的标识符,才是真正的被实例化的对象存在。
(b)树形结构中,除了uvm_top 及 uvm_test_top 之外,其它所有实例化对象的标识符,都是可以受用户自行命名的。

1.1 uvm_top

uvm中真正的根是一个被称为 uvm_top 的东西。 uvm_top 是一个全局变量,它是uvm_root 的是一个实例化对象, 而且是唯一的。具体uvm 怎么做到唯一的,大家可以自行研究uvm 源码(这里用到了C++的单例模式)。uvm_top 属于 uvm_root 的唯一实例,它自然是一个uvm_component。

in uvm_root.svh:

(1). class uvm_root extends uvm_component;


endclass

在这里插入图片描述

(2). const uvm_root uvm_top = uvm_root::get();

运行uvm环境的时候,系统会自动创建一个全局唯一化对象uvm_top。那么,是不是只有uvm_test及其子类才有trigger 系统自动创建这个根呢。答案:当然不是。下面例子,通过修改hello_world 的父类,分别继承于uvm_driver/uvm_monitor/uvm_env 等组件 均可以得到相同效果。
在这里插入图片描述
uvm_root::get()被执行的时候,会调用uvm_root:new()函数。其函数原型如下:
在这里插入图片描述
在这里插入图片描述


                
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

那么菜

你的鼓励和批评是我最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值