Duplicate items in uvm_tlm_analysis_fifo used in scoreboard

In reply to bmaassar:

What is the objective of this piece of code?

// Output packets thread
      begin
        fork  
          begin
            for (int i = 0; i < num_outs; i++) begin
              fork
                automatic int j = i;
                out_pkt_thread(j);
              join_none
            end
            wait fork;
          end
        join
      end

I do not understand your fork/join constructs. Could you please explain what is the reason for this.

UVM_INFO scoreboard.svh(311) @ 20328742000: uvm_test_top.m_env.sb [SCOREBOARD: Read a packet in[0]:]

Is indicating there is no link_id.
The TLM scoreboard does not know anything about time. It knows only the order of your data.
Something like ‘# 1ps’ does not help here.