UVM内callback机制的使用

callback机制提高平台的可重用性,其使得在用例里面可以加入一些新的特性,而不需要修改验证平台。
call的使用可以分为以下几步:
1.定义一个callback基类,基类需要继承自uvm_callback;同时需要定义callback需要执行的方法,方法需要定义为虚方法以被重载;callback基类定义如下图所示:

class drv_cb extends uvm_callback;
    virtual task pre_send(driver drv,ref tran);
    endtask
emdclass

2.申明一个drv_cb的pool

typedef uvm_callbacks#(driver,drv_cb) drv_cb_pool;

3.driver内call的使用包括两个部分:
1)·uvm_register_cb声明;

typedef class drv_cb;
class drv extends uvm_driver#(tran);
    `uvm_component_utils(drv)
    `uvm_register_cb(drv,drv_cb)
endclass

2)使用·uvm_do_callback调用;

while(1) begin
    seq_itrm_port.get_next_item(req);
    `uvm_do_callbacks(drv,drv_cb,pre_send(this,req))
    drive_pkt(req);
    seq_item_port.item_done();
end
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值