可以重载 uvm_sequence_item uvm_sequence uvm_component. 都是在case的build_phase中调,而且都是直接用factory的方法
第9章 UVM的代码重用 9.1 callback机制
只给callback机制做了笔记。
uvm的callback和vmm的差不多。 代码步骤如下:
1) 先实现一个uvm_callback的派生类A,以及A的virtual task/function 2) typedef uvm_callbacks#(my_driver,A) A_pool 注意s
3) 在my_driver中注册callback: `uvm_register_cb(my)driver,A) 4) my_driver中使用 `uvm_do_callbacks(my_driver,A,task()) 注意s 5) 从A派生出一个实际用到的类 my_callback , 实现task
6) 在case的connect_phase中实例化my_callback(假设是my_cb),并create它,然后
A_pool::add(my_driver的路径指针,my_cb) -------- 因为my_driver是在main_phase里调callback的,所以要在main_phase前面做这个工作
9.1.4章节示例代码: