【发布时间】:2016-05-26 12:27:06
【问题描述】:
我有一个与 UVM 阶段有关的问题。据我了解 UVM 阶段,例如build_phase、connect_phases,只对uvm_component有效,是派生类。
这意味着从 uvm_transaction 派生的所有类,即 uvm_sequence,uvm_sequence_item 不支持这些阶段。而在代码中如果我们这样写
class setupSeq extends uvm_sequence #(seqItem);
`uvm_object_utils(setupSeq )
function build_phase (uvm_phase phase);
req = seqItem::type_id::create("req");
endfunction
task body();
start_item(req);
…
finish_item(req);
endtask
…
endclass
这将产生模拟错误,因为 build_phase 将永远不会被调用,并且主体任务无法识别“req”对象。
所以我的问题是 – 为什么 uvm_transaction 即 uvm_sequence 类不支持阶段?
【问题讨论】:
标签: system-verilog uvm