In reply to chr_sue:
I edited the sequence according your comment as the following:
class ahb_master_sequence extends ahb_base_sequence;
`uvm_object_utils(ahb_master_sequence)
`uvm_declare_p_sequencer(ahb_sequencer)
function new(string name = "ahb_master_sequence");
super.new(name);
endfunction
ahb_burst_item_s my_req;
ahb_direction_t dir;
rand byte unsigned my_data[$];
int my_size;
constraint queue_val {
my_data.size() == my_size;
//foreach (my_data[ii]) my_data[ii] == ((ii+1)&8'hff);
}
virtual task body();
for( int i=0; i<10; i++) begin
req = ahb_burst_item_s::type_id::create("req");
start_item(req);
dir = (i%2 == 0) ? READ : WRITE;
assert (req.randomize() with {direction == dir;});
req.fill_ahb_transaction_with_data(my_data);
finish_item(req);
end // for()
endtask // bosy
The simulatiom still got stuck.
It could be also in the get_next_item()