#specman
#specman
Вопрос:
следующий код создает предупреждение для DEPR_NEG_OR_LARGE_SELECT_WEIGHT:
keep soft MyVar == select {
0xffffffffff: 0;
10: [1..10];
10: [11..20];
};
keep MyVar != 0;
я бы ожидал, что проверка будет учитывать только соответствующие диапазоны…
Ответ №1:
0xffffffffff не является допустимым синтаксисом выбранного веса. Допустимы только значения от 0 до MAX_INT .
Инструмент просто защищает вас от недопустимых выражений. Точно так же, как вы получаете ошибку времени загрузки / компиляции, если вы пишете любой другой незаконный код. Он не пытается понять более глубокий смысл или вообще вызывается ли код.
Ответ №2:
Этого должно быть достаточно для ваших нужд.
keep soft MyVar == select {
1: [1..10];
1: [11..20];
};
keep MyVar != 0;
keep soft MyVar in [1..20]; // This is also enough in place of weighted random constraint.