我处于运行阶段,可以说我提出了20个反对意见。我想结束所有已经提出的20个反对意见,并在同一阶段提出20个新的反对意见,而不必跳到下一阶段。有人可以建议如何实现吗?
答案 0 :(得分:0)
这是第一种方法(您不知道提出了多少反对意见):
phase.raise_objection(this);
phase.raise_objection(this);
//your code here
m_phase.drop_objection(this, "", m_phase.get_objection_count(this));
这是相同的方法(假设您知道提出了多少反对意见):
phase.raise_objection(this, "raise 3 objections", 3);
//your code here
m_phase.drop_objection(this, "drop 3 objections", 3);
end
方法较少,但值得一提:
`uvm_info(get_type_name(), $sformatf("Dropping all objections now"), UVM_MEDIUM)
for (int i=0 ; m_phase.get_objection_count(this) > 0; i++) begin
`uvm_info(get_type_name(), $sformatf("Dropping objection #%d", i), UVM_MEDIUM)
m_phase.drop_objection(this);
end
您可以在此处找到有关uvm_phase类的更多信息: https://verificationacademy.com/verification-methodology-reference/uvm/docs_1.2/html/files/base/uvm_phase-svh.html
我还为这些示例编写了代码,供您在这里尝试: https://www.edaplayground.com/x/2KLd