利用回调函数在driver中收集覆盖率
文章目录
- 前言
- 1、在driver中添加回调函数
- 2、在回调函数中加入功能覆盖率
- 3、在测试用例中进行覆盖率收集
- 总结
前言
在UVM环境中,很多时候,我们通过driver,将数据包发送完成后,希望收集一下数据包的覆盖率,那么可以在driver中添加回调函数,利用回调函数收集覆盖率,本文主要记录一下,利用driver中的回调函数,来收集覆盖率的方法。
1、在driver中添加回调函数
在driver中添加回调函数的代码如下所示,这里添加了pre_send和post_send两个回调函数。
站在VIP开发者的视角,在driver中主要实现两个功能:
1、修改。修改driver的代码,利用`uvm_do_callbacks这个宏,加入需要添加的回调函数。
2、创建。创建一个回调函数的wrapper类,里边对回调函数进行虚拟化声明。
2、在回调函数中加入功能覆盖率
站在VIP使用者的视角,这里主要是对回调函数进行实现,具体包括:
1、定义。定义功能覆盖组,这是重点,需要根据不同的数据包,编写具体的功能覆盖点。
2、构造。构造功能覆盖组,利用new函数构造一下就可以了。
3、调用。在post_send回调函数中,对覆盖组的sample函数进行调用。
3、在测试用例中进行覆盖率收集
在具体的测试用例中,加入回调函数,进行功能覆盖率的收集,具体步骤包括:
1、声明。在测试用例中,声明回调类。
2、创建。利用new函数对其进行构造。
3、加入。将构造好的回调类加入到环境中。
总结
本文主要记录一下利用回调函数在driver中收集覆盖率的方法。