Я использовал для проверки модуля, состоящего из последовательного порта с набором регистров, с помощью динамических тестов. Один из тестов - это тест восстановления и сброса. Последовательность синхронизации: (i) записать случайные данные в регистр из последовательного порта (потребовалось 40 тактовых циклов) (ii) сбросить этот регистр и освободить его (iii) прочитать этот регистр из последовательного порта (потребовалось еще 40 тактовых циклов)
Это легко реализовать в динамическом тесте. Теперь я хочу описать это время формально, но я обнаружил, что формальные инструменты изо всех сил пытались определить это утверждение, поскольку время настолько велико, около 82 циклов, что формальные инструменты не могли исследовать так много состояний пространства. Можно ли формально написать такой тест?
Более того, общий формальный тест сброса прост, он занимает всего 1 цикл, формальный инструмент начинает исследовать состояния пространства из состояния сброса. Но теперь я пытаюсь написать тест, в котором говорится, что после того, как DUT что-то сделало, поместите регистр в сброс, прочтите его, значение по-прежнему является значением сброса.