A query about push_back and pop_front

In reply to cgales:

I tried to update the code referring to your suggestion but it still failed at the same issue.



...
my_trans emu_queue[$];
my_trans sim_queue[$];
...
task write_sim(my_trans tr);
    my_trans clone_tr;
    $cast(clone_tr, tr.clone());
    sim_queue.push_back(clone_tr);
endtask
 
task write_emu(my_trans tr);
    my_trans clone_tr;
    $cast(clone_tr, tr.clone());
    emu_queue.push_back(clone_tr);
endtask
 
task compare(uvm_phase phase);
 
    tr = new(“tr”);
    tr_emu = new(“tr_emu”);
 
    forever begin
        wait(emu_queue.size && sim_queue.size)
 
        tr_emu = emu_queue.pop_front();
        tr     = sim_queue.pop_front();
 
        tr.print();
        tr_emu.print();
 
        if (!tr.compare(tr_emu)) begin
            `uvm_fatal(get_type_name(), " transcation is not match")
        end
        ...
    end
endtask