Как вы создаете реализацию типа «randc», используя gen в specman?
Пример:
list_l : list of uint(bits:3);
keep list_1.size () == 8;
Я хочу сгенерировать таким образом, чтобы все элементы списка не имели случайного числа между (0-7).
Как вы создаете реализацию типа «randc», используя gen в specman?
Пример:
list_l : list of uint(bits:3);
keep list_1.size () == 8;
Я хочу сгенерировать таким образом, чтобы все элементы списка не имели случайного числа между (0-7).
Текущие ограничения списка обеспечат создание списка со всеми значениями в диапазоне [0..7]
.
Использование gen
приведет к созданию списка в соответствии с требованиями.
Пример
list_l : list of uint(bits:3);
keep list_l.size () == 8;
generate_list() is {
gen list_l;
}
Если вы хотите, чтобы все элементы списка были уникальными, добавьте в список следующее ограничение:
keep list_l.all_differnt(it);
list_l
будет между 0 и 7, потому что Specman знает, каков диапазон uint(bits:3)
. Если вам нужно ограничить элементы в списке подмножеством чисел, разрешенных типом данных, вы можете сделать что-то вроде: keep for each (e) in list_l) { e in [1..3,5..6]; };
- person Ross Rogers; 30.01.2013
Можно использовать псевдометод "is_a_permutation()" для однократного заполнения списка каждым значением.
Пример
list_l : list of uint(bits:3);
keep list_1.is_a_permutation(all_values(uint(bits:3)));
or
keep list_1.is_a_permutation({0;1;2;3;4;5;6;7});
Обратите внимание, что в этом примере "is_a_permutation()" ограничивает размер списка ровно 8.