Программируемые логические интегральные схемы
Программируемые логические интегральные схемы (ПЛИС, англ. 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) — сторонний инструмент для синтеза.
Процесс разработки
- Спецификация — определение требований к устройству.
- Проектирование — написание кода на HDL или HLS.
- Синтез — преобразование HDL-кода в логическую схему.
- Размещение и трассировка — размещение логических блоков и соединений на кристалле.
- Верификация — симуляция и тестирование на отладочных платах.
- Загрузка — запись битового файла в 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 →