Systemverilog утверждение во всем синтаксисе - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь написать утверждение, выражение c выглядит следующим образом: если a высоко в любом цикле, то для следующих 3 циклов c должно быть подтверждено, если b не утверждено. Если в любое время заявлено значение b, в следующем цикле следует деактивировать c.

Я пытался описать ниже, но не уверен, как добавить b в этом сценарии.

a | -> c [* 3]

Должен ли я просто отключить утверждение при утверждении b? Спасибо за помощь.

1 Ответ

0 голосов
/ 05 мая 2020

если a равно любому в любом цикле, то для следующих 3 циклов c должно быть подтверждено, если b не указано

Попробуйте эту последовательность:

a |-> (c [*3] && !B [*3])

Если в любое время заявлено значение b, в следующем цикле следует деактивировать c.

Попробуйте добавить следующую последовательность:

b |-> !c

Это будет Я полагаю, что b проверьте в моменте синхронизации, который вы описываете в последовательности, или в часах по умолчанию.

Нарисуйте форму волны утверждений этих последовательностей и проверьте, предоставляют ли они то, что вам нужно, или нет.

Если вы хотите увидеть комбинированное поведение этих двух утверждений, например, для проверки конфликтов, вы можете создать третью последовательность, and их проверяя и осциллограмму.

...