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

Программируемые логические интегральные схемы

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

История

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

Идея создания программируемой логики возникла в 1960-х годах, когда инженеры искали способы гибкой реализации цифровых схем без использования печатных плат с множеством отдельных микросхем. Первым коммерчески успешным программируемым логическим устройством стало ПЗУ с программируемой логикой (PROM), выпущенное в 1970 году. В 1975 году компания Harris Semiconductor представила программируемую логическую матрицу (PLA), а в 1978 году — программируемую матричную логику (PAL). Эти устройства, известные как простые программируемые логические устройства (SPLD), содержали небольшое количество логических элементов и программировались однократно.

Появление FPGA

Ключевой прорыв произошёл в 1984 году, когда компания Xilinx (основанная в 1984 году) выпустила первую в мире FPGA — XC2064. Изобретение приписывается Россу Фриману и Бернарду Вондершмитту. В отличие от предшественников, FPGA использовала архитектуру на основе массива конфигурируемых логических блоков (CLB) и программируемых соединений, что позволяло реализовывать сложные цифровые схемы с высокой степенью гибкости. В 1985 году компания Altera (основанная в 1983 году) представила свою первую программируемую логическую матрицу — EP300.

Развитие в 1990-х — 2000-х годах

В 1990-е годы FPGA быстро эволюционировали: увеличивалось количество логических элементов, появились встроенные блоки памяти (BRAM), цифровые сигнальные процессоры (DSP-блоки) и скоростные последовательные интерфейсы. В 1997 году Xilinx выпустила FPGA с архитектурой Virtex, которая стала стандартом для высокопроизводительных приложений. В 2000-х годах началось внедрение встроенных процессорных ядер (например, PowerPC в Xilinx Virtex-II Pro, ARM Cortex-A в Xilinx Zynq), что привело к появлению систем на кристалле (SoC) на базе FPGA.

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

В 2010-х годах FPGA стали ключевым компонентом в таких областях, как высокопроизводительные вычисления (HPC), искусственный интеллект, 5G-связь и обработка сигналов. В 2015 году Intel приобрела Altera за 16,7 миллиарда долларов, что свидетельствовало о стратегическом значении FPGA. В 2022 году AMD завершила приобретение Xilinx за 49 миллиардов долларов. Сегодня FPGA используются в широком спектре устройств — от космических аппаратов до потребительской электроники.

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

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

Современная FPGA состоит из трёх основных типов ресурсов:

  • Конфигурируемые логические блоки (CLB) — базовые логические ячейки, каждая из которых обычно содержит LUT (таблицу поиска), триггер и мультиплексор. LUT может реализовывать любую логическую функцию от 4-6 входов.
  • Программируемые соединения (маршрутизация) — сеть проводников и программируемых точек соединения (например, на основе SRAM-ячеек), которая позволяет соединять CLB, блоки памяти и другие компоненты.
  • Блоки ввода-вывода (IOB) — интерфейсы для подключения внешних устройств, поддерживающие различные стандарты сигналов (LVCMOS, LVDS, SSTL и др.).

Дополнительные ресурсы

  • Блоки памяти (BRAM) — синхронная статическая память (SRAM) ёмкостью от нескольких килобит до десятков мегабит.
  • Блоки цифрового сигнального процессора (DSP) — аппаратные умножители и аккумуляторы для выполнения операций умножения с накоплением (MAC) с высокой производительностью.
  • Скоростные последовательные трансиверы (SerDes) — для передачи данных по высокоскоростным интерфейсам (PCIe, Ethernet, SATA, JESD204B).
  • Встроенные процессорные ядра — либо жёсткие (hard) ядра (например, ARM Cortex-A), либо мягкие (soft) ядра (например, MicroBlaze, Nios II), реализуемые на логических ресурсах.
  • Блоки управления тактовой синхронизацией (PLL, MMCM) — для генерации и распределения тактовых сигналов.

Принцип программирования

Конфигурация FPGA хранится в статической памяти (SRAM) на кристалле. При включении питания данные загружаются из внешней энергонезависимой памяти (например, Flash) через специальный интерфейс (JTAG, SPI, BPI). Процесс программирования заключается в загрузке битового файла, который определяет состояние всех LUT, соединений и конфигурационных ячеек. Благодаря этому FPGA может быть перепрограммирована неограниченное количество раз.

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

По типу программируемости

  • Однократно программируемые (OTP) — используются в устройствах, где требуется высокая надёжность и защита от несанкционированного доступа.
  • Многократно программируемые (SRAM-based) — наиболее распространённый тип, допускающий перепрограммирование.
  • Flash-based — конфигурация хранится во флеш-памяти на кристалле, что обеспечивает энергонезависимость.

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

  • FPGA общего назначения — универсальные устройства для широкого круга задач.
  • FPGA для встраиваемых систем (SoC FPGA) — содержат встроенные процессорные ядра.
  • FPGA для высокопроизводительных вычислений — оптимизированы для работы с плавающей запятой и большими объёмами данных.
  • FPGA для радиочастотных приложений (RFSoC) — интегрируют аналого-цифровые и цифро-аналоговые преобразователи.
  • FPGA для космической и военной техники — устойчивы к радиации и экстремальным температурам.

По производителям

Основные производители FPGA на 2025 год:

  • AMD (ранее Xilinx) — семейства Virtex, Kintex, Artix, Spartan, Zynq.
  • Intel (ранее Altera) — семейства Stratix, Arria, Cyclone, MAX.
  • Lattice Semiconductor — семейства iCE, Mach, ECP, CrossLink.
  • Microchip Technology (ранее Microsemi) — семейства PolarFire, SmartFusion, IGLOO.
  • Achronix — высокопроизводительные FPGA с архитектурой Speedster.

Применение

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

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

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

В оборудовании для 5G-сетей, базовых станциях, маршрутизаторах и коммутаторах FPGA применяются для обработки пакетов данных, реализации протоколов связи (Ethernet, PCIe, CPRI) и шифрования. Они позволяют быстро адаптироваться к новым стандартам без замены аппаратного обеспечения.

Обработка сигналов и изображений

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

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

В суперкомпьютерах и ускорителях для искусственного интеллекта FPGA используются для ускорения нейронных сетей, криптографических операций и научных расчётов. Например, в проекте Microsoft Catapult FPGA применялись для ускорения поиска Bing. В 2023 году компания AMD представила FPGA-ускоритель Alveo V80 для задач HPC.

Космическая и авиационная техника

Благодаря устойчивости к радиации и возможности перепрограммирования на орбите, FPGA используются в спутниках, космических аппаратах (например, Mars Rover) и системах управления полётом. Компания Microchip (ранее Microsemi) специализируется на производстве радиационно-стойких FPGA.

Потребительская электроника

FPGA встречаются в игровых консолях (например, в Xbox One для эмуляции обратной совместимости), цифровых фотоаппаратах, проекторах и устройствах для майнинга криптовалют. В 2024 году компания Sony использовала FPGA в камерах для обработки изображений с низкой задержкой.

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

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

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

Недостатки

  • Высокое энергопотребление — по сравнению с ASIC, FPGA потребляют больше энергии для выполнения той же задачи.
  • Меньшая производительность — по сравнению с ASIC, FPGA имеют меньшую тактовую частоту и плотность логики.
  • Сложность разработки — требуется знание языков описания аппаратуры (VHDL, Verilog) и инструментов синтеза.
  • Высокая стоимость — для массового производства ASIC дешевле, чем FPGA.

Инструменты разработки

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

Основные языки для проектирования FPGA:

  • VHDL — стандарт IEEE 1076, широко используется в оборонной и аэрокосмической промышленности.
  • Verilog — стандарт IEEE 1364, популярен в коммерческой разработке.
  • SystemVerilog — расширение Verilog для моделирования и верификации.
  • HLS (High-Level Synthesis) — позволяет описывать логику на языках высокого уровня (C, C++, SystemC) с автоматической генерацией RTL-кода.

Среда проектирования

Основные САПР (системы автоматизированного проектирования):

  • Vivado (AMD/Xilinx) — для FPGA семейств Xilinx.
  • Quartus Prime (Intel) — для FPGA семейств Altera.
  • Lattice Diamond (Lattice Semiconductor) — для FPGA Lattice.
  • Libero SoC (Microchip) — для FPGA Microchip.
  • Synplify (Synopsys) — сторонний инструмент для синтеза.

Процесс разработки

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

Интересные факты

  • Первая FPGA XC2064 содержала всего 64 логических блока и 64 конфигурационных бита.
  • В 2023 году компания AMD представила FPGA с более чем 10 миллионами логических элементов (Virtex UltraScale+ VU19P).
  • FPGA используются в системе управления Большого адронного коллайдера (ЦЕРН) для обработки данных с детекторов.
  • В 2019 году компания Google использовала FPGA в своих серверах для ускорения машинного обучения (TPU v2 и v3).
  • Некоторые FPGA, например, Microsemi RTG4, способны работать в условиях космической радиации без сбоев в течение 15 лет.

Источники

  • Xilinx, «The History of FPGA», 2020.
  • Intel, «FPGA Architecture Overview», 2022.
  • AMD, «FPGA Product Catalog», 2024.
  • Lattice Semiconductor, «FPGA Design Guide», 2023.
  • Microchip Technology, «Radiation-Tolerant FPGAs», 2021.
  • Achronix, «Speedster FPGA Family», 2023.
  • «Field-Programmable Gate Array» — Wikipedia, 2025.
  • «Программируемые логические интегральные схемы» — Большая российская энциклопедия, 2024.

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

На главную BFOmetr →