uvm_driver也是一个参数化的类, 应该在定义driver时指明此driver要驱动的transaction的类型:
class my_driver extends uvm_driver#(my_transaction);
这样定义的好处是可以直接使用uvm_driver中的某些预先定义好的成员变量, 如uvm_driver中有成员变量req, 它的类型就是传递给uvm_driver的参数, 在这里就是my_transaction, 可以直接使用req:
参数化继承时,默认例化了包,例化名默认req, 相当于默认执行了: packet req = packet::type_id::create("req", this);
语句。
相比之前,不需再声明
my_transaction
,直接使用req
即可!