я следующее свойство:SVA Повторение непоследовательных Операция Отборочные события
property p;
@(posedge clk) a |=> b[=2] ##1 c;
endproperty
Это говорит нам, что если a
утверждается, начните со следующего clk
, b
следует утверждать, не последовательно два раза с последующим по c
утверждается в любое время после последнего b
.
Мой вопрос в том, что если c
утверждается между первым b
и вторым b
. Должно ли утверждение терпеть неудачу немедленно или продолжаться? В некоторых справочниках говорится, что это должно потерпеть неудачу, но я в этом сомневаюсь. Каково ожидаемое поведение?
Он также работает для 'goto repetition' (я имел в виду, когда' b' проверяется два раза, мы можем игнорировать 'c', т.е. будет ли эта последовательность терпеть неудачу:' a! Bbc! C! Bbc' if мы используем либо 'goto repetition', либо' un-последовательное повторение'? – AldoT
Не смотрите 'c', когда проверяется' b'. Для указанной последовательности 'c' обнаруживается после проверки на' b', два Таким образом, ни один из двух не потерпит неудачу, оба будут ** проходить **. Но если у вас есть что-то вроде 'a! bb! bb! bc', то * goto повторение * будет терпеть неудачу, но * не последовательное повторение * Пройдет. И да, это относится и к повторению goto. – sharvil111
Хорошо, теперь я понимаю и согласен с тобой. Меня просто смутило заявление в приведенной вами ссылке: https://www.doulos.com/knowhow/ sysverilog/tutorial/assertions/где в аналогичном свойстве говорится: «Это означает, что за a следует любое количество часов **, где c is false **, а b истинно между 1 и 3 раза, последний раз является часами до того, как c истинно. 'Они делают неправильный оператор здесь (требуется, чтобы c было false, когда b проверяется)? – AldoT