博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UVM:9.1.4 callback 机制的使用
阅读量:4222 次
发布时间:2019-05-26

本文共 611 字,大约阅读时间需要 2 分钟。

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。

你可能感兴趣的文章
重学多线程(五)—— Unsafe类
查看>>
重学Java集合类(二)—— List接口
查看>>
重学Java集合类(三)—— Map接口(上)
查看>>
重学Java集合类(三)—— Map接口(下)
查看>>
重学Java集合类(四)—— Set接口
查看>>
重学Java集合类(五)—— 集合类的遍历
查看>>
重学Java虚拟机(一)—— JVM内存模型
查看>>
重学Java虚拟机(二)—— JVM内存管理
查看>>
重学Java虚拟机(三)—— Java类文件结构
查看>>
重学Java虚拟机(四)—— 类加载机制
查看>>
重学Java集合类(六)—— 红黑树和TreeMap
查看>>
Java的四种引用方式
查看>>
重学Java集合类(七)—— ConcurrentHashMap
查看>>
重学多线程(六)—— 原子操作类
查看>>
Java内部类学习
查看>>
Netty框架学习之路(一)—— Java网络IO模型
查看>>
如何编写一份优雅的Spring配置文件
查看>>
重学设计模式(一)—— 简单工厂、工厂方法、抽象工厂
查看>>
重学设计模式(二)—— 单例模式
查看>>
Netty框架学习之路(二)—— 一个简单的Netty程序
查看>>