当前位置: 首页 > news >正文

对象的复制

方式一:sv 的new函数

trans tr1,tr2;
malbox.get(tr2);
tr1 = new tr2;//仅用于浅拷贝,拷贝后tr1,tr2为两个独立的对象

方式二:uvm 域的自动化常用函数:copy / clone / 

使用前提:

1. 函数都可用于uvm_object类型,copy 还可用于component类型; 

2. 源对象和目的对象需已经注册在工厂中,注册方式如下:

`uvm_field_int(idx,UVM_ALL_ON) //参数注册

注:如果注册时使用了if,那么不满足条件的参数将不会被注册,以就不能使用函数了;

使用方法:

1. copy 

trans tr1 tr2;tr1 = new;//copy在使用前需创建对象malbox.get(tr2);tr1.copy(tr2);//仅浅拷贝,copy是void类型函数

2. clone

trans tr1 tr2;malbox.get(tr2);if(!$cast(tr1,tr2.clone))//仅浅拷贝,clone在使用时,tr1为空句柄(不需要提前创建对象,因为clone=new+copy)
`uvm_error()

总结:

1. 两个方式的拷贝结果一致,使用方式略有不同;

2. 两种方式的拷贝均只用于浅拷贝,如果需要深拷贝,需要自行写出copy函数;

浅拷贝:仅拷贝变量和句柄,不拷贝句柄的对象;所有拷贝前后的两个句柄指向同一个对象;

深拷贝:拷贝变量/句柄/句柄所指向的对象;拷贝前后两个句柄指向两个不同的对象;

http://www.lryc.cn/news/277239.html

相关文章:

  • 基于 Python+Neo4j+医药数据,构建了一个知识图谱的自动问答系统
  • Maven之属性管理
  • 快乐学Python,数据分析之获取数据方法「公开数据或爬虫」
  • 前端常用的设计模式
  • 游戏引擎支持脚本编程有啥好处
  • react中概念性总结(二)
  • WPF自定义漂亮顶部工具栏 WPF自定义精致最大化关闭工具栏 wpf导航栏自定义 WPF快速开发工具栏
  • Transformer 的双向编码器表示 (BERT)
  • 关于LwRB环形缓冲区开源库的纯C++版本支持原子操作
  • 微信小程序Canvas画布绘制图片、文字、矩形、(椭)圆、直线
  • Unity Editor实用功能:Hierarchy面板的对象上绘制按按钮并响应
  • 解决录制的 mp4 视频文件在 windows 无法播放的问题
  • 一键与图片对话!LLM实现图片关键信息提取与交互
  • 洛谷 P8833 [传智杯 #3 决赛] 课程 讲解
  • 中国IT产经新闻:新能源汽车发展前景与燃油车的利弊之争
  • 一、数据结构
  • 案例分享:各行业销售岗位的KPI指标制定分享
  • 【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格
  • spring boot 2升级为spring boot 3中数据库连接池druid的问题
  • 客服系统配置之Nginx处理静态资源和动态请求
  • Golang 切片
  • 防止公司办公终端文件数据 | 资料外泄,——自动智能透明加密防泄密软件系统
  • C#-枚举
  • Java后端开发——SSM整合实验
  • VMware虚拟机安装Ubuntu
  • 用一个简单的例子说明单细胞分析中的dgCMatrix数据的结构
  • 【小工具】pixi-live2d-display,直接可用的live2d的交互网页/桌面应用
  • vulhub中的Nginx漏洞的详细解析
  • 如何实现公网访问GeoServe Web管理界面共享空间地理信息【内网穿透】
  • k8s-存储 11