在uvm中,我们经常使用clone()来拷贝对象的一个副本,clone()会将对象复制一份,并返回这个复制版本的句柄。
uvm中关于clone()的原始代码如下:
可以看到,clone的本质其实就是create(new) + copy。
而对于uvm中的copy(),在《uvm实战》书里面有如下的解释:
因此,当我们使用clone时,只会clone已经使用uvm_field宏注册的成员,未注册的成员是不会被clone的,仍然是new出来的原始值。
在uvm中,我们经常使用clone()来拷贝对象的一个副本,clone()会将对象复制一份,并返回这个复制版本的句柄。
uvm中关于clone()的原始代码如下:
可以看到,clone的本质其实就是create(new) + copy。
而对于uvm中的copy(),在《uvm实战》书里面有如下的解释:
因此,当我们使用clone时,只会clone已经使用uvm_field宏注册的成员,未注册的成员是不会被clone的,仍然是new出来的原始值。