In reply to ghosh:
task scoreboard::compare_data();
logic [47:0] exp_data[4];
logic [47:0] act_data[4];
for(int j=0;j<4;j++) begin
automatic int i = j;
fork
forever begin
wait(ref_data_q[i].size() >= 1 && dut_data_q[i].size() >= 1);
exp_data[i] = ref_data_q[i].pop_front();
act_data[i] = dut_data_q[i].pop_front();
if(exp_data[i] !== act_data[i])
`uvm_fatal("SB",$sformatf("Data mismatch !!! Match count so far %0d, Exp_data=%0h::Act_data=%0h",match_count[i],exp_data[i],act_data[i]))
else
`uvm_info("SB",$sformatf("Data Correct !!! Match count so far %0d, Exp_data=%0h::Act_data=%0h",match_count[i],exp_data[i],act_data[i]),UVM_DEBUG)
match_count[i]++;
end
join_none
end
endtask //compare_data