文章目录
前言
在UVM验证平台,callback机制的最大用处就是提高验证平台的可重用性;增加或者修改UVM组件的操作,增加新的功能,不需要创建复杂的OOP层次结构;还可以用于构建异常的测试案例。 VIP开发者预留callback接口,VIP使用者使用该接口。
提示:以下是本篇文章正文内容,下面案例可供参考
一、callback机制的功能
在UVM验证平台,callback机制的最大用处就是提高验证平台的可重用性;
增加或者修改UVM组件的操作,增加新的功能,不需要创建复杂的OOP层次结构;
还可以用于构建异常的测试案例。
VIP开发者预留callback接口,VIP使用者使用该接口。
二、callback机制的步骤
在VIP开发中实现callback的步骤主要有:
声明一个UVM callback空壳类;
在UVM组件中内嵌callback函数或任务;
从UVM callback空壳类中扩展UVM callback类;
在验证环境中创建并登记UVM callback实例。
1.声明一个callback空壳
通常都声明在同一个组件文件中;
所有的方法都声明为virtual;
函数体为空
2.在UVM组件内嵌callback函数或任务
在组建中登记UVM callback(`uvm_register_cb);
使用uvm_do_callbacks宏嵌入UVM callback函数或任务.
3. 从UVM callback空壳类中扩展UVM callback类
编写Callback函数具体实现方法(如:错误注入)
1).第一步的回调方法为空方法,什么操作也没有;
2).通过继承,覆盖上面定义的回调类中的回调方法:
如,通过扩展callback空壳类创建错误类error class,在callback中嵌入错误信息。
4. 在验证环境中创建并登记UVM callback实例
在测试案例中例化callback对象
创建并登记callback对象
1)在测试用例中创建并例化callback对象;
2)调用uvm_callbacks #(T, CB) :: add(t,cb)将callback对象添加到test;