【发布时间】:2022-01-20 05:39:21
【问题描述】:
我正在学习 UVM,并想知道反对是如何工作的。我认为以下代码(在我的派生代理中)执行 seq.start(sequencer);并在序列器完成后,执行 drop_objection 以完成模拟。如果是真的,即使我删除了 raise_objection 和 drop_objection,它也应该执行定序器的程序(向 DUT 发送 8 个序列项)。但是当我注释掉 raise_objection 和 drop_objection 时,即使 seq.start 应该已经被执行,模拟也没有做任何事情就完成了。请帮助我了解在这种情况下,异议在 UVM 中是如何工作的。完整的测试平台环境可以在这里找到: https://www.edaplayground.com/x/3_bM
task run_phase(uvm_phase phase);
// We raise objection to keep the test from completing
phase.raise_objection(this);
begin
my_sequence seq;
seq = my_sequence::type_id::create("seq");
seq.start(sequencer);
end
// We drop objection to allow the test to complete
phase.drop_objection(this);
endtask
【问题讨论】:
标签: uvm