33 / 37 · Теория
Setup, hold и временной бюджет
Разделите максимальные и минимальные задержки путей и рассчитайте условие hold, независимое от частоты такта.
Уроки доступны бесплатно. Запишитесь, чтобы сохранять прогресс.
Правильная функция должна успеть вовремя
Синхронный путь состоит из передающего триггераТриггер записывает вход на заданном фронте такта и удерживает его до следующего фронта. Вход должен удовлетворять ограничениям setup и hold. Подробнее, комбинационной схемы и принимающего триггера. В простой модели с нулевым skew между тактами условие setupВремя предустановки (setup) — минимальное время, в течение которого входные данные должны быть стабильны до захватывающего фронта такта. При нарушении результат записи не гарантирован. следующее. Uncertainty консервативно учитывает джиттер и проектный запас.
— clock-to-Q, — максимальная комбинационная задержка. Для комбинационной схемы остаётся лишь время после вычитания задержки выхода регистраРегистр хранит многобитное состояние. Синхронные регистры в этом курсе записывают определённый вход на фронте тактового сигнала. Подробнее и setup приёмника.
Числовой расчёт ограничения пути
При clock-to-Q=0.12 ns, комбинационной задержке 1.80 ns, setup=0.15 ns и uncertainty=0.08 ns минимальный период равен 2.15 ns.
500 MHz соответствует 2 ns, значит запас setup равен −0.15 ns. Это пример для одного пути и заданных предположений. Гарантия рабочей частоты требует проверки всех значимых путей, угловых условий и ограничений.
Проследите последовательно складываемые задержки: сумма ниже равна 2.15 ns. Стрелки показывают порядок суммирования бюджета, а не размеры компонентов или пропорции задержек.
- Передающий триггер: clock-to-Q: 0.12ns
- Комбинационный путь: Максимальная задержка: 1.80ns
- Условия приёма: setup: 0.15ns
- Проектный запас: неопределённость: 0.08ns
Hold — задача самого быстрого пути
Если передаваемые данные слишком быстро меняются на том же фронте, они вторгаются в интервал устойчивого захвата прежнего значения приёмником. Простое условие holdВремя удержания (hold) — минимальное время, в течение которого входные данные должны оставаться стабильными после захватывающего фронта такта. Учитывайте контекст: это не то же самое, что обычное сохранение значения. при skew=0 и без отдельного запаса:
При минимальных 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, ns, ns, uncertainty=0.1 ns. Какова допустимая максимальная комбинационная задержка? Устранит ли переход к периоду 8 ns нарушение hold?
Прочитать объяснение
Максимум ns. Обычное условие hold одного фронта не исправляется увеличением периода. Нужно отдельно анализировать минимальный путь данных и времена прихода тактов.