Есть ли способ сделать взвешенную рандомизацию в System Verilog на основе данных времени выполнения. Скажем, у меня есть очередь целых чисел и очередь весов (целые числа без знака), и я хочу выбрать случайное целое число из первой очереди в соответствии с весами во второй очереди.
int data[$] = '{10, 20, 30};
uint_t weights[$] = '{100, 200, 300};
Любая случайная конструкция ожидает весовые коэффициенты, как в
constraint range { Var dist { [0:1] := 50 , [2:7] := 50 }; }
Но в моем случае мне нужно выбрать элемент из неизвестного числа элементов.
PS: предположим, что количество элементов и вес всегда будут одинаковыми.