1. 问题背景
一句话描述: 验证环境中,当激励完成发送时,由于DUT存在处理延迟,monitor在延迟一段时间后才能采集到DUT完整的输出,如何设计验证环境的结束机制?
此处的验证环境结束机制,可以认为是main_phase的结束控制,但并不单纯指UVM中phase的raise_objection和drop_objection机制,还包括由哪个组件完成raise和drop,组件之间如何进行结束握手,如何保证monitor能够采集到DUT完整的输出。
在uvm的框架结构里,sequence,sequencer,driver,monitor,scoreboard的逻辑关系如下。
sequence激励启动sequencer,通过driver发送到DUT中;monitor采集DUT的输出数据或状态,主动或被动地发送到scoreboard;scoreboard将RM和monitor地数据做比对,判断DUT的行为是否符合预期。
上述UVM组件在最后一个激励发送结束后,在时间轴上的大致顺序如下。
一般来说,验证环境的raise_objection和drop_objection会由sequence发起,避免在多个