对于uvm_component,这个get_type_name(),就是class的名字。 4. get_type_name()会打印出: “jerry_component”。 对于uvm_component,这个get_type_name(),就是class的名字。 02、uvm_sequence_item中get_name系列小函数 classjerry_trextendsuvm_sequence_item; … `uvm_object_utils_begin( jerry_tr ) … ...
第六章 使用get_type_name() get_type_name()是一个宏,这个宏的可以和uvm_info一起用,打印层次信息,不过uvm message已经包含了层次结构了,所以用后的效果如下: 第七章 条件细节打印 我们在debug时有个一策略是想在run_phase之前,打印整个uvm testbench的结构以及factory configuration。这个打印应该放在什么phase...
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的路径用的也是这个路径名字。
`uvm_info(get_type_name(), req.sprint(), UVM_HIGH) this.req_mb.put(req); this.rsp_mb.get(rsp); `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; ...
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注册,注册时需要传递参数,如: ...
classreg_access_sequenceextendsuvm_sequence#(bus_transaction);stringtID=get_type_name();bit[15:0]addr;bit[15:0]rdata;bit[15:0]wdata;bitis_wr;virtualtaskbody();bus_transactiontr;tr=new("tr");tr.addr=this.addr;tr.wr_data=this.wdata;tr.bus_op=(is_wrBUS_WR:BUS_RD);`uvm_info(tID...
function void post_trigger(uvm_event e, uvm_object data = null);`uvm_info("EPOSTRIG",$sformatf("after trigger event %s",e.get_name()),UVM_LOW)endfunction endclassclasscomp1extendsuvm_component;uvm_event e1;`uvm_component_utils(comp1) ...
sequence 中在 uvm_do macro 之后调 get_reponse(rsp) task, 而在 driver 中增加的代码较多: 章节示例代码get_reponse 和 put_response 对应。 49、 注意 driver 中必须有 set_id_info 函数。put_response 可以省略:需要item_done 函数带 rsp 参数: (rsp) 但是当有多次rsp 的时候,就不能这么用了。 多次...
这个uvm_dpi_get_next_arg_c函数,如果参数为1,表示从最开始获取,通过vpi_get_vlog_info函数,获取到cmdline的所有参数,然后通过walk_level函数,获取到总共有多少个有效的cmdline参数(不包含 –f 文件 的参数),保存到argc_total中。接着申请一块空间,使用walk_level函数,将有效的cmdline参数,保存到argc_ptr中。
-来源网络,仅供个人学习参考《UVM实战(卷1)》学习笔记看了第1/2/3/4/5/6/8/9.1这几个章节。第一章是综述,第二章是一个具体的例子,学习笔记从第三章相关内容开始。我个人觉得UVM重要的部分(特点的部分):1)factory机制(overrideconfig_db)2)TLM传递3)phase机制4)sequence-sequencer以及virtualseq/sqr内容中的...