Где я могу написать параллельное утверждение в мониторе?

Я должен написать следующее параллельное утверждение в моем мониторе:

assert property (vif.cos == 1 |-> vif_out.y == vif.xi/sqrt(2));

Я попытался поместить его в run_phase, но получил следующую ошибку: Параллельные утверждения не допускаются в задачах/методах класса.

Куда мне его положить?


person sarad    schedule 01.03.2017    source источник
comment
Вы можете объявить параллельное утверждение внутри модуля, интерфейса, программы, блока синхронизации или пакета. Пожалуйста, поправьте меня, если есть какая-либо другая область, в которой вы могли бы объявить параллельное утверждение.   -  person nick_g    schedule 09.03.2018


Ответы (2)


См. IEEE Std 1800-2012, раздел 14.16. (Параллельные утверждения).

Параллельный оператор утверждения может быть указан в любом из следующего:

  • Всегда процедура или начальная процедура как оператор, где бы эти процедуры ни появлялись
  • Модуль
  • Интерфейс
  • Программа
  • Генерировать блок
  • шашка

Лично я бы просто переместил этот фрагмент кода в файл интерфейса.

person AndresM    schedule 01.03.2017

Параллельные утверждения не допускаются в задачах/методах класса. Вы должны поместить их в модуль или что-то подобное (интерфейс/программа/проверка).

person Matthew Taylor    schedule 01.03.2017