2013-03-01 2 views
1

С утверждениями SystemVerilog в чем разница между $assertoff; и $assertkill;?

Оба они, похоже, прекращают выполнение утверждений.

ответ

3

$assertoff остановит утверждения, кроме тех, которые уже находятся в активном состоянии.

Утверждения активны после срабатывания и ждут перехода к неудачному или завершенному. $assertoff не остановится или убить утверждения в активном состоянии.

$assertkill остановит все утверждения, перемещая все, чтобы выключить.

От Помощь Cadence:

$ assertoff
Приостановка проверки всех указанных утверждений до $ asserton не встречается. Утверждение , которое уже выполняется, включая блоки действий утверждения, продолжит выполнение.

$ assertkill
Остановка проверки всех указанных утверждений, которые в настоящее время исполняющих, затем прекращает проверку всех указанных утверждений до $ asserton не встречается.
NB:В стандарте SystemVerilog IEEE 1800 задача $ assertkill не влияет на непосредственные утверждения и невременные параллельные утверждения из-за проблем с планированием.

-2

$ assertoff - это не что иное, как остановка проверки всех указанных утверждений, если и до тех пор, пока не будет установлено значение $ assert.

В то время как обработка U на утверждение не влияет на то, прошло или нет мое утверждение.