Допустим, есть сигнал a
. Когда сигнал становится высоким, он должен оставаться высоким как минимум в течение трех положительных фронтов тактовой частоты.
Мы можем записать свойство как
property p;
@(posedge clk) $rose(a) -> a[*3];
endproperty
Свойство не работает в приведенном ниже случае.
clk _ _ _ | = = = | _ _ _ | = = = | _ _ _ | = = = | _ _ _ | = = = |
a _ _ | = = = | _ _ | = = = = = = = = = = = = = = = = = =
Это не соответствует спецификации, где a опускается ниже в середине, но будет подниматься вверх следующей позой, и, следовательно, приведенное выше утверждение не улавливает это.
Может ли кто-нибудь сказать, есть ли способ написать утверждение, чтобы отловить эту ошибку?
Спасибо