UVM_9:代码可重用性callback机制


前言

在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;
在这里插入图片描述

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值