我正在尝试在UVM中使用'begin_tr'和'end_tr'方法。 我指的是https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.1a/html/files/base/uvm_transaction-svh.html
例如
task run_phase(uvm_phase phase);
// uart_frame frame;
forever begin
// get item from the sequencer
void'(begin_tr(req, "run_phase"));
seq_item_port.get_next_item(req);
frames_sent++;
// send the item to the DUT
send_to_dut(req);
// call sequencer's item_done
seq_item_port.item_done();
end_tr(req);
end
endtask : run_phase
我们可以看到上面的示例,begin_tr和end_tr只是在task()中实现的。
一旦我在task()的外部实现了'begin_tr'和'end_tr',那么我遇到了错误消息。
我是否必须仅在'task()'函数中实现'begin_tr'和'end_tr'?