Would a simple solution be something similar to this:
class my_seq_item extends uvm_sequence_item;
`uvm_object_utils(my_seq_item)
rand bit signed [17:0] rx_data[];
constraint rx_data_c {
foreach (rx_data[i]) {
rx_data[i][17:0] inside {[-0.7999, 0.4999]};
}
}
endclass : my_seq_item
This would be similar to a solution found here:
Another idea I am working on can be found in this Q&A:
It is important that rx_data is properly constrained using the range [-0.7999, 0.4999], otherwise the verification solution is incomplete.