Время установления и время удержания - Освоение основ тайминга в СБИС

Время установления и время удержания - Освоение основ тайминга в СБИС

Время установки и время удержания - два наиболее важных временных ограничения в цифровых схемах:

  • Время установки - это время, в течение которого данные должны надежно поступать до фронта тактовой частоты, а
  • Время удержания - это время, в течение которого данные должны удерживаться после фронта тактовой частоты.

Если эти два условия не выполняются одновременно, схема может перейти в метастабильное состояние и выйти из строя.

개요: Настройка и удержание понятны на примере аналогии с прибытием самолета

Воспомните систему посадки пассажиров в аэропорту. Самолеты вылетают точно в нужное время (край часов). Для того чтобы пассажир мог подняться на борт, необходимо выполнить два условия:

  1. Условие времени посадки: Пассажир должен быть на платформе за 30 минут до вылета самолета (время посадки). Если вы приехали за 30 минут до вылета, ворота уже закрыты, и, к сожалению, вы опоздали на посадку, это нарушение правил посадки.
  2. Условие времени ожидания: Пассажиры не должны резко покидать самолет в течение 5 минут после приземления (время ожидания). Если они покидают самолет всего через две минуты после вылета, это нарушение условия удержания.

Точно такой же принцип применяется при проектировании СБИС. Для того чтобы входные данные на флип-флопе захватывались точно по фронту тактовой частоты, оба этих временных окна должны быть удовлетворены.

Setup Time: Основные понятия

Определение времени установки

Время установки (tsu) - это минимальное время, в течение которого входные данные для флип-флопа должны быть стабильными до фронта тактового сигнала. Физически это время поведения электроники, необходимое схеме LATCH внутри флип-флопа для правильного захвата новых данных.

Например, рассмотрим флип-флоп с временем установления 1,2 нс. Если нарастающий фронт тактового генератора происходит ровно через 10,0 нс, входные данные должны поступить до 10,0 нс - 1,2 нс = 8,8 нс.

Расчет Setup Slack

В статическом анализе тайминга (STA) Setup Slack рассчитывается следующим образом:

Setup Slack = Required Time - Arrival Time
= (Clock Time - Setup Time) - Data Arrival Time

  • Required Time: Последнее время, когда должны поступить данные (фронт синхронизации - Setup Time)
  • Arrival Time: Время, когда данные действительно поступают
  • Положительный Slack: Slack доступен (безопасен)
  • Отрицательный Slack: Нарушение

Почему происходят нарушения настроек

Нарушения настроек происходят в следующих ситуациях:

  • Слишком большая задержка в тракте комбинационной логики
  • Слишком короткий тактовый цикл
  • Большая задержка сигнала из-за отсутствия буферов или инверторов в тракте данных
  • Увеличение задержки из-за изменений процесса, напряжения, температуры (PVT)

Время удержания: Основные понятия

Определение времени удержания

Время удержания (th) - это минимальное время, в течение которого входные данные для флип-флопа должны оставаться стабильными после фронта тактового импульса. Пока данные захватываются по фронту тактового импульса и сохраняются во внутренней памяти, входные данные не должны меняться.

Например, рассмотрим флип-флоп с временем удержания 0,8 нс. Если нарастающий фронт тактового генератора произойдет через 10,0 нс, входные данные не должны измениться на 10,0 нс + 0,8 нс = 10,8 нс.

Расчет Hold Slack

Hold slack рассчитывается немного иначе, чем в setup:

Hold Slack = Arrival Time - Required Time
= Data Arrival Time - (Clock Time + Hold Time)

  • Required Time: Минимальное время (тактовый фронт + Hold Time), за которое данные могут измениться: Время, за которое поступают данные из предыдущего тактового цикла
  • Положительный Slack: Slack (безопасный)
  • Отрицательный Slack: Нарушение

Механизм нарушения удержания

Нарушение удержания происходит, когда задержка комбинационного тракта слишком мала. Звучит парадоксально, но подумайте о следующем:

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

Специфика:

  • Выход предыдущего FF изменяется быстро (короткая комбинационная задержка)
  • Вход текущего FF изменяется в пределах окна времени удержания
  • Текущий FF может захватить промежуточное состояние между старым и новым значениями
  • Результат: Метастабильное состояние → Увеличение задержки сходимости → Проблемы со временем

Пример из реального мира: Анализ времени установки

  • Необходимое время: 5.0000ns → означает, что тактовый цикл составляет 5ns
  • Время прибытия: 5.3274ns → данные фактически прибывают в 5.3274ns
  • Слабость: -0.3274ns → Нарушение настроек!

Как исправить нарушение установки

  1. Уменьшить задержку комбинационной логики:# Измените ячейку в критическом пути на больший размер
    size_cell u3 BUF4X8 # Существующая BUF2X2 → BUF4X8
    insert_buffer -place_buffers -cell BUF4 path_name
  2. Увеличьте период тактового генератора: Измените тактовый генератор с 5ns → 6ns
  3. Добавьте конвейер: Разбейте комбинационную логику на несколько этапов

Как исправить нарушение удержания

  1. Добавьте буфер задержки
  2. Измените ведущую ячейку: Замените маленькую ячейку (BUF1X) на большую, чтобы ограничить скорость
  3. Переместите комбинационную логику: Увеличьте задержку за счет физического увеличения расстояния
  4. Увеличьте нагрузку: Добавляет емкостную нагрузку в тракт

Часто задаваемые вопросы (FAQ)

1. Могут ли время установки и время удержания нарушаться одновременно:

Да, это возможно. Например, они могут возникнуть одновременно из-за колебаний температуры напряжения процесса (PVT) или джиттера синхронизации. В этом случае может возникнуть фундаментальная проблема в самой конструкции.

2. Что важнее - установка или удержание?"

Они одинаково важны. Нарушения установки приводят к неправильному захвату данных и сохранению неверных значений, а нарушения удержания - к задержкам сходимости и метастабильности из-за метастабильных состояний. И то, и другое приводит к сбоям в работе схемы."

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

3. Всегда ли уменьшение тактового периода приводит к нарушению только Setup?"

В основном это приводит к нарушению Setup Time, но в особых случаях может измениться и Hold Time. В дело вступают перекос тактового сигнала, джиттер, задержка распространения в дереве тактовых импульсов и т. д., поэтому необходимо проверять оба параметра.

4. Что такое метастабильное состояние?"

Это явление, когда внутреннее состояние флип-флопа застревает в неустойчивом промежуточном состоянии, которое не является ни 0, ни 1. Оно возникает при нарушении времени установки или удержания, и может занять непредсказуемое количество времени, чтобы сблизиться или не сходиться вообще. В современных схемах это самая опасная проблема синхронизации.

5. Существуют ли флип-флопы с отрицательным временем удержания?"

Да, существуют. Некоторые флип-флопы в современных технологических узлах могут иметь отрицательное время удержания, что является преимуществом для разработчиков. Отрицательное время удержания означает, что после фронта тактового импульса данные могут в некоторой степени измениться. Однако время установки может быть более жестким.

고급 개념: Clock Skew and Timing

Effects of Clock Skew

В реальной конструкции микросхемы тактовый сигнал не поступает на все флип-флопы в одно и то же время. Это известно как перекос тактового сигнала:

  • Положительный перекос: Тактовый сигнал от источника FF поступает раньше, чем от назначения FF → хуже Setup, лучше Hold
  • Отрицательный перекос: Тактовый сигнал от назначения FF поступает раньше, чем от источника FF → лучше Setup, хуже Hold

Таким образом, проектирование дерева тактовых сигналов является важной частью оптимизации Setup/Hold.

PVT (Process, Voltage, Temperature) Variation

Реальное производство микросхем не идеально: вариации технологического процесса меняют характеристики транзисторов, возникают перепады напряжения, а температурные колебания изменяют задержки:

Проектирование всегда должно проверяться в наихудших условиях PVT. PrimeTime глушит STA для углов (каждой комбинации PVT), чтобы убедиться, что она удовлетворяется при любых обстоятельствах.

Summary

  • Setup Time: Минимальное время, за которое данные должны поступить до тактового фронта. Slack = Required Time - Arrival Time > должно быть 0
  • Hold Time: Минимальное время, в течение которого данные должны оставаться стабильными после фронта тактовой частоты. Slack = Arrival Time - Required Time > должно быть 0
  • PrimeTime: Проверьте нарушения setup/hold с помощью report_timing, check_timing, report_qor и анализируйте пути
  • Решение: Setup уменьшает задержку, а Hold добавляет ее. Оба варианта тесно связаны с проектированием тактового дерева
  • Метастабильность: Наихудшее последствие нарушения Setup/Hold. Может привести к полному нарушению работы микросхемы и должно быть устранено

Enjoyed this article?

Get deep-dive semiconductor analysis and career insights delivered weekly. Free forever — no paywall, no upsell. Funded by sponsorships with a strict editorial firewall (Editorial Standards).

Work with me

Consulting · Collaboration · Support

Paid 1:1 technical consulting, speaker invitations, collaboration proposals, or just want to say thanks — all welcome.

View options →
VLSI Korea Free forever · No paywall · Weekly semiconductor insights from practicing engineers
Support