在 testbench 的搭建以及仿真的过程中,我们或多或少需要输出一些调试信息,我们需要能够方便快捷地关闭或者开启这些调试信息,如何做到这一点?
一种比较简单的方法,就是给$display()加上宏,在仿真的开始定义该宏的值,在每一个打印信息前面都加个宏判断,从而确定调试信息是否打印出来。但是这样子带来一个问题,就是如果我们要将调试信息分类就需要定义好几个宏。比如调试 testbench 中某一个 component 时候,仅仅需要输出该模块的打印信息,这样子就比较麻烦。
在基于 UVM 的测试平台中, UVM 中提供了一种内置机制来控制哪些信息被打印出来以及能够定义消息之后 testbench 的动作。
UVM 中一共可以通过如下方式来实现输出信息的控制:
1. 通过控制 ID 来实现不同的输出控制。
2. 通过设置不同 ID 的信息报告冗余级别。
3. 通过设置不同 ID 的 action。
UVM 能够实现下面的动作:
1. 设置一个全局的属性来决定该 testbench 所属的消息是否输出,例如设置一个组件(compoment)的属性来决定该组件所的消息是否输出(set_report_verbosity_level_hier ())或者设置一个消息的属性来决定该消息是否输出。
2. 设置一个组件中不同属性和不同 ID 的消息出现之后 testbench 的行为。
作者:验证哥布林
原文链接:https://mp.weixin.qq.com/s/Vh3C500ndEDDx1NNv8DMdg
微信公众号:
推荐阅读
更多IC设计技术干货请关注IC设计技术专栏