How to define transaction class when I used parameterized interface?

In reply to chr_sue:

I’m still confused that how to reuse the VIP.In fact, my parameters package is local to my project. But my agent how to use different parameters ? Can you write an example ?
For example:


 package params_pkg;
    DATA_WIDTH0 = 8;
    DATA_WIDTH1 = 16;
 endpackage

  import params_pkg::*;
  module top;
   my_bus#(DATA_WIDTH0) bus0;
   my_bus#(DATA_WIDTH1) bus1;
   ...
  endmodule

 class my_driver extend uvm_driver#(my_transaction);
     logic[DATA_WIDTH0 -1 : 0] DATA;
     ...
 endclass

If I define like this, I can use parameterized interface. But how can I used different parameters in my driver ?