Синхронизация асинхронных сбросов в ASIC и FPGA: Проблемы, лучшие практики и продвинутые решения
В современных VLSI дизайнах надежный механизм сброса необходим для установления известного стартового состояния. Статья рассматривает проблемы координации между асинхронными сбросами и синхронными тактами, и представляет проверенные стратегии для сред ASIC и FPGA.
Асинхронные сбросы широко используются для приведения синхронной логики в определенное состояние сразу после включения питания, без ожидания тактового фронта. Однако их освобождение должно быть тщательно синхронизировано с системным тактом для избежания метастабильности и интермитенточных сбоев — проблем, которые становятся острыми в больших многотактовых дизайнах.
Мы рассматриваем основные требования к асинхронным сбросам, критикуем традиционные методы синхронизации и распределения, и вводим продвинутые техники, предлагающие более быструю, простую и надежную сходимость. Отдельные секции детализируют ASIC-специфичные и FPGA-специфичные лучшие практики, вместе с иллюстративными специальными случаями.
Часть 1 (эта статья) описывает ключевые проблемы; Часть 2 расширяет ASIC и FPGA решения, а Часть 3 представляет дополнительные инсайты для вариантов использования.
1. Проблемы асинхронного сброса
Цифровые VLSI системы обычно включают сброс для обеспечения предсказуемого поведения. Сброс может быть реализован либо синхронно — требуя активный такт — либо асинхронно — не требуя такового. Синхронный сброс вводит детерминированную латентность и избегает метастабильности, но может влиять на тайминг датапута. Асинхронный сброс предлагает меньшую латентность и может использовать выделенные входы триггеров, но предъявляет несколько недостатков:
- Потенциальная метастабильность в триггерах при освобождении сброса.
- Необходимость прямой доступности для поддержки DFT.
- Восприимчивость к Single-Event Transients в rad-hard приложениях.[1]
Пока дебаты о синхронных против асинхронных сбросов продолжаются,[2] это обсуждение фокусируется на решении асинхронных-сбросовых проблем. Многие описанные техники применимы к обоим типам сброса.
Типичные драйверы асинхронного сброса включают внешние порты, RC-сети питания, watchdog таймеры, ручные кнопки сброса и внешние мастера вроде микропроцессоров. В некоторых сценариях — например, дизайны без активного такта при включении или low-power power-on последовательности — асинхронный сброс обязателен.
Хотя утверждение сброса может игнорировать тактовый тайминг, освобождение должно быть синхронизировано с тактом для удовлетворения setup и hold требований. Нарушение может вызвать метастабильность и провал дизайна. Рисунок 1 иллюстрирует активный-высокий асинхронный сброс: (a) утверждение очищает выход триггера Q независимо от CLK; (b) некорректный тайминг освобождения может вызвать метастабильность, похожую на нарушения датапута.
кликните для увеличения
Рисунок 1: Активный-высокий асинхронный сброс — утверждение и освобождение. (a) Утверждение сброса (b) Освобождение с нарушением тайминга. (Источник: vSync Circuits)
Встроенный
- Мастерство OTA обновлений: 5 частых вызовов и проверенные решения для Industrial IoT
- Перспективы индустрии PCB: ключевые тренды и вызовы на 2024 год
- Anvo‑Systems и Mouser заключают глобальное партнерство по дистрибуции
- Swissbit демонстрирует передовые аппаратные решения безопасности для IoT на it‑sa
- Rutronik становится эксклюзивным европейским дистрибьютором IoT RAM от AP Memory по глобальному соглашению
- Тренды и вызовы IIoT: перегрузка данных, сдвиги в производстве и кадровый дефицит
- Безопасность промышленного IoT: преодоление вызовов и внедрение надежных решений
- Революция в автопроизводстве: преодоление вызовов с помощью IoT-решений
- Топ-5 логистических вызовов для производителей и проверенные решения
- Оптимизация высокоскоростного проектирования печатных плат: решение проблем целостности сигнала