Callback的使用:
作用:提高验证平台的复用性。
UVM中的callback的使用方法:
例子:只涉及到一个类,Mac_transaction。
Task mii_driver::main_phase();
…….
While(1) begin
Seq_item_port.get_next_item(req);
`uvm_do_callbacks(mii_driver,A,pre_tran(this,req))
………
End
Endtask
Uvm_do_callback宏的第一个参数是调用pre_tran的类的名字,第二个参数是指哪个类具有pre_tran,第三个参数是调用的是哪个函数(任务),在指明pre_tran时,要顺便给出pre_tran的参数。
类A的定义:
Class A extends uvm_callback;
Virtual task pre_tran(mii_driver mii_drv,ref mii_transaction tr);
Endtask
Endclass
建立新的测试用例,只需从A中派生一个类。
其次,在base_test中把my_callback实例化: