system verilog rand c поведение при изменении условия ограничения - PullRequest
0 голосов
/ 17 июня 2020

Я читал, что последовательность перестановок переменной rand c изменяется при изменении ограничения на переменную. Но учитывая приведенный ниже пример, где ограничение не переопределяется, но изменяется условие (y) - есть ли шанс, что последовательность перестановки переменной rand c будет пересчитана?

randc bit [5:0] x;
rand bit y;                                                                                                                                                         

constraint  c_x {
    (y)  -> {x inside {[10:13]}};
    (!y) -> {x inside {[20:23]}};
}

Я тестировал это, и даже несмотря на то, что 'y' изменяется для каждого вызова randomize () - последовательность перестановки x не изменяется. Просто хотел понять эту более тонкую деталь rand c.

1 Ответ

0 голосов
/ 17 июня 2020

Нет, у вас есть только одно выражение ограничения, и все переменные случайны. Последовательность перестановок переменной randc сбрасывается при

  • построении объекта
  • изменении переменной rand_mode ()
  • изменении ограничения constraint_mode ( )
  • изменение значения не-случайной переменной, используемой в выражении ограничения
  • рандомизация вызова с использованием другого предложения with {}
  • в перестановке нет оставшихся значений

Должна быть зависимость от переменной rand c, чтобы любое из вышеперечисленных изменений имело эффект.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...