[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)要点


相关推荐
初心未改HD11 分钟前
gRPC 与 Protobuf 实战指南
开发语言·golang
Jul1en_18 分钟前
Claude 迁移 Codex 工作流迁移与更新
java·服务器·前端·后端·ai编程
Heo20 分钟前
14_React 中的更新队列 updateQueue
前端·javascript·面试
前端 贾公子26 分钟前
解决浏览器端 globalThis is not defined 报错
前端·javascript·vue.js
宁雨桥29 分钟前
前端与AI结合实战分享
前端·人工智能
2zcode34 分钟前
基于MATLAB的交通流量预测模型设计与实现
开发语言·matlab·交通流量预测
早日退休!!!37 分钟前
操作系统锁
java·开发语言
lsx20240638 分钟前
Python 统计学基础与高级应用
开发语言
研究点啥好呢39 分钟前
快手多模态算法工程师面试题精选:10道高频考题+答案解析
java·开发语言·人工智能·ai·面试·笔试
xxjj998a40 分钟前
PHP vs C#:核心差异全解析
开发语言·c#·php