• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

SOC/IP验证工程师

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

field automation常用函数

1.Copy函数用于实例的复制,其原型为:
Extern function void copy(uvm_object rhs);
如果要把某个A实例复制到B实例中,应该使用B.copy(A)。在使用此函数前,B实例必须已经使用new函数分配好了内存空间;

2.Compare函数用于比较两个实例是否一样,其原型为:
Extern function bit compare(uvm_object rhs, uvm_comparer comparer=null);
如果要比较A和B是否一样,可以使用A.compare(B),也可以使用B.compare(A)。当两者一致时,返回为1,否则返回0;

3.Pack_bytes函数用于将所有的字段打包成byte流,原型为:
Extern function int pack_bytes(ref byte unsigned bytestream[], input uvm_packer packer=null);

4.Unpack_bytes函数用于将一个byte流逐一恢复到某个类的实例中,其原型为:
Extern function int unpack_bytes(ref byte unsigned bytestream[], input uvm_packer packer=null);

5.Pack函数用于将所有的字段打包成bit流,其原型为:
Extern function bit pack(ref bit bitstream[], input uvm_packer packer=null);

6.unpack函数用于将一个bit流逐一恢复到某个类的实例中,其原型为:
Extern function in unpack(ref bit bitstream[], input uvm_packer packer=null);

7.Pack_ints函数用于将所有的字段打包成int(4个byte,或者dword)流,其原型为:
Extern function int pack_ints(ref int unsigned intstream[], input uvm_packer packer=null);

8.unPack_ints函数用于将一个int流逐一恢复到某个类的实例中,其原型为:
Extern function int unpack_ints(ref int unsigned intstream[], input uvm_packer packer=null);

9.Print函数用于打印所有的字段;

10.Clone函数,原型为:
Extern virtual function uvm_object clone();

在uvm_object中有clone函数,它用于分配一块内存空间,并把另一个实例复制到这块新的内存空间中。Clone函数的使用方式如下:

Class my_env extends uvm_env;
  Virtual function void build_phase(uvm_phase phase);
    A a1;
    A a2;
    a1 = new(“a1”);
    b1=new(“b1”);
    $cast(a2, a1.clone());
  Endfunction : build_phase
Endclass

上述的clone函数无法用于uvm_component中,因为一旦使用后,新clone出来的类,其parent参数无法指定;
Copy函数也是uvm_object的一个函数,在使用copy前,目标实例已经使用new函数分配好了内存空间,而使用clone函数时,目标实例可以只是一个空指针。换言之,clone=new+copy;
虽然uvm_component无法使用clone函数,但是可以使用copy函数。因为在调用copy之前,目标实例已经完成了实例化,其parent参数已经指定了;
uvm_component的另外一个限制是,位于同一父节点下的不同component,在实例化时不能使用相同的名字。

posted on 2026-02-01 15:43  SOC验证工程师  阅读(0)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3