Главная / Без рубрики / Программируемая логика: ПЛИС (FPGA) и ПЛМ (CPLD)

Программируемая логика: ПЛИС (FPGA) и ПЛМ (CPLD)

1. Введение: зачем нужна программируемая логика

В цифровой электронике существует дилемма:

  • Микропроцессоры/микроконтроллеры — гибкие, но медленные (потактовая обработка).
  • Специализированные ИС (ASIC) — быстрые и энергоэффективные, но дорогие в разработке и негибкие.

Программируемая логика (PLD — Programmable Logic Device) занимает золотую середину:

  • аппаратная реализация алгоритмов (высокая скорость);
  • перепрограммируемость (гибкость);
  • относительно низкая стоимость прототипов.

Ключевые преимущества:

  • параллельная обработка данных;
  • жёсткие временные ограничения (real‑time);
  • возможность реконфигурации «на лету»;
  • интеграция множества функций на одном кристалле.

2. Основные типы программируемых логических устройств

2.1. ПЛМ (CPLD — Complex Programmable Logic Device)

Суть: набор макроячеек (MC — Macrocells), соединённых коммутационной матрицей.

Характеристики:

  • умеренная логическая ёмкость (тысячи эквивалентных вентилей);
  • энергонезависимая память конфигурации (обычно EEPROM/Flash);
  • быстрое включение (конфигурация «из коробки»);
  • предсказуемые задержки (фиксированная топология межсоединений).

Типичные применения:

  • управление интерфейсами (декодеры, мультиплексоры);
  • замена «развесистой» логики на плате;
  • начальные стадии прототипирования;
  • системы с жёсткими требованиями к времени старта.

2.2. ПЛИС (FPGA — Field‑Programmable Gate Array)

Суть: массив конфигурируемых логических блоков (CLB — Configurable Logic Block), окружённых программируемыми межсоединениями.

Характеристики:

  • высокая логическая ёмкость (миллионы эквивалентных вентилей);
  • энергозависимая память конфигурации (SRAM‑based), требует загрузки при включении;
  • гибкая топология межсоединений (богатые ресурсы маршрутизации);
  • поддержка сложных встроенных блоков (ПЗУ, умножители, DSP, процессоры).

Типичные применения:

  • цифровая обработка сигналов (DSP);
  • видео- и изображениеобработка;
  • криптография и безопасность;
  • ускорители для CPU/GPU;
  • прототипирование ASIC.

3. Архитектура CPLD

3.1. Макроячейка (Macrocell)

Базовая единица логики, обычно включает:

  • Логический блок (LUT — Look‑Up Table или сумматор произведений);
  • Триггер (D‑триггер для хранения состояния);
  • Мультиплексоры для выбора режимов (регистровый/комбинационный);
  • Выходы с трёхстабильным буфером.

Пример: макроячейка может реализовать функцию вида

F=(A⋅B+C⋅D)⋅Q,

где Q — выход триггера.

3.2. Коммутационная матрица (Programmable Interconnect Array, PIA)

  • Набор программируемых связей между макроячейками и вводами/выводами.
  • Ограниченное число путей (в отличие от FPGA).
  • Обеспечивает детерминированные задержки.

3.3. Блоки ввода‑вывода (I/O Blocks)

  • Конфигурируемые режимы (вход, выход, двунаправленный).
  • Поддержка разных стандартов напряжений (LVTTL, LVCMOS, etc.).
  • Регистры для синхронизации.

4. Архитектура FPGA

4.1. Конфигурируемый логический блок (CLB)

Состоит из:

  • LUT (Look‑Up Table) — табличный вычислитель булевых функций (обычно 4–6 входов);
  • Триггер (D‑триггер);
  • Мультиплексеры для выбора режимов.

Пример: LUT с 4 входами хранит 16‑битную таблицу — любую функцию от 4 переменных.

4.2. Программируемые межсоединения (Routing Resources)

  • Каналы (вертикальные/горизонтальные) с переключателями.
  • Программируемые точки соединения (Switches) — управляют маршрутом сигнала.
  • Высокая гибкость, но переменные задержки.

4.3. Встроенные блоки (Hard IP)

  • Block RAM — быстрая память на кристалле;
  • DSP Slices — умножители‑аккумуляторы для цифровой обработки;
  • PLL/MMCM — блоки фазовой автоподстройки для генерации тактов;
  • Интерфейсные контроллеры (PCIe, Ethernet, DDR).

4.4. Блоки ввода‑вывода (I/O Blocks)

  • Поддержка множества стандартов (3,3 В, 1,8 В, дифференциальные пары).
  • Регистры для синхронизации.
  • Сердечники (SerDes) для высокоскоростных интерфейсов.

5. Технологии программирования и конфигурации

5.1. CPLD (энергонезависимая память)

  • EEPROM/Flash — конфигурация хранится на кристалле.
  • При включении — сразу готова к работе.
  • Ограниченное число циклов перезаписи (десятки/сотни тысяч).

5.2. FPGA (энергозависимая память)

  • SRAM‑based — конфигурация загружается при включении из внешней памяти (Flash, EEPROM).
  • Быстрое перепрограммирование.
  • Высокое число циклов перезаписи.
  • Требуется внешний контроллер загрузки.

5.3. Языки описания аппаратуры (HDL)

  • VHDL (VHSIC Hardware Description Language) — строгая типизация, популярен в Европе/оборонке.
  • Verilog — синтаксис похож на C, популярен в США/коммерческих проектах.
  • SystemVerilog — расширение Verilog с объектно‑ориентированными возможностями.

5.4. Средства разработки

  • Xilinx Vivado, Intel Quartus Prime — САПР для синтеза, размещения и трассировки.
  • Симуляторы (ModelSim, VCS) — верификация до аппаратной реализации.
  • Отладочные платы — тестирование на реальном железе.

6. Процесс проектирования на ПЛИС/ПЛМ

  1. Спецификация — описание функциональности и требований.
  2. Кодирование на HDL — описание логики на VHDL/Verilog.
  3. Функциональная верификация — симуляция без учёта задержек.
  4. Синтез — преобразование HDL в сеть вентилей и LUT.
  5. Размещение и трассировка (Place & Route) — распределение по CLB и прокладка связей.
  6. Временной анализ — проверка соблюдения таймингов.
  7. Генерация битового потока — файл конфигурации для загрузки в FPGA/CPLD.
  8. Тестирование на плате — отладка в реальном времени.

7. Сравнение CPLD и FPGA

ПараметрCPLDFPGA
Память конфигурацииЭнергонезависимая (Flash/EEPROM)Энергозависимая (SRAM)
Время стартаМгновенноТребуется загрузка
Логическая ёмкостьТысячи вентилейМиллионы вентилей
Гибкость межсоединенийОграниченная (PIA)Высокая (богатая маршрутизация)
ЗадержкиДетерминированныеПеременные (зависят от трассировки)
ЭнергопотреблениеНиже (при работе)Выше (из‑за SRAM)
СтоимостьНиже для малых проектовВыше, но оправдана для сложных систем
Циклы перезаписиОграниченные (10⁴–10⁵)Неограниченные
Типичные примененияУправление интерфейсами, замена логикиDSP, видео, ускорители, ASIC‑прототипирование

8. Современные тенденции и расширения

8.1. SoC FPGA (System‑on‑Chip FPGA)

  • Интеграция процессорных ядер (ARM Cortex‑A9/A53) на одном кристалле с FPGA.
  • Пример: Xilinx Zynq, Intel SoC FPGA.
  • Позволяет сочетать:
    • жёсткую логику (FPGA) для real‑time обработки;
    • софтварные ядра (CPU) для управления и ОС.

8.2. Высокоскоростные интерфейсы

  • Встроенные SerDes (до 56 Гбит/с и выше).
  • Поддержка PCIe Gen4/Gen5, Ethernet 100G/400G.

8.3. AI/ML ускорители

  • Специализированные DSP‑блоки с поддержкой INT8/INT16.
  • Библиотеки для свёрточных сетей (CNN) на FPGA

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *