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发起,避免在多个组件中raise和drop,以免带来控制上的混乱。而如果只在sequence激励发送结束后,通过raise和drop结束仿真,由于DUT存在处理延迟,monitor不能保证接收到完整的DUT输出。即上图中环境结束点应该在t5,而不应该在t2结束。

最低0.47元/天 解锁文章
1689

被折叠的 条评论
为什么被折叠?



