天天看点

UVM的callback的使用(八)

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中派生一个类。

UVM的callback的使用(八)

其次,在base_test中把my_callback实例化:

UVM的callback的使用(八)

继续阅读