Я проверяю часть конструкции, которая генерирует импульсы с точно установленными краями. У меня есть базовая поведенческая модель, которая производит результат, который аналогичен, но не совсем такой же, как дизайн. Различия между ними меньше точности, необходимой для дизайна, поэтому моя модель достаточно хороша. Проблема заключается в следующем: как мне провести сравнение между этими двумя сигналами?Как сравнить два сигнала, края которых находятся почти в одном месте?
Я пробовал:
assert(out1 == out1_behav);
Но это не удается, так как оба сигнала имеют ребра, которые происходят 1ps друг от друга. Конструкция требует только того, чтобы края были размещены с точностью 100ps, поэтому я хочу пройти в этой ситуации.
Я думал об использовании блока с $delay()
срочными проверками, однако это вызывает у меня другие проблемы, так как мне нужно запускать с +no_timing_checks
, чтобы мои модели барабанов не проваливались в этом RTL-симе.
Есть ли простой способ проверить, что эти края «почти» одинаковы?
Если можно найти относительную разницу и вместо этого проверить абсолютное. Вы можете округлить относительную ценность до необходимой точности. Что-то вроде этого: 'out1 - out1_behav/out1' – Nicolai