本文共 713 字,大约阅读时间需要 2 分钟。
1.UVM 可以使sequence 在一定时间内不参与仲裁,令此sequence 失效。
2.sequencer 在仲裁时,查看sequence 的is_relevant 函数返回的结果。如果为1,说明有效,否则无效。可以重载is_relevant 函数是sequence 失效:
5个0才对!
3.结果:
1)is_relevant 与grab和lock是完全相反的。
2)is_relevant 使sequence 主动放弃sequencer 的使用权。grab 和lock 抢占sequencer 的使用权。
4.wait_for_relevant 也与sequence 的有效性相关:
结果:
1)sequencer 发现其上启动的所有sequence 都无效时,会调用wait_for_relevant 并等待sequence 变有效。(是被停掉的那个,还是所有的?sequence0 最先无效,sequence1 发完才无效,然后调用wait_for_relevant)
2)sequence0和 sequence1 同时启动,发送3transaction 后,sequence0 变为无效,一直发送sequence1,都发完后,发现sequence0 无效,会调用wait_for_relevant。
3)sequence0 的实效使自己控制的,变的有效是其他sequence 控制的
4)如果sequence1 的transaction 发送完毕,而sequence0 没有重载wait_for_relevant 任务,将会错误:
is_relevant 和wait_for_relevant 一般应成对重载。