UVM中,component的task phase是消耗仿真时间的,各个components需要在不同层次的task phase中同步信息。
UVM中通过objection mechanism来控制phase的执行,通过raise or drop objection来决定phase中事件的开始和停止。
当程序根据phase执行顺序,进入到某一个phase中时,它会收集此phase提起的所有的objection(每个component都可以raise objection)
当这个phase中所有的objection都被撤销(drop)之后,那么这个phase就执行结束。
components或sequence将在验证行为的开始 raise phase objection,在验证行为完成后drop phase objection。一旦phase里所有的objection都被dropped,该phase就结束了。
考虑一个例子,agent完成读写操作。通常可以在sequence 或者test中添加raise/drop objection。