Я написал свойство утверждения. Я хочу добавить задержку между выборкой и проверкой действия.
В основном ниже утверждение говорит, что assert_sig должен быть стабильным, когда sig1 или sig2 1.
property check_assert(assert_sig, assert_sig_dis);
@(assert_sig)
disable iff(!lane_assertion_enabled || assert_sig_dis)
((sig1!==1'b1) && (sig2!==1'b1));
endproperty
Теперь проблема заключается в том, что assert_sig отменяет утверждение одновременно с утверждением sig1. Вот почему утверждение не работает. Я хочу добавить задержку в 1 пс между проверкой действия и выборкой. Является ли это возможным? Или любой другой подход также будет оценен. Заранее спасибо.
Тактовые блоки обеспечивают перекос дискретизации
clocking as @(assert_sig)
input #1ps sig1;
endclocking
Затем используйте as.sig1
в своем объекте.
#1ps
должно было сработать. См. пример в разделе 14.3 LRM.
Привет, Дэйв, я попробовал ваше предложение, но я хотел бы упомянуть две вещи: 1. # 1ps во входных данных дает ошибку компиляции. Я изменил его на #1step, имеет ли это смысл? 2. Даже после этого я даже не вижу задержки, поскольку .sig1 в @(assert_sig) изменяется.. Спасибо