Altifigence Academy

33 / 37 · Теория

Setup, hold и временной бюджет

Разделите максимальные и минимальные задержки путей и рассчитайте условие hold, независимое от частоты такта.

Правильная функция должна успеть вовремя

Синхронный путь состоит из передающего триггераТриггер записывает вход на заданном фронте такта и удерживает его до следующего фронта. Вход должен удовлетворять ограничениям setup и hold. Подробнее, комбинационной схемы и принимающего триггера. В простой модели с нулевым skew между тактами условие setupВремя предустановки (setup) — минимальное время, в течение которого входные данные должны быть стабильны до захватывающего фронта такта. При нарушении результат записи не гарантирован. следующее. Uncertainty консервативно учитывает джиттер и проектный запас.

Tclk≥tcq,max+tpd,max+tsetup+tuncertaintyT_{clk}\ge t_{cq,\mathrm{max}}+t_{pd,\mathrm{max}}+t_{setup}+t_{uncertainty}

tcqt_{cq} — clock-to-Q, tpdt_{pd} — максимальная комбинационная задержка. Для комбинационной схемы остаётся лишь время после вычитания задержки выхода регистраРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее и setup приёмника.

Числовой расчёт ограничения пути

При clock-to-Q=0.12 ns, комбинационной задержке 1.80 ns, setup=0.15 ns и uncertainty=0.08 ns минимальный период равен 2.15 ns.

fmax≤12.15 ns≈465.1 MHzf_{\mathrm{max}}\le\frac{1}{2.15\ \mathrm{ns}}\approx465.1\ \mathrm{MHz}

500 MHz соответствует 2 ns, значит запас setup равен −0.15 ns. Это пример для одного пути и заданных предположений. Гарантия рабочей частоты требует проверки всех значимых путей, угловых условий и ограничений.

Проследите последовательно складываемые задержки: сумма ниже равна 2.15 ns. Стрелки показывают порядок суммирования бюджета, а не размеры компонентов или пропорции задержек.

Путь, расходующий бюджет setup
  1. Передающий триггер: clock-to-Q: 0.12ns
  2. Комбинационный путь: Максимальная задержка: 1.80ns
  3. Условия приёма: setup: 0.15ns
  4. Проектный запас: неопределённость: 0.08ns

Hold — задача самого быстрого пути

Если передаваемые данные слишком быстро меняются на том же фронте, они вторгаются в интервал устойчивого захвата прежнего значения приёмником. Простое условие holdВремя удержания (hold) — минимальное время, в течение которого входные данные должны оставаться стабильными после захватывающего фронта такта. Учитывайте контекст: это не то же самое, что обычное сохранение значения. при skew=0 и без отдельного запаса:

tcq,min+tcd,min≥tholdt_{cq,\mathrm{min}}+t_{cd,\mathrm{min}}\ge t_{hold}

При минимальных clock-to-Q=0.05 ns и комбинационной задержке 0.03 ns, hold=0.10 ns не хватает 0.02 ns. Увеличение периода не исправляет условие одного фронта. Нужны меры реализации: добавление задержки, изменение тактового пути и подобные.

Положительный skew, когда capture-такт приходит позже launch, может помогать обычному одноцикловому setup и ухудшать hold. Вместо заучивания знаков рисуйте приход данных и фронт захвата на временной оси. Исключения вроде multicycle и false path не используют для удаления предупреждений без реального функционального основания.

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

Период 4 ns, tcq=0.2t_{cq}=0.2 ns, tsetup=0.3t_{setup}=0.3 ns, uncertainty=0.1 ns. Какова допустимая максимальная комбинационная задержка? Устранит ли переход к периоду 8 ns нарушение hold?

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

Максимум 4−0.2−0.3−0.1=3.44-0.2-0.3-0.1=3.4 ns. Обычное условие hold одного фронта не исправляется увеличением периода. Нужно отдельно анализировать минимальный путь данных и времена прихода тактов.

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