Открыть сервис

Асинхронный FIFO

Асинхронный FIFO — это цифровое устройство (буфер), реализующее дисциплину обслуживания «первым пришёл — первым ушёл» (First In, First Out, FIFO) и предназначенное для передачи данных между двумя тактовыми доменами, работающими с независимыми (асинхронными) тактовыми сигналами. Основная функция асинхронного FIFO — обеспечение надёжной и безошибочной передачи данных между синхронными схемами, которые имеют разные тактовые частоты или фазы, без потери данных и без нарушения порядка их следования.

Назначение и область применения

Асинхронные FIFO широко используются в цифровой электронике, особенно в проектировании систем на кристалле (System-on-Chip, SoC) и программируемых логических интегральных схемах (ПЛИС). Основные сценарии применения включают:

Архитектура и принцип работы

Основные компоненты

Типичная реализация асинхронного FIFO состоит из следующих блоков:

Алгоритм работы

  1. Запись: По положительному фронту тактового сигнала записи (wr_clk) данные, присутствующие на входной шине (wr_data), записываются в ячейку памяти по адресу, заданному указателем записи. После записи указатель записи инкрементируется.
  2. Чтение: По положительному фронту тактового сигнала чтения (rd_clk) данные из ячейки памяти по адресу указателя чтения передаются на выходную шину (rd_data). После чтения указатель чтения инкрементируется.
  3. Флаги пустоты и полноты: Логика сравнения указателей записи и чтения (с учётом синхронизации) генерирует сигналы empty (FIFO пуст — чтение невозможно) и full (FIFO полон — запись невозможна). Если FIFO полон, запись блокируется; если пуст — чтение блокируется.

Синхронизация указателей

Ключевая сложность асинхронного FIFO — корректная передача значений указателей из одного тактового домена в другой. Простое прямое соединение приводит к метастабильности. Для решения этой проблемы применяются два подхода:

Классификация асинхронных FIFO

Асинхронные FIFO можно классифицировать по нескольким признакам:

Характеристики и параметры

Основные параметры асинхронного FIFO:

Особенности проектирования

Проектирование асинхронного FIFO требует учёта нескольких важных аспектов:

Примеры реализации

В ПЛИС и ASIC асинхронные FIFO часто реализуются с помощью готовых IP-блоков (Intellectual Property cores), предоставляемых производителями. Например:

Ограничения и альтернативы

Асинхронные FIFO имеют некоторые ограничения:

Альтернативными подходами к передаче данных между тактовыми доменами являются:

Значение в цифровой электронике

Асинхронные FIFO являются фундаментальным строительным блоком в современной цифровой электронике. Они позволяют объединять в одной системе модули, работающие на разных тактовых частотах, что необходимо для создания сложных многокристальных систем и SoC. Без асинхронных FIFO было бы невозможно эффективно реализовать интерфейсы между процессором и периферией, между разными ядрами в многоядерных процессорах, между ПЛИС и внешними устройствами (например, АЦП, ЦАП, памятью). Их использование значительно упрощает проектирование и повышает надёжность цифровых систем.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →