Китайский производитель печатных плат высокого качества
Введение
FPGA (Field Programmable Gate Array, программируемая пользователем вентильная матрица) — это интегральная схема, которую можно настроить или запрограммировать после изготовления. Это позволяет настраивать FPGA для выполнения конкретных функций, необходимых для различных приложений.
FPGA содержит программируемые логические блоки и межсоединения, которые можно настроить для реализации пользовательских цифровых схем и систем. В отличие от микропроцессоров с фиксированной аппаратной функцией, логика и маршрутизация в FPGA могут быть изменены по мере необходимости путем перепрограммирования. Это делает FPGA чрезвычайно универсальными для множества приложений.
Основные возможности и преимущества FPGA включают:
- Индивидуализированная аппаратная функциональность
- Параллельная обработка для высокой производительности
- Перепрограммируемые цифровые схемы
- Прототипирование и тестирование новых устройств
- Гибкие конфигурации ввода/вывода
- Низкое энергопотребление
- Короткое время вывода на рынок
FPGA широко используются для прототипирования новых пользовательских ASIC-дизайнов, специализированных приложений параллельной обработки, аэрокосмических и оборонных систем, автомобильных систем, устройств IoT и встраиваемых устройств, а также других приложений, требующих гибкой или высокоскоростной обработки.
Крупнейшие производители FPGA включают Xilinx и Intel (ранее Altera). Существует множество различных типов FPGA, оптимизированных для таких приложений, как высокоскоростная обработка, DSP, низкое энергопотребление или высокая плотность ввода/вывода.
История FPGA
Концепция программируемых пользователем логических устройств возникла в 1980-х годах, чтобы заполнить пробел между жестко фиксированными интегральными схемами (ASIC), разработанными для выполнения конкретных задач, и программируемыми микропроцессорами, которые не обеспечивали необходимую производительность для многих узкоспециализированных нужд.
В 1984 году соучредители Xilinx, Росс Фриман и Бернард Вондершмитт, изобрели первую коммерчески жизнеспособную программируемую пользователем вентильную матрицу. Это позволило проектировщикам схем настраивать межсоединения между набором логических блоков для создания пользовательских цифровых схем путем программирования, а не изготовления нового чипа каждый раз.
Другие компании, такие как Actel (ныне Microsemi), вскоре последовали за Xilinx, выводя на рынок программируемые вентильные матрицы. Ранние FPGA были относительно простыми, содержащими от 1 до 10 тысяч вентилей, и использовались в прикладной логике. С развитием производства кремния плотность и возможности FPGA быстро росли.
К 1990-м и 2000-м годам FPGA с десятками тысяч до более миллиона вентилей стали более распространенными. Это позволило реализовывать сложные системы, такие как целые микропроцессоры, на одном чипе FPGA.
Архитектура FPGA также эволюционировала, добавляя встроенные функции, такие как блоки памяти, DSP-срезы для математической обработки, программируемые I/O, высокоскоростные передатчики и встроенные микропроцессорные ядра. Крупные производители, такие как Xilinx и Intel, сегодня выпускают FPGA с миллиардами транзисторов, способных выполнять чрезвычайно сложные и требовательные задачи обработки.
Основы архитектуры FPGA
Внутренняя архитектура FPGA состоит из следующих основных компонентов, которые можно настроить:
- Конфигурируемые логические блоки (CLB) — основные логические единицы, которые могут выполнять простые логические функции и более сложные функции. CLB содержат таблицы поиска (LUT), которые позволяют им программироваться для выполнения любой логической операции.
- Блоки ввода/вывода (IOB) — обеспечивают интерфейс между выводами I/O на корпусе чипа FPGA и внутренней конфигурируемой логикой. Поддерживают различные сигнальные стандарты.
- Межсоединения — программируемая маршрутизация между CLB и IOB. Позволяют гибко соединять внутренние компоненты для реализации желаемой функции схемы. Могут включать различные длины и типы, такие как глобальные, региональные и прямые соединения.
- Память — многие FPGA включают выделенные блоки памяти, которые могут использоваться схемами, размещенными в устройстве. Это позволяет избежать интеграции отдельных микросхем памяти.
- Встроенные IP — встроенные IP-ядра процессоров, DSP-срезы, интерфейсы PCIe, передатчики и другие встроенные функции могут включаться в высокопроизводительные FPGA для их оптимизации под целевые приложения.
- Тактовая схема — управление и распределение тактовых сигналов по FPGA является критически важным. Входы тактовых сигналов, PLL, DLL и тактовые буферы помогают достичь этого.
Пользователь программирует FPGA, задавая логические функции для CLB, проводку межсоединений между блоками и I/O, использование памяти и встроенных IP, тактовые ресурсы и настройки I/O. Этот процесс программирования называется конфигурацией.
Отличия FPGA от ASIC
FPGA существенно отличаются от специализированных интегральных схем (ASIC):
FPGAASICПрограммируется пользователем после производстваИзготавливается для фиксированной функцииПерепрограммируемая логикаФункция ASIC фиксирована после производстваЛегче прототипировать и вносить измененияДорого и медленно менять функцию после изготовленияПараллельная обработка хорошо подходит для потоковых приложенийОбычно лучше по производительности и эффективности для фиксированных функцийОбычно для малых объемов производстваВысокий объем оправдывает затраты на проектированиеНизкие затраты на разработкуГораздо более высокие затраты на разработку и изготовление
FPGA более гибки и быстрее в разработке, но менее оптимизированы по форме и производительности, чем кастомные ASIC. Перепрограммируемость и более низкие затраты делают FPGA популярными для малых и средних объемов продукции, где кастомные ASIC могут быть нецелесообразны. FPGA также широко используются для прототипирования ASIC-дизайнов для тестирования перед переходом к изготовлению ASIC.
Процесс проектирования FPGA
Общий процесс проектирования приложения с FPGA состоит из следующих этапов:
- Ввод дизайна — захват цифровой логики, которая будет реализована, с использованием языка описания аппаратуры (HDL), такого как VHDL или Verilog, или схемного диаграммы. Это исходный код, описывающий желаемую аппаратную функциональность.
- Синтез — исходный код синтезируется в представления логических вентилей более низкого уровня и оптимизируется для целевой архитектуры FPGA.
- Симуляция — проект симулируется до и после синтеза для проверки правильности функционального поведения. Симуляция помогает отладке.
- Размещение и трассировка — логические вентили «размещаются» в определенных аппаратных ресурсных блоках FPGA и «трассируются» вместе с использованием доступных путей межсоединений.
- Генерация битового потока — размещенный и трассированный проект преобразуется в бинарный файл, который программирует конфигурацию FPGA. Этот файл называется битовым потоком.
- Конфигурация — битовый поток загружается в устройство FPGA, чтобы фактически настроить его аппаратные ресурсы для реализации проекта пользователя.
- Верификация в системе — тестирование и отладка функциональности в реальных условиях после конфигурации и интеграции.
Производители FPGA предоставляют инструменты для проектирования и программирования для помощи и автоматизации этого процесса проектирования. Популярные инструменты включают Xilinx Vivado и Intel Quartus Prime. Языки HDL, такие как VHDL и Verilog, используются для ввода дизайна.
Технологии программирования FPGA
Существует несколько методов и технологий для программирования конфигурируемой логики в FPGA:
- На основе SRAM — ячейки SRAM управляют конфигурацией логики и межсоединений FPGA. Волатильные, требуют конфигурации при каждом включении. Наиболее распространенный подход, используемый крупными производителями.
- Антифьюз — одноразовые программируемые соединения между логическими блоками. Используется в некоторых недорогих FPGA. Постоянные после программирования.
- Flash/EEPROM — ячейки Flash или EEPROM используются для конфигурационных ячеек. Позволяют перепрограммирование, но являются неволатильными, поэтому сохраняют конфигурацию при отключении питания.
- CPLD — сложные программируемые логические устройства имеют архитектуру между PAL и FPGA. Меньшие по размеру, с более предсказуемыми временными характеристиками.
- Безопасность/Шифрование — передовые FPGA могут иметь защиту битового потока с шифрованием и аутентификацией для предотвращения кражи IP.
Программирование на основе SRAM доминирует благодаря комбинации перепрограммируемости и плотности. Антифьюз, Flash и CPLD обслуживают нишевые роли с более низкой плотностью. Функции безопасности помогают защитить IP-дизайны FPGA.
Основные области применения FPGA
Гибкость и производительность FPGA делают их очень привлекательными для многих передовых приложений, включая:
- Аэрокосмическая и оборонная промышленность — используются в системах наведения, обработке радиолокационных сигналов, спутниках и миссионных компьютерах, где радиационно-стойкие FPGA обеспечивают надежность.
- Автомобильная промышленность — реализуют обработку дисплеев, ADAS, системы видения, управление силовой установкой, помощь водителю. Соответствуют стандартам надежности автомобильной промышленности.
- IoT/Встраиваемые устройства — предоставляют пользовательскую логику, низкое энергопотребление и малые форм-факторы, необходимые для датчиков, беспроводных устройств и устройств с батарейным питанием.
- Обработка изображений/видео — аппаратное ускорение алгоритмов, таких как сверточные нейронные сети, кодирование/декодирование и аналитика.
- 5G телекоммуникации — высокоскоростное подключение и обработка для сетевого оборудования с использованием FPGA с высокой пропускной способностью ввода/вывода и DSP.
- Ускорение AI — двигатели вывода FPGA, предоставляющие оптимизированную параллельную обработку для нейронных сетей и машинного обучения.
- Прототипирование — FPGA используются для моделирования и проверки функциональности новых ASIC-дизайнов перед изготовлением.
FPGA продолжают расти в возможностях и проникать в области применения, традиционно решаемые CPU и GPU. Их гибкость делает их идеальным выбором, когда требуется аппаратное ускорение.
Основные компании-производители FPGA
Два доминирующих поставщика, поставляющих большинство FPGA по всему миру, — это Xilinx и Intel (ранее Altera):
- XilinxОснована в 1984 году, изобрела первую коммерчески жизнеспособную FPGA.
Предлагает широкий ассортимент, включая высококлассные Versal ACAP и средний сегмент 7-серии FPGA.
Недавно приобретена AMD за 35 миллиардов долларов в рамках роста адаптивных вычислений. - Intel (ранее Altera)Основной поставщик FPGA после приобретения Altera в 2015 году.
Ассортимент от недорогих MAX 10 FPGA до флагманских Stratix 10 FPGA.
FPGA используются по всей Intel для прототипирования новых продуктов и технологий.
Использует производственные возможности Intel и комбинирует x86 CPU с FPGA.
В дополнение к этим двум гигантам FPGA, другие компании, занимающие специализированные ниши FPGA, включают:
- Microsemi — радиационно-стойкие FPGA для аэрокосмической и оборонной промышленности.
- Lattice Semiconductor — малые, низкопотребляющие FPGA для потребительских устройств.
- QuickLogic — низкопотребляющие встраиваемые FPGA-устройства.
- Achronix — высокопроизводительные FPGA для дата-центров.
- Flex Logix — лицензирование недорогих FPGA IP.
Рынок FPGA продолжает видеть интенсивные инновации и новых участников, даже несмотря на консолидацию вокруг Xilinx и Intel. Рост 5G, AI, встраиваемого видения и других приложений стимулирует спрос на более передовые программируемые логические решения.
Тенденции и инновации в FPGA
FPGA продолжают быстро развиваться, чтобы увеличить возможности и предоставить преимущества перед другими технологиями обработки для специализированных требований:
- Гетерогенная интеграция — объединение ткани FPGA с жесткими процессорными ядрами (ARM, RISC-V), передатчиками, памятью, аналоговыми компонентами и т. д. на одном чипе предоставляет возможности "системы на кристалле".
- Высокоуровневое проектирование — повышение абстракции проектирования над HDL, используя C/C++, OpenCL, MATLAB и другие языки для описания поведения FPGA. Это расширяет доступность.
- 3D-упаковка — укладка кристаллов FPGA и интеграция с другими кристаллами, такими как HBM-память, обеспечивает гораздо большую пропускную способность и плотность.
- Безопасность — корневые элементы доверия, шифрование/аутентификация битового потока и другие функции для защиты конфигурации FPGA и IP от взлома или кражи.
- Облачные и дата-центры — внедрение в публичные облачные FaaS-предложения и ускорение дата-центров с использованием FPGA благодаря их гибкости и производительности на ватт.
- Мягкие микроконтроллеры — внутренние мягкие микроконтроллерные ядра, реализованные внутри FPGA для недорогих встраиваемых приложений.
- Ускорение AI — оптимизированные процессоры глубокого обучения FPGA для вывода, использующие низкую точность и квантизацию для достижения эффективности.
FPGA продолжат стираться в адаптивные вычислительные устройства по мере их эволюции за пределы базовой программируемой логики в гетерогенные системы-на-кристалле. Их гибкость для перепрограммирования аппаратной логики на лету делает их основополагающей технологией будущего.
Часто задаваемые вопросы
Какие основные различия между FPGA и CPLD?
Сложные программируемые логические устройства (CPLD) отличаются от FPGA несколькими способами:
- Меньшая логическая емкость — обычно тысячи, а не миллионы вентилей.
- Основаны на архитектуре суммы произведений.
- Оптимизированы для предсказуемых временных характеристик.
- Работают сразу при включении питания (без необходимости конфигурации битового потока).
- Часто более низкая стоимость и энергопотребление.
- Могут быть встроены в Flash/OTP, а не в SRAM.
Таким образом, CPLD выполняют более простые функции логики, в то время как FPGA могут реализовывать сложные системы.
Какие преимущества использования VHDL по сравнению с Verilog для проектирования FPGA?
VHDL обычно предпочитается для крупных ASIC и FPGA-дизайнов, требующих тщательной верификации для производственного изготовления. Verilog начал как язык моделирования и популярен среди фронтенд-дизайнеров. Основные различия:
- VHDLСтрого типизированный, синтаксис, похожий на английский язык.
Большой набор типов данных.
Отличная поддержка инструментов.
Подходит для верификации и моделирования сверху вниз. - VerilogСинтаксис, похожий на C, менее строгая типизация.
Меньше типов данных.
Подходит для поведенческого моделирования.
Быстрое моделирование, прототипирование.
Широко используется в образовательных учреждениях.
Как программируются/конфигурируются FPGA?
Большинство FPGA основаны на SRAM и программируются путем загрузки битового потока:
- Логика дизайна создается и выводится в бинарный файл битового потока после размещения и трассировки.
- При включении питания битовый поток загружается из флеш-памяти/хранилища в ячейки SRAM.
- Настройки SRAM определяют логику, конфигурацию I/O, маршрутизацию для реализации дизайна.
- Это можно перепрограммировать, перепрошив новый битовый поток.
Таким образом, FPGA обеспечивают полную аппаратную конфигурируемость через программируемые SRAM-битовые потоки.
Какие CAD-инструменты используются для проектирования FPGA?
Распространенные CAD-инструменты для FPGA включают:
- Xilinx Vivado — для синтеза, размещения и трассировки, генерации битового потока.
- Intel Quartus — дизайн-система Altera/Intel.
- Симуляторы SystemVerilog/VHDL — ModelSim, Riviera-PRO.
- MATLAB/Simulink — ввод дизайна на основе моделей.
- Компиляторы C/C++ — высокоуровневый синтез в вентилей.
- Библиотеки IP — блоки, предоставляемые производителями FPGA.
- Инструменты для проектирования печатных плат — подключение выводов FPGA к плате.
Производители FPGA, такие как Xilinx, предоставляют интегрированные среды, которые охватывают весь процесс от ввода дизайна до битового потока. Дополнительные инструменты помогают в моделировании, проектировании печатных плат, повторном использовании IP и проектировании на уровне C.
Какие основные проблемы при работе с FPGA?
Некоторые общие проблемы при проектировании FPGA включают:
- Крутая кривая обучения программирования с использованием HDL, таких как Verilog и VHDL.
- Сложные цепочки инструментов требуют опыта для оптимизации на всех этапах.
- Проблемы с закрытием времени и заторами маршрутизации по мере увеличения емкости дизайнов.
- Контроль энергопотребления и управление тепловыми режимами.
- Отладка в рамках языков описания аппаратуры.
- Стоимость инструментов и IP добавляет к накладным расходам на разработку.
- Необходимость быть в курсе быстро развивающихся архитектур.
Однако непрерывные улучшения в инструментах проектирования, уровнях абстракции и встроенных возможностях отладки помогают преодолеть эти проблемы.
Заключение
FPGA — это интегральные схемы, чья логика и маршрутизация могут быть переконфигурированы после производства. Это обеспечивает аппаратную гибкость по сравнению с фиксированными функциями ASIC. FPGA содержат логические блоки, I/O и межсоединения, которые можно программировать с помощью HDL или схемного ввода дизайна.
Основные применения FPGA включают аэрокосмические и оборонные системы, инфраструктуру 5G, автомобильную электронику, устройства IoT и аппаратное ускорение для вывода AI. Основными производителями являются Xilinx и Intel/Altera, но новые участники продолжают вносить инновации в FPGA для встроенных, облачных вычислений, сетевых и других применений.
Тенденции в эволюции FPGA включают гетерогенную интеграцию, повышение уровней абстракции, 3D-упаковку и безопасность. По мере того как FPGA развиваются от базовой программируемой логики к адаптивным вычислительным платформам, они будут играть все более важную роль в различных электронных системах.