Вот первый метод (вы не знаете, сколько возражений было подано):
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