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

ПЛИС

ПЛИС (программируемая логическая интегральная схема, англ. FPGA — Field-Programmable Gate Array) — это полупроводниковое устройство, предназначенное для создания цифровых электронных схем, логика работы которого не фиксируется на этапе производства, а задаётся пользователем посредством программирования (конфигурирования). В отличие от специализированных интегральных схем (ASIC), ПЛИС допускает многократное перепрограммирование, что позволяет изменять её функциональность после изготовления и установки в устройство.

История

Предпосылки и ранние разработки

Идея создания перепрограммируемых логических устройств возникла в 1960-х годах. Первыми коммерческими продуктами в этой области стали программируемые логические матрицы (ПЛМ, PLA) и программируемая матричная логика (ПМЛ, PAL), разработанные компаниями Signetics и Monolithic Memories (MMI) в 1970-х годах. Эти микросхемы позволяли реализовывать комбинационные логические функции, но имели ограниченную сложность и, как правило, программировались однократно.

Появление FPGA

Современная архитектура FPGA была изобретена Россом Фрименом, сооснователем компании Xilinx (ныне часть AMD), в 1985 году. Первая коммерческая FPGA — XC2064 — содержала 64 логических блока и 58 000 транзисторов. В 1980-х и 1990-х годах технология развивалась: увеличивалась плотность размещения элементов, снижалось энергопотребление, появлялись встроенные блоки памяти и специализированные функциональные узлы.

Современный этап

В 2000-х годах FPGA стали активно использоваться не только для прототипирования ASIC, но и в серийных изделиях. Крупнейшими производителями FPGA являются AMD (поглотившая Xilinx в 2022 году), Intel (поглотившая Altera в 2015 году), а также Lattice Semiconductor и Microchip Technology (через дочернюю компанию Microsemi). Современные FPGA могут содержать миллионы логических ячеек, встроенные процессорные ядра (например, ARM Cortex-A), высокоскоростные трансиверы (до 100 Гбит/с и выше) и блоки цифровой обработки сигналов (DSP).

Архитектура и устройство

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

Архитектура FPGA основана на матрице конфигурируемых логических блоков (CLB, Configurable Logic Block), окружённых программируемой сетью межсоединений. Каждый CLB содержит несколько логических элементов (LUT, Look-Up Table), триггеров и мультиплексоров. LUT представляет собой небольшую память, которая может реализовать любую логическую функцию от заданного числа входов (обычно 4–6).

Программируемые межсоединения

Сеть межсоединений состоит из горизонтальных и вертикальных каналов, содержащих программируемые точки соединения (переключатели). Конфигурация этих точек определяет, как логические блоки соединяются друг с другом, с блоками ввода-вывода (I/O) и со встроенными функциональными блоками.

Встроенные функциональные блоки

Для повышения производительности и снижения энергопотребления в FPGA встраивают специализированные аппаратные блоки:

  • Блоки памяти (BRAM)статическая память (SRAM) объёмом от нескольких килобит до десятков мегабит.
  • Блоки DSP — аппаратные умножители и аккумуляторы, оптимизированные для цифровой обработки сигналов (фильтрация, БПФ).
  • Трансиверы — высокоскоростные последовательные приёмопередатчики (SerDes) для работы с интерфейсами PCI Express, Ethernet, SATA, HDMI.
  • Процессорные ядра — могут быть «жёсткими» (аппаратно реализованными, например, ARM Cortex-A в Xilinx Zynq) или «мягкими» (реализованными на логике FPGA, например, MicroBlaze или RISC-V).

Конфигурационная память

Настройки FPGA хранятся в статической памяти (SRAM), которая загружается при каждом включении питания из внешнего энергонезависимого носителя (например, Flash-памяти). Существуют также FPGA с однократно программируемой (антифузной) или флэш-памятью, сохраняющие конфигурацию после отключения питания.

Классификация

По типу конфигурационной памяти

  • SRAM-базированные — наиболее распространённый тип (Xilinx, Intel). Требуют внешней загрузки при старте, но допускают многократное перепрограммирование.
  • Flash-базированные — сохраняют конфигурацию при отключении питания (Microsemi, Lattice). Медленнее в перепрограммировании, но энергонезависимы.
  • Антифузные — однократно программируемые (Actel, ныне Microsemi). Используются в космической и военной аппаратуре из-за высокой радиационной стойкости.

По области применения

  • FPGA общего назначения — универсальные микросхемы для широкого круга задач.
  • FPGA с аппаратными процессорами (SoC FPGA) — объединяют FPGA и один или несколько процессорных ядер на одном кристалле (например, Xilinx Zynq, Intel Cyclone V SoC).
  • FPGA с фиксированными функциями — содержат жёстко заданные блоки (например, сетевые ускорители, видеокодеки).

Языки описания аппаратуры и проектирование

HDL и HLS

Проектирование цифровых схем для FPGA ведётся на языках описания аппаратуры (HDL): VHDL и Verilog (SystemVerilog). Эти языки позволяют описывать поведение и структуру схемы на уровне регистровых передач (RTL). Альтернативным подходом является высокоуровневый синтез (HLS), при котором программа на C/C++ или OpenCL автоматически транслируется в RTL-описание.

Этапы разработки

  1. Спецификация и проектирование — создание архитектуры и написание HDL-кода.
  2. Синтезпреобразование HDL-описания в логическую схему из элементов библиотеки FPGA.
  3. Размещение и трассировка — размещение логических элементов на кристалле и прокладка соединений между ними.
  4. Генерация битстрима — создание файла конфигурации для загрузки в FPGA.
  5. Верификация — симуляция и тестирование на реальном устройстве.

Применение

Прототипирование ASIC

FPGA широко используются для создания прототипов будущих специализированных микросхем (ASIC). Это позволяет отладить архитектуру и программное обеспечение до запуска дорогостоящего производства.

Цифровая обработка сигналов

Благодаря встроенным DSP-блокам и параллельной архитектуре FPGA применяются для обработки сигналов в реальном времени: радиолокация, сонар, программно-определяемое радио (SDR), медицинская визуализация (УЗИ, МРТ).

Телекоммуникации и сети

FPGA используются в базовых станциях сотовой связи, сетевых коммутаторах и маршрутизаторах, устройствах для ускорения обработки пакетов (SmartNIC), а также в оборудовании 5G.

Высокопроизводительные вычисления (HPC) и ускорители

FPGA могут использоваться как акселераторы для специфических вычислительных задач, например, в финансовом моделировании, криптографии, сжатии данных, поиске подстрок. Компании Microsoft, Amazon и Baidu используют FPGA в своих центрах обработки данных (например, Project Catapult у Microsoft).

Промышленная автоматизация и встраиваемые системы

FPGA применяются в промышленных контроллерах, системах управления двигателями, робототехнике, где требуется высокая надёжность и низкая задержка.

Аэрокосмическая и оборонная промышленность

Радиационно-стойкие FPGA (например, серии RTG4 от Microchip, Virtex-5QV от AMD) используются в спутниках, ракетной технике, авионике и системах вооружения.

Преимущества и недостатки

Преимущества

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

Недостатки

  • Более высокое энергопотребление по сравнению с ASIC для той же задачи.
  • Меньшая тактовая частота (обычно 100–500 МГц) по сравнению с процессорами и ASIC.
  • Более высокая стоимость единицы при серийном производстве больших партий.
  • Сложность проектирования — требует специальных знаний в области цифровой схемотехники и HDL.

Критика и ограничения

Основные критические замечания в адрес FPGA связаны с их относительно высокой стоимостью и энергопотреблением по сравнению с массовыми ASIC. Кроме того, процесс разработки для FPGA считается более трудоёмким, чем программирование микроконтроллеров. В последние годы растёт конкуренция со стороны графических процессоров (GPU) и тензорных процессоров (TPU) в области машинного обучения, однако FPGA сохраняют преимущество в задачах, требующих минимальной задержки и детерминированного поведения.

Перспективы развития

Основные тенденции в развитии FPGA включают:

  • Увеличение количества логических ячеек и встроенной памяти.
  • Интеграция более мощных процессорных ядер и систем на кристалле (SoC).
  • Поддержка открытых архитектур, таких как RISC-V.
  • Развитие инструментов высокоуровневого синтеза (HLS) для упрощения разработки.
  • Использование в гетерогенных вычислительных системах (FPGA + GPU + CPU).

Источники

  • Xilinx. «UG902: Vivado Design Suite User Guide — High-Level Synthesis».
  • Altera (Intel). «FPGA Architecture: White Paper».
  • Maxfield, C. (2008). «FPGAs: Instant Access». Newnes.
  • Kuon, I., Rose, J. (2008). «Measuring the Gap between FPGAs and ASICs». IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.
  • Документация AMD/Xilinx, Intel/Altera, Lattice Semiconductor, Microchip (Microsemi).

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

На главную BFOmetr →