[UVM]3.核心基类 uvm_object 域的自动化 copy() compare() print() pack unpack


1.核心基类:uvm_object

(1)虚类只能声明,不能例化。

(2)uvm_object提供的方法


2.域的自动化(field automation)

(1)简述

(2)示例

格式:在注册中声明成员变量。

(3)域的自动化添加后,可直接调用copy等方法,而无需像SV那样仔细定义copy()。

(4)对于新手,应养成习惯


3.拷贝-copy

(1)在UVM的数据操作中,需要对copy和clone加以区分。前者默认已经创建好了对象,只需要对数据进行拷贝;后者则会自动创建对象并对source object进行数据拷贝,再返回target object句柄。无论是copy或者clone,都需要对数据进行复制。

(2)示例

从示例可以看到,在进行copy时,默认进行的是深拷贝(deep copy) ,即会执行copy()和do_copy()。

(3)示例中要点

(4)示例结果


4.比较-compare

(1)简述

(2)示例

(3)输出结果

前两行是系统打印的,第二行发现只有1个miscompare。那是因为compare是立即返回的,不会继续对比其他变量。

(4)要点

(5)全局对象

发现全局对对象是与top是同级的,不在层次里。


5.打印-print

(1)概述

(2)示例

示例中包含了自定义的printer。

输出结果

(3)


6.打包与解包(pack&unpack)

(1)概述

(2)示例

(3)要点


相关推荐
只一2 分钟前
React 性能优化精讲:useCallback 与 useMemo 彻底吃透(附实战案例)
前端·react.js
橘子星3 分钟前
浏览器也能跑大模型:WebGPU + Transformers.js 本地运行 DeepSeek-R1
前端·人工智能
用户33144195556736 分钟前
Rush Monorepo 构建缓存指南
前端
snow@li8 分钟前
SpringBoot:AOP日志切面全景梳理/原理+流程+实战+避坑
java·开发语言·spring boot
windliang8 分钟前
Claude Code 源码分析(八):Memory 如何被写入、整理与按需召回
前端·算法·面试
木公子9 分钟前
Vue3源码精读03:响应式核心依赖追踪机制|track与trigger底层源码全解析
前端·vue.js
Nil2089 分钟前
C++ emplace_back 与 push_back 详解
开发语言·c++
睡觉时不困44210 分钟前
Obsidian 三端同步完整流程:电脑、手机、平板通过 Gitee 实时同步
前端
渣波16 分钟前
React Hooks 核心基石:深度解析 `useState` 的类型推断、泛型约束与空值安全
前端·typescript
YIAN17 分钟前
吃透这 5 个核心点,你的 React+TS 代码直接上一个台阶
前端·react.js·typescript