UVM:9.1.4 callback 机制的使用

本文详细介绍了UVM中Callback机制的实现方式,包括如何定义和使用预处理回调(pre_tran)。通过具体步骤展示了VIP开发者及用户如何利用这一机制来增强验证平台的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.要实现真正的pre_tran,首先要定义上节所说的类A:


1)A 一定要从uvm_callback 派生,pre_tran 一定要是virtual,因为要重载。

2)然后声明一个A_pool。除了指明这是一个A 类型的池子,还有指明这个池子会被那个类使用。


2之后,在my_driver 中如下:


1)声明与A_pool类似,要指明my_driver 和A。

2)main_phase 中调用pre_tran 使用了一个宏。

第一个是调用pre_tran 的类的名字,my_driver。

第二个是哪个类具有pre_tran,A。

第三个是调用的function/task,pre_tran,要顺便给出pre_tran 的参数。


3.以上都是VIP 的开发者应该做的事情,作为VIP 的用户,做如下:

1)首先从A 派生一个类:


2)例化,并加入到A_pool 中:


例化在connect_phase 中完成,然后将my_cb 加入A_pool 中。同时指定是给哪个my_driver 使用的。因为很可能整个base_test 例化多个my_env,从而有多个my_driver。


4.至此一个简单的callback 机制就完成了。大部分callback 机制的使用都与这个例子类似。总结:

1)VIP 开发者。

2)VIP 使用者。


5.既可以使用driver 的factory机制重载,也可以使用callback。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值