module nt_recv_capture_fifo_merge_test
(
  // clock and resets
  input wire          clk,
  input wire          rstn,
  input wire          rst_sw,

  // meta data fifo input
  input wire [74:0]   fifo_meta_din_i,
  input wire          fifo_meta_wr_en_i,
  output wire         fifo_meta_full_o,

  // packet data fifo input
  input wire [63:0]   fifo_data_din_i,
  input wire          fifo_data_wr_en_i,
  output wire         fifo_data_full_o,

  // merged fifo output
  output wire [63:0]  fifo_din_o,
  output wire         fifo_wr_en_o,
  input wire          fifo_full_i
);

  wire [74:0] fifo_meta_dout;
  wire [63:0] fifo_data_dout;
  wire fifo_meta_rd_en, fifo_meta_empty;
  wire fifo_data_rd_en, fifo_data_empty;

  // instantiate module to be tested
  nt_recv_capture_fifo_merge nt_recv_capture_fifo_merge_inst (
    .clk(clk),
    .rstn(rstn),
    .rst_sw(rst_sw),
    .fifo_meta_dout_i(fifo_meta_dout),
    .fifo_meta_empty_i(fifo_meta_empty),
    .fifo_meta_rd_en_o(fifo_meta_rd_en),
    .fifo_data_dout_i(fifo_data_dout),
    .fifo_data_empty_i(fifo_data_empty),
    .fifo_data_rd_en_o(fifo_data_rd_en),
    .fifo_din_o(fifo_din_o),
    .fifo_wr_en_o(fifo_wr_en_o),
    .fifo_full_i(fifo_full_i)
  );

  // instantiate meta fifo
  nt_recv_capture_meta_fifo nt_recv_capture_meta_fifo_inst (
    .clk(clk),
    .srst(~rstn | rst_sw),
    .din(fifo_meta_din_i),
    .wr_en(fifo_meta_wr_en_i),
    .rd_en(fifo_meta_rd_en),
    .dout(fifo_meta_dout),
    .full(fifo_meta_full_o),
    .empty(fifo_meta_empty)
  );

  // instantiate data fifo
  nt_recv_capture_data_fifo nt_recv_capture_data_fifo_inst (
    .clk(clk),
    .srst(~rstn | rst_sw),
    .din(fifo_data_din_i),
    .wr_en(fifo_data_wr_en_i),
    .rd_en(fifo_data_rd_en),
    .dout(fifo_data_dout),
    .full(fifo_data_full_o),
    .empty(fifo_data_empty)
  );

endmodule