Altifigence Academy

23 / 37 · Теория

Моменты выборки и причинность на временных диаграммах

Читайте диаграммы, разделяя установление комбинационной логики, захват тактом и порядок событий.

Даже внутри одной временной отметки есть порядок

Одинаковая отметка изменения сигналов на диаграмме не означает беспричинной одновременности. В событийном RTL-симуляторе значения устанавливаются после активных событий, неблокирующих обновленийНеблокирующее присваивание обозначается <= в последовательностном RTL. Оно вычисляет правую часть, затем планирует обновление, позволяя регистрам на одном фронте рассчитываться по предыдущему состоянию. Подробнее и других этапов. Реальные компоненты меняются после clock-to-Q и комбинационной задержки распространенияЗадержка распространения — время от изменения входа до установления правильного выхода. Логическая эквивалентность выражений и их временные характеристики — разные вопросы. Подробнее. Эти модели нужно различать.

В практикуме строим прогноз по этапам: подача входа → комбинационное вычисление → захват положительным фронтомПоложительный фронт — момент перехода такта из 0 в 1. Его следует отличать от уровня, означающего весь интервал CLK=1. Подробнее → обновление состояния. Уточняйте моменты подачи входов и записи результатов в используемом инструменте.

Нужно проверить реальное расписание событий симулятора и момент регистрации выхода. Последовательность ниже — четыре различаемых этапа прогноза, а не четыре тактовых периода.

Разделите подачу стимулов и момент наблюдения
  1. Подача входов: Измените a, b, sel
  2. Комбинационное вычисление: y = sel ? b : a
  3. Положительный фронт: Захватите y непосредственно перед фронтом
  4. Наблюдение после обновления: Сравните sampled_y

Сначала независимо вычислите ожидания

yk=sk‾ak+skbk,qk+1=yky_k=\overline{s_k}a_k+s_kb_k,\qquad q_{k+1}=y_k

Для каждого набора вычислите y, затем в отдельном столбце укажите фронт, на котором значение попадёт в q. Первая строка расхождения с результатом сужает поиск до подачи входа, функции выбора или хранения.

Различайте переход и установившееся состояние

Если при смене селектора данные одинаковы, конечный выход должен остаться тем же, но разница задержек внутренних путей может вызвать короткий выброс. При этом нормальный переход к другому значению не следует называть выбросом. Сравнение логических диаграмм и физический временной анализ отвечают на разные вопросы.

В обычном тестбенче изменение воздействий на том же положительном фронте, что и DUT, с немедленным чтением может создать гонку. Разделяйте моменты управления и наблюдения либо используйте явную синхронизацию, например clocking block. Предлагаемый практикум DDS использует входной JSON и правила одного такта инструмента; произвольный тестбенч с #delay не добавляется.

Попробуйте сами

Если конечные y и sampled_y на диаграмме оба равны 1, можно ли заключить, что промежуточные циклы тоже правильны?

Прочитать объяснение

Нет. Перепутанный селектор или запись с задержкой на цикл тоже могут дать тот же итог при последних a=b=1. Сравнивайте ожидания на каждом фронте и обязательно включайте переключения sel при разных a и b.

Выбор действует в этом браузере. Его можно изменить внизу страницы.