objection机制用来控制验证平台的关闭。phase和objection与UVM验证平台息息相关,phase恰如铁轨,让UVM这趟列车在铁轨上向前运行,不会脱轨,不会跳过某一段而直接到达后一段,objection则更像是能量,给列车提供能量,控制着这趟列车的起始和终止。
在一个实际的验证平台中,通常会在以下两种objection的控制策略中选择一种:
第一种是在scoreboard中进行控制。通过config_db::set的方式设置收集到的transaction的数量pkt_num,当收集到足够数量的transaction后跳出循环。采用fork…join_any语句,一方面收集预期transaction,另一方面收集实际transaction。
第二种是在sequence中提起sequencer的objection,当sequence完成后,再撤销此objection。
以上两种方式在验证平台中都有应用,其中第二种用得最多,这种方式是UVM提倡的方式。UVM的设计哲学就是全部由sequence来控制激励的生成,因此一般情况下只在sequence中控制objection。
更多相关阅读
UVM中run phase和main phase区别
UVM平台结构及每个组件的作用
作者:谷公子
首发博客:https://blog.csdn.net/W1Z1Q/article/details/100996900
更多IC设计相关的文章请关注IC设计极术专栏,每日更新。