uvm_event_pool的定义为:
typedef uvm_object_string_pool #(uvm_event) uvm_event_pool;
uvm_event_pool可以通过get来获取event变量,如果该变量没有被create,则会先create。
get函数原型:
virtual function T get(string key);
if(!pool.exists(key)) pool[key] = new(key);
return pool[key];
endfuntion
使用uvm_event_pool首先要获得的global_pool,如下
uvm_event_pool tb_pool;
initial begin
tb_pool=uvm_event_pool::get_global_pool();
end
然后将uvm_event加入pool中, 例如:
uvm_event e_done;
uvm_event_pool tb_pool;
initial begin
tb_pool = uvm_event_pool::get_global_pool();
e_done = tb_pool.get("e_done");
end