我有简单的main_phase:
virtual task main_phase(uvm_phase phase);
super.main_phase(phase);
phase.raise_objection( this );
#2us;
phase.drop_objection( this );
endtask : main_phase
此测试将超时,但如果我注释了raise_objection并且drop_objection测试将正确完成,显然不会执行#2us。
基于调试,似乎drop_objection不会触发m_events []。all_dropped,这需要完成阶段。 原因在于m_evens uvm_root对象,但是drop_objection trys用于测试对象,因此它未匹配。
有什么建议可能出错吗? 我正在使用UVM-1.2 谢谢,
答案 0 :(得分:1)
感谢您的建议。 这就是问题所在。最近有人添加了基础测试排水时间。我的测试很短,所以我在命令行添加了很短的时间。我希望生成的错误更具描述性。我通过运行小测试发现了这一点,并且在UVM阶段执行中,最后一件事就是按预期排水时间。 艾伯特,