u_tr.get_name() 会打印出: “jerry_is_good”。 uvm_sequence_item中的get_name函数与uvm_component一样,是打印“new()”时候传入的字符串! u_tr.get_full_name()会打印出: “jerry_is_good”。//注意,这点和uvm_component不一样 注意!!! 对于uvm_sequence_item,get_full_name()与get_name()一样...
set_name --- 设置此对象的实例名,覆盖先前给出的任何名称。 get_name --- 返回对象的名称,由new构造函数中的name参数或set_name方法提供。 get_full_name --- 返回此对象的完整层次名字。 get_type --- 返回此对象的类型代理(包装器)。 get_type_name --- 此函数返回这个对象的类型名字,这个类型名字通...
get_name() 函数 返回对象的名称,该对象的名称由new构造函数或set_name()方法提供。get_full_name() 返回对象的完整层次结构名称。对于uvm_components,这在打印语句中使用时很有用,因为它显示了组件的完整层次结构。对于没有层次结构的sequence或配置对象,与get_name()打印相同的值22、ACTIVE agent与PASSIVE agent...
1)get 的第一个参数必须是一个component,而sequence 不是component,所以这里不能用this 指针,只能用null 或者 uvm_root::get()。 2)使用null是,UVM 会自动将其替换为uvm_root::get(),再加get_full_name(),可以完整得到此sequence 的路径。 4.打印get_full_name:...
1、get_full_name()获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进⾏了重载,实现输出从uvm_test_top到当前节点的路径(是通过执⾏m_set_full_name是保存路径在m_name中)。返回值如:env.agt.drv(这些名字不是类名,是实例名字)2、get()这个函数在很多类中都有,⽐如uvm_...
每个组件在树结构中的hierarchy路径则由get_full_name函数获取。 uvm_reg层次化结构的实现机制 无独有偶,parent和children机制除了在uvm_component中使用,在uvm_reg中也看到了层次化结构的机制。 uvm_reg_block,uvm_reg和uvm_field是依次包含的关系。uvm_reg_block中包含多个uvm_reg,uvm_reg中存在多个uvm_field。
先说component。使用get_full_name()可以获得component的路径,也就是在整个树形结构中的层次关系。最顶层的module top例化之后的名字为__top__,而testcase的名称为uvm_test_top,所显示的绝对路径会从uvm_test_top开始。 例如driver,在这张图中的绝对路径为: uvm_test_top.env.i_agt.drv。
sequencer.get_full_name,"'"},UVM_MEDIUM) end m_sequencer = sequencer; m_adapter = adapter; endfunction 对adapter的调用发生在uvm_reg_map的内部,详细调用reg2bus和bus2reg的过程见下节: 寄存器模型组成 uvm_reg_field:包含uvm_reg_data_t类型的三个成员变量value,m_mirrored,m_desire。
(response_queue.size() < response_queue_depth))beginresponse_queue.push_back(response);return;endif(response_queue_error_report_disabled ==0)beginuvm_report_error(get_full_name(),"Response queue overflow, response was dropped", UVM_NONE);endendfunction ...
task body(); apb_rw rw_trans; repeat(10) begin rw_trans = apb_rw::type_id::create(.name("rw_trans"),.contxt(get_full_name())); start_item(rw_trans); assert(rw_trans.randomize()); finish_item(rw_trans); end endtask task body(); apb_rw rw_trans; repeat(10) begin r...