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实例化:
新闻热点
疑难解答