I am using QuestaSim 10.3a_1 and try to record a dynamic array in the sequence item. But it doesn’t show in the waveform window. When I try to fix the array size and use uvm_field_sarray_int to record it, it works well and data show as expected in the waveform windows.
My code:
# sequence item
parameter int P_BIT_DEPTH = 10;
rand int unsigned data_len;
rand bit unsigned [P_BIT_DEPTH-1:0] data [];
...
`uvm_field_array_int(data, UVM_ALL_ON+UVM_UNSIGNED)
`uvm_field_int (data_len, UVM_ALL_ON+UVM_UNSIGNED)
...
constraint c_data_size { data.size() == data_len; };
constraint c_data_size_order { solve data_len before data; };
# Sequence body task
start_item(req);
if (! req.randomize() with { data_len == 2; })
`uvm_error(tID, "Can't randomize ingress packet")
finish_item(req);
req.sprintf() always prints the right information, no matter data is dynamic or static array.