对于uvm_sequence_item,get_full_name()与get_name()一样! 因为它是不作为UVM树节点的,所以路径没有别的层次。 这点保留了uvm_object原本的函数性质。 u_tr.get_type_name()会打印出: “jerry_tr”。 实际上,在原始的uvm_object的get_type_name()传出的是,也就是无返回值的。 但是我们为什么看到此处打...
get_full_name(); uvm_test_top.env.i_agt.drv create时引号中的名字; 获取的是所在组件的名字; get_name(); drv create时引号中的名字; 获取的是所在组件的名字; get_type_name(); 类型名字:my_driver get_type(); 句柄名字:apb_drv uvm_top中config_db中传递interface的路径用的也是这个路径名字。
// In the TB env:uvm_config_db #(int)::set(this,"*","var",666);// In the TB driver:intget_value;if( !uvm_config_db #(int)::get(this,"*","var", get_value) ) begin `uvm_fatal(get_type_name(),"var is missing in config_db") endelsebegin `uvm_info(get_type_name(),...
224行定义了一个local和static修饰的this type类型实例me,me可以作为uvm_object_registry以T和Tname为参数的唯一实例,获取方式只有通过get,通过前面的学习我们知道这又是单例模式的一种使用。236行调用uvm_factory中定义的register将me注册,后面会将如何实现注册。 258行调用uvm_factory中的create_object_by_type方法创...
get_type_name()是一个宏,这个宏的可以和uvm_info一起用,打印层次信息,不过uvm message已经包含了层次结构了,所以用后的效果如下: 第七章 条件细节打印 我们在debug时有个一策略是想在run_phase之前,打印整个uvm testbench的结构以及factory configuration。这个打印应该放在什么phase里呢?这个phase应该是在bulid,con...
`uvm_info(get_type_name(), "TEST continous read transaction...", UVM_LOW) repeat(test_num) begin addr = this.get_rand_addr(); `uvm_do_with(single_read_seq, {addr == local::addr;}) void'(this.check_mem_data(addr, single_read_seq.data)); ...
1. get_type_name()是uvm_object类的一个内置函数,其解释如下: This function returns the type name of the object, whichis typically the type identifier enclosed in quotes. 1. 2. 带parameter的类需要用uvm_component_param_utils注册,注册时需要传递参数,如: ...
`uvm_info(get_full_name(),“reset done!!”,UVM_LOW); forever begin @(posedge itf.clk iff itf.reset_n &&itf.ordy && (~itf.empty)) begin display("outputdataisdisplay("outputdataistime); r_data = fifo_data::type_id::create(“req”); ...
`uvm_info(get_type_name(), rsp.sprint(), UVM_HIGH) assert(rsp.rsp) else $error("[RSPERR] %0t error response received!", $time); endtask function string sprint(); string s; s = {s, $sformatf("===\n")}; s = {s, $sformatf("chnl_generator object content is...
()},UVM_LOW)// set factory to allocate new_yorkstate whenever a state is createdfactory.set_type_override_by_type(state::get_type(),new_york::get_type());my_state2=state::type_id::create("my_state2",null);`uvm_info("INF02",{"my_state2.type=",my_state2.get_type_name()},...