get_type --- 返回此对象的类型代理(包装器)。 get_type_name --- 此函数返回这个对象的类型名字,这个类型名字通常使用引号括起来的类型标识符。 new functionnew( stringname ="" ) 使用给定的实例名创建一个新的uvm_object。如果没有提供name,则对象未命名。 set_name virtualfunctionvoidset_name( stringna...
对于uvm_sequence_item,get_full_name()与get_name()一样! 因为它是不作为UVM树节点的,所以路径没有别的层次。 这点保留了uvm_object原本的函数性质。 u_tr.get_type_name()会打印出: “jerry_tr”。 实际上,在原始的uvm_object的get_type_name()传出的是,也就是无返回值的。 但是我们为什么看到此处打...
uvm_component 派生自uvm_object,而且并不是直接派生,在两者之间还有一个uvm_report_object。 uvm_component类派生关系图 uvm_object 是一个相对简单的类,它主要提供了两大类的方法接口: 用于field_automation 机制的方法,如print, copy, pack 等; 用于鉴别身份的方法,如 get_name, get_type_name, get_full_na...
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方法创...
externfunctionuvm_componentget_child(string name); get_children函数,为了得到所有的child 代码语言:javascript 代码运行次数:0 复制 Cloud Studio代码运行 externfunctionvoidget_children(ref uvm_component children[$]);uvm_component array[$];my_comp.get_children(array);foreach(array[i])do_something(array...
static function bit get(uvm_component cntxt,string inst_name,string field_name,inout T value);它的四个参数的定义与set大致一样,不同的是 前两个参数:就像是两个要去见面的朋友一样,比如一个人(set)从洛阳去另一个人(get)所在的西安。从洛阳到西安的路线(由cntxt和inst_name构成的层级路线)是...
UVM中的类绝大部分都继承于 uvm_object, 每一个实例对象都有一个唯一的id,可以通过 get_inst_id 查看: object.sprint()中也会显示每个instance的value值,就是inst_id: ID作为唯一标识,在sequence, transaction中也有使用到。 m_sequence_id : get_sequence_id / set_sequence_id ...
`uvm_fatal(get_type_name(),"var is missing in config_db") endelsebegin `uvm_info(get_type_name(), $sformatf("get var from env"), UVM_LOW) end 那么在log中 可以找到以下打印信息: UVM_INFO …/uvm-1.2/src/base/uvm_resource_db.svh(121) @0.000ns: reporter// db类型 匹配字符串 数据...
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) ...
`uvm_object_utils(apb_master_single_write_sequence) function new(string name=""); super.new(name); endfunction : new virtual task body(); `uvm_info(get_type_name(),"Starting sequence", UVM_HIGH) `uvm_do_with(req, {trans_kind == WRITE; addr == local::addr; data == local::data...