Hi, I have defined the follow
typedef mailbox #(transaction) stream_pkt_mbox;
class transaction #(parameter data_bus_width = 8, address_bus_width = 32);
rand bit [data_bus_width-1:0] data;
rand bit [address_bus_width-1:0] addr;
endclass : transaction
class stream_packet_driver #(parameter data_bus_width = 8, address_bus_width = 32);
stream_pkt_mbox mbox_pkt_dvr;
transaction pkt_transaction;
endclass
Question is, in different places of my testbench, I wanted to call this stream_packet_driver with different data/address_bus_width. How do I pass the new data/address_bus_width down to the mailbox level?
For example,
class bus1_driver #(parameter data_bus_width = 16, address_bus_width = 16);
stream_packet_driver #(data_bus_width,address_bus_width) bus1_dvr;
stream_pkt_mbox bus1_dvr_mbox; //HOW TO PASS NEW PARAMETER VALUES????
endclass
class bus2_driver #(parameter data_bus_width = 8, address_bus_width = 24);
stream_packet_driver #(data_bus_width,address_bus_width) bus2_dvr;
stream_pkt_mbox bus2_dvr_mbox; //HOW TO PASS NEW PARAMETER VALUES????
endclass