Я хочу протестировать все возможные комбинации входных данных для модуля verilog. Я смог сгенерировать эти входные данные, создав массив с вложенным циклом for. Однако я хочу пройти через массив в случайном порядке. Как это можно сделать или есть способ сгенерировать массив всех возможных входных данных, который уже находится в случайном порядке?
массив случайных чисел в Verilog
Ответы (1)
Если вы хотите изменить список тестовых примеров, таких как перетасовка колоды карт, существует алгоритм под названием перемешивание Фишера-Йейтса для этого. Или, если вы используете SystemVerilog, инструмент указал, что для массивов есть встроенный метод shuffle
.
person
Andy
schedule
18.05.2011
Конечно, мы все предполагаем, чего хочет нейромант. Несмотря на это, одно предостережение в отношении этого решения заключается в том, что если существует большое количество допустимых стимулов (например, два 32-битных целых числа, добавляемых в ALU), тогда метод тасования должен будет использовать всю эту память в начале теста. Если вместо этого используется инъективная хэш-функция (en.wikipedia.org/wiki/Perfect_hash_function), тогда у вас не будет проблем с выделением памяти с нулевым временем.
- person Ross Rogers; 18.05.2011
for
не будут случайными? Кроме того, можете ли вы объяснить, что вы подразумеваете под созданием массива всех возможных входных данных, который уже находится в случайном порядке? - person Marty   schedule 17.05.2011shuffle
для своих массивов. - person toolic   schedule 18.05.2011