UVM中关于资源池uvm_pool的理解

本文介绍了UVM中的uvm_pool类,它是一个基础的受保护的关联数组,常用于实现哈希表功能。uvm_pool派生出如uvm_object_string_pool等子类,在UVM代码中扮演重要角色。通过示例代码展示了如何添加和检查元素,帮助理解其基本用法。
摘要由CSDN通过智能技术生成

uvm中资源池uvm_pool是一个很基础的类,由此派生出uvm_object_string_pool等常见的类。uvm_pool在UVM的代码里其实也占用着重要的作用。当需要hash表的时候可以使用uvm_pool实现。

uvm_pool本质上就是一个受保护的关联数组。这个定义位于uvm源码的uvm_pool.svh中。

class uvm_pool #(type KEY=int, T=uvm_void) extends uvm_object;

  const static string type_name = "uvm_pool";

  typedef uvm_pool #(KEY,T) this_type;

  static protected this_type m_global_pool;
  protected T pool[KEY];

         uvm_pool有十几个函数,这里不一一赘述,有兴趣的可以看一下uvm的源码。这里给出一个简单的应用案例:

initial begin
   uvm_pool #(string, int) ev;
   ev = new("ev");

   ev.add("one", 12);
   if(ev.exists("one")) begin
      $display("[debug] ev[%s] = %d", "one", ev.get("one"));
   end
end

运行如上代码,可以显示:

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值