get_global_queue() 静态函数,只能通过uvm_queue静态调用,完成实例化。 get_global(index) 静态函数,只能通过uvm_queue静态调用,返回队列中的元素值,index的范围是[0,size()-1]。 get(index)虚函数,通过句柄调用,返回队列中的元素值,index的范围是[0,size()-1]。 size() 虚函数,通过句柄调用,返回队列的长度。
uvm_queue实现了基于类的动态队列,在sv 队列基础上,主要更改/新加了以下方法: get_global_queue(),获取全局队列,没有全局队列的话,新建全局队列; get_global(int index),获取全局队列并返回第index个元素; get(int index),返回队列第index个元素,index超出范围会报warning; size(),返回队列的长度; insert(int ...
uvm_queue实现了基于类的动态队列,在sv 队列基础上,主要新加了以下方法:● get_global_queue(),获取全局队列,没有全局队列的话,新建全局队列;● get_global(int index),获取全局队列并返回第index个元素;● covert2string(),队列转换为字符串 这个class将sv的queue封装,并引入了单例模式,用于全局共享的一个queue...
m_global_pool是uvm_pool #(KEY, T)类型的静态类,通过静态方法get_global_pool可以获得唯一的实例。uvm_queue #(T)和uvm_pool#(type KEY=int, T=uvm_void)类似,实现一个class-based dynamic queue. # uvm_pool.svh class uvm_pool #(type KEY=int, T=uvm_void) extends uvm_object; const static st...
if (!uvm_config_db#(virtual DUT_if)::get(this, "", "DUT_vif", vif)) `uvm_fatal("TEST", "Did not get vif") uvm_config_db#(virtual DUT_if)::set(this, "e0.a0.*", "DUT_vif", vif);// endfunction 这里我们注意,get函数的头两个参数就很简单了,因为跟set一样,头两个参数的作...
由于set函数的第一个参数是uvm_root::get(),所以寄信人变成了uvm_top。在这种情况下,只能比较寄信的时间。UVM的build_phase是自上而下执行的,my_case0的build_phase先于my_env的build_phase执行。所以my_env对pre_num的设置在后,其设置成为最终的设置。假如uvm_test_top中set函数的第一个参数是this,而env中...
class1 copy; uvm_object copy1; uvm_event event1; event1=uvm_event_pool::get_global("event000"); $display("start wait"); event1.wait_trigger_data(copy1); $cast(copy, copy1); $display("get a %0d", copy.a); end initial begin #10; end endmodule输出:start...
if((rhs !=null) && (uvm_global_copy_map.get(rhs) != null)) begin return; end if(rhs==null) begin uvm_report_warning("NULLCP", "A null object was supplied to copy; copy is ignored", UVM_NONE); return; end uvm_global_copy_map.set(rhs, this); ...
3、往资源池中增加/get元素 原来没有cc,然后就创建了一个cc,但是它的值是0; 整体就像queue的作用 2.3 uvm_object_string_pool classuvm_object_string_pool#(typeT=uvm_object)extendsuvm_pool#(string,T); 用来管理uvm_barrier和uvm_event对象,第一个参数是string,延申出来uvm_barrier和uvm_event,他们的KEY...
find("*apb_driver*"); // Gets queue of all handles that match the pattern comp_q = uvm_top.find_all("*apb_driver*"); foreach (comp_q[i]) begin `uvm_info (get_type_name(), $sformatf("Found component %s", comp_q[i].get_full_name()), UVM_LOW) end endfunction endclass ...