In reply to Srini @ CVCblr.com:
Quick update - below is the code along with some results, hopefully this is close to what you were looking for (In my case there are 3 sequences running in parallel on a single SQR).
class vl_rgb_2_yuv_sequencer extends uvm_sequencer #(vl_rgb_2_yuv_xactn);
`uvm_component_utils(vl_rgb_2_yuv_sequencer)
function new(string name, uvm_component parent);
super.new(name,parent);
endfunction : new
virtual task wait_for_grant(uvm_sequence_base sequence_ptr,
int item_priority = -1,
bit lock_request = 0);
this.print();
super.wait_for_grant (sequence_ptr, item_priority, lock_request);
endtask : wait_for_grant
function void do_print (uvm_printer printer);
super.do_print(printer);
printer.print_array_header("arbitration_queue", arb_sequence_q.size());
foreach (arb_sequence_q[i])
printer.print_string($sformatf("[%0d]", i),
$sformatf("%s name: %s@seqid%0d",arb_sequence_q[i].request.name(),
arb_sequence_q[i].sequence_ptr.get_full_name(),
arb_sequence_q[i].sequence_id), "[");
printer.print_array_footer(arb_sequence_q.size());
printer.print_array_header("lock_queue", lock_list.size());
foreach(lock_list[i])
printer.print_string($sformatf("[%0d]", i),
$sformatf("%s@seqid%0d",lock_list[i].get_full_name(),lock_list[i].get_sequence_id()), "[");
printer.print_array_footer(lock_list.size());
endfunction
Note - I added extra prints to get full seq name.
Sample Log:
arbitration_queue array 2 -
[0] string 107 SEQ_TYPE_REQ name: uvm_test_top.vl_rgb_2_yuv_env.vl_rgb_2_yuv_agent.vl_rgb_2_yuv_sequencer.dir_seq_0@seqid2
[1] string 108 SEQ_TYPE_REQ name: uvm_test_top.vl_rgb_2_yuv_env.vl_rgb_2_yuv_agent.vl_rgb_2_yuv_sequencer.rand_seq_0@seqid3
lock_queue array 0 -
HTH
Srini