Программируемая пользователем вентильная матрица ( ПЛИС ) — это тип конфигурируемой интегральной схемы , которую можно многократно программировать после изготовления. ПЛИС — это подмножество логических устройств, называемых программируемыми логическими устройствами (ПЛИС). Они состоят из массива программируемых логических блоков с соединительной сеткой, которые можно настроить «в полевых условиях» для соединения с другими логическими блоками для выполнения различных цифровых функций. ПЛИС часто используются в ограниченном (низком) количестве производства заказных изделий, а также в исследованиях и разработках, где более высокая стоимость отдельных ПЛИС не так важна и где создание и изготовление заказной схемы нецелесообразно. Другие области применения ПЛИС включают телекоммуникации, автомобилестроение, аэрокосмическую промышленность и промышленность, которые выигрывают от их гибкости, высокой скорости обработки сигналов и возможностей параллельной обработки.
Конфигурация FPGA обычно пишется с использованием языка описания оборудования (HDL), например VHDL , аналогичного тем, которые используются для специализированных интегральных схем (ASIC). Раньше для записи конфигурации использовались принципиальные схемы .
Логические блоки ПЛИС могут быть сконфигурированы для выполнения сложных комбинационных функций или действовать как простые логические вентили , такие как AND и XOR . В большинстве ПЛИС логические блоки также включают элементы памяти , которые могут быть простыми триггерами или более сложными блоками памяти. [1] Многие ПЛИС могут быть перепрограммированы для реализации различных логических функций , что позволяет выполнять гибкие реконфигурируемые вычисления, как это выполняется в компьютерном программном обеспечении .
ПЛИС также играют определенную роль в разработке встраиваемых систем благодаря своей способности начинать разработку системного программного обеспечения одновременно с аппаратным обеспечением, обеспечивать моделирование производительности системы на очень ранней стадии разработки и проводить различные испытания системы и итерации проектирования до завершения разработки архитектуры системы. [2]
ПЛИС также широко используются при разработке ASIC для ускорения процесса моделирования.
Индустрия FPGA выросла из программируемой постоянной памяти (PROM) и программируемых логических устройств (PLD). PROM и PLD могли программироваться партиями на заводе или в полевых условиях (программирование в полевых условиях). [3]
Компания Altera была основана в 1983 году и выпустила первое в отрасли перепрограммируемое логическое устройство в 1984 году — EP300 — в корпусе которого имелось кварцевое окно, позволяющее пользователям светить ультрафиолетовой лампой на кристалл, чтобы стирать ячейки EPROM , хранящие конфигурацию устройства. [4]
Xilinx выпустила первую коммерчески жизнеспособную программируемую вентильную матрицу в 1985 году [3] – XC2064. [5] XC2064 имела программируемые вентили и программируемые соединения между вентилями, что стало началом новой технологии и рынка. [6] XC2064 имел 64 настраиваемых логических блока (CLB) с двумя трехвходовыми таблицами поиска (LUT). [7]
В 1987 году Центр надводных боевых действий ВМС США профинансировал эксперимент, предложенный Стивом Кассельманом, по разработке компьютера, который мог бы реализовать 600 000 перепрограммируемых вентилей. Кассельман добился успеха, и в 1992 году был выдан патент на систему. [3]
Altera и Xilinx продолжали без каких-либо проблем и быстро росли с 1985 года до середины 1990-х годов, когда появились конкуренты, которые подорвали значительную часть их доли рынка. К 1993 году Actel (позже Microsemi , теперь Microchip ) обслуживала около 18 процентов рынка. [6]
1990-е годы стали периодом быстрого роста ПЛИС, как в плане сложности схем, так и в плане объемов производства. В начале 1990-х годов ПЛИС в основном использовались в телекоммуникациях и сетях . К концу десятилетия ПЛИС нашли свое применение в потребительских, автомобильных и промышленных приложениях. [8]
К 2013 году Altera (31 процент), Actel (10 процентов) и Xilinx (36 процентов) вместе занимали приблизительно 77 процентов рынка ПЛИС. [9]
Такие компании, как Microsoft, начали использовать FPGA для ускорения высокопроизводительных систем с интенсивными вычислениями (например, центров обработки данных , которые управляют их поисковой системой Bing ) из-за преимущества производительности на ватт, которое обеспечивают FPGA. [10] Microsoft начала использовать FPGA для ускорения Bing в 2014 году, а в 2018 году начала развертывать FPGA в других рабочих нагрузках центров обработки данных для своей платформы облачных вычислений Azure . [11]
Следующие временные шкалы показывают прогресс в различных аспектах проектирования ПЛИС.
Начало проектирования — это новый индивидуальный проект для реализации на ПЛИС.
Современные ПЛИС имеют достаточно логических вентилей и блоков ОЗУ для реализации сложных цифровых вычислений. ПЛИС могут использоваться для реализации любой логической функции, которую может выполнять ASIC . Возможность обновления функциональности после поставки, частичная перенастройка части конструкции [18] и низкие единовременные затраты на проектирование по сравнению с конструкцией ASIC (несмотря на обычно более высокую стоимость единицы продукции) предлагают преимущества для многих приложений. [1]
Поскольку конструкции FPGA используют очень быстрые скорости ввода-вывода и двунаправленные шины данных , становится сложной задачей проверка правильной синхронизации действительных данных в течение времени установки и времени удержания. [19] Планирование этажей помогает распределять ресурсы в FPGA для соблюдения этих ограничений по времени.
Некоторые ПЛИС имеют аналоговые функции в дополнение к цифровым функциям. Наиболее распространенной аналоговой функцией является программируемая скорость нарастания на каждом выходном контакте, что позволяет инженеру устанавливать низкие скорости на слабо загруженных контактах, которые в противном случае звенели бы или недопустимо соединялись , и устанавливать более высокие скорости на сильно загруженных высокоскоростных каналах, которые в противном случае работали бы слишком медленно. [20] [21] Также распространены схемы драйверов кварцевых генераторов , встроенные RC-генераторы и контуры фазовой автоподстройки частоты со встроенными управляемыми напряжением генераторами, используемые для генерации и управления тактовыми сигналами, а также для высокоскоростных сериализаторов-десериализаторов (SERDES) передающих тактовых сигналов и восстановления тактовых сигналов приемника. Довольно распространены дифференциальные компараторы на входных контактах, предназначенные для подключения к дифференциальным каналам сигнализации . Несколько смешанных сигнальных ПЛИС имеют интегрированные периферийные аналого-цифровые преобразователи (АЦП) и цифро-аналоговые преобразователи (ЦАП) с аналоговыми блоками обработки сигнала, что позволяет им работать как система на кристалле (SoC). [22] Такие устройства стирают грань между ПЛИС, которая переносит цифровые единицы и нули на своей внутренней программируемой соединительной матрице, и программируемой пользователем аналоговой матрицей (FPAA), которая переносит аналоговые значения на своей внутренней программируемой соединительной матрице.
Наиболее распространенная архитектура FPGA состоит из массива логических блоков, называемых конфигурируемыми логическими блоками (CLB) или блоками логической матрицы (LAB) (в зависимости от поставщика), контактных площадок ввода-вывода и каналов маршрутизации. [1] Как правило, все каналы маршрутизации имеют одинаковую ширину (количество сигналов). Несколько контактных площадок ввода-вывода могут поместиться в высоту одной строки или ширину одного столбца в массиве.
«Схема приложения должна быть отображена в ПЛИС с достаточными ресурсами. В то время как количество требуемых логических блоков и входов/выходов легко определяется из проекта, количество необходимых каналов маршрутизации может значительно различаться даже среди проектов с одинаковым количеством логики. Например, перекрестный коммутатор требует гораздо больше маршрутизации, чем систолический массив с тем же количеством вентилей. Поскольку неиспользуемые каналы маршрутизации увеличивают стоимость (и снижают производительность) ПЛИС, не обеспечивая никаких преимуществ, производители ПЛИС стараются предоставить ровно столько каналов, чтобы можно было маршрутизировать большинство проектов, которые будут соответствовать таблицам поиска (LUT) и вводам/выводам . Это определяется оценками, такими как те, которые получены из правила Рента , или экспериментами с существующими проектами». [23]
В общем, логический блок состоит из нескольких логических ячеек. Типичная ячейка состоит из 4-входовой LUT, полного сумматора (FA) и D-триггера . LUT может быть разделена на две 3-входовые LUT. В нормальном режиме они объединяются в 4-входовую LUT через первый мультиплексор (mux). В арифметическом режиме их выходы подаются на сумматор. Выбор режима программируется во втором мультиплексоре. Выход может быть как синхронным , так и асинхронным , в зависимости от программирования третьего мультиплексора. На практике весь сумматор или его части сохраняются как функции в LUT для экономии места . [24] [25] [26]
Современные семейства FPGA расширяют вышеуказанные возможности, включая функциональность более высокого уровня, зафиксированную в кремнии. Наличие этих общих функций, встроенных в схему, уменьшает требуемую площадь и обеспечивает этим функциям повышенную производительность по сравнению с их построением из логических примитивов. Примерами этого являются умножители , общие блоки DSP , встроенные процессоры , высокоскоростная логика ввода-вывода и встроенная память .
Более высокопроизводительные FPGA могут содержать высокоскоростные мультигигабитные трансиверы и жесткие IP-ядра, такие как процессорные ядра , блоки управления доступом к среде Ethernet , контроллеры PCI или PCI Express и контроллеры внешней памяти . Эти ядра существуют наряду с программируемой фабрикой, но они построены из транзисторов вместо LUT, поэтому они имеют производительность и энергопотребление уровня ASIC, не потребляя значительного количества ресурсов фабрики, оставляя большую часть фабрики свободной для логики приложения. Мультигигабитные трансиверы также содержат высокопроизводительную схему формирования сигнала вместе с высокоскоростными сериализаторами и десериализаторами, компонентами, которые не могут быть построены из LUT. Функциональность физического уровня более высокого уровня (PHY), такая как линейное кодирование , может или не может быть реализована вместе с сериализаторами и десериализаторами в жесткой логике, в зависимости от FPGA.
Альтернативный подход к использованию жестких макропроцессоров заключается в использовании IP-ядер программного процессора , которые реализованы в логике FPGA. Nios II , MicroBlaze и Mico32 являются примерами популярных процессоров softcore. Многие современные FPGA программируются во время выполнения , что привело к идее реконфигурируемых вычислений или реконфигурируемых систем — ЦП , которые реконфигурируют себя в соответствии с поставленной задачей. Кроме того, начинают появляться новые архитектуры, не являющиеся FPGA. Программно-конфигурируемые микропроцессоры, такие как Stretch S5000, используют гибридный подход, предоставляя массив процессорных ядер и программируемых ядер, подобных FPGA, на одном чипе.
В 2012 году крупнозернистый архитектурный подход был продвинут на шаг дальше, объединив логические блоки и соединения традиционных ПЛИС со встроенными микропроцессорами и соответствующими периферийными устройствами для формирования полной системы на программируемом чипе . Примеры таких гибридных технологий можно найти в Xilinx Zynq-7000 all Programmable SoC , [27] которая включает в себя двухъядерный процессор ARM Cortex-A9 MPCore с тактовой частотой 1,0 ГГц , встроенный в логическую структуру ПЛИС, [28] или в Altera Arria V FPGA, которая включает в себя двухъядерный процессор ARM Cortex-A9 MPCore с тактовой частотой 800 МГц. Atmel FPSLIC — еще одно такое устройство, которое использует процессор AVR в сочетании с программируемой логической архитектурой Atmel. Устройства Microsemi SmartFusion включают в себя ядро жесткого процессора ARM Cortex-M3 (с флэш- памятью объемом до 512 КБ и оперативной памятью объемом 64 КБ) и аналоговые периферийные устройства , такие как многоканальные аналого-цифровые преобразователи и цифро-аналоговые преобразователи в своей структуре ПЛИС на основе флэш-памяти . [ необходима ссылка ]
Большая часть логики внутри FPGA представляет собой синхронную схему , требующую тактового сигнала . FPGA содержат выделенные глобальные и региональные сети маршрутизации для тактовой частоты и сброса, обычно реализуемые в виде H-дерева , поэтому они могут быть доставлены с минимальным перекосом . FPGA могут содержать аналоговые компоненты фазовой автоподстройки частоты или автоподстройки частоты с задержкой для синтеза новых тактовых частот и управления джиттером . Сложные конструкции могут использовать несколько тактовых сигналов с различными частотными и фазовыми соотношениями, каждый из которых образует отдельные тактовые домены . Эти тактовые сигналы могут генерироваться локально с помощью генератора или восстанавливаться из потока данных . Необходимо соблюдать осторожность при построении схемы пересечения тактовых доменов , чтобы избежать метастабильности . Некоторые FPGA содержат двухпортовые блоки RAM, которые способны работать с разными тактовыми частотами, помогая в построении FIFO-буферов и двухпортовых буферов, которые соединяют тактовые домены.
Чтобы уменьшить размер и энергопотребление ПЛИС, такие поставщики, как Tabula и Xilinx, представили 3D или многоярусные архитектуры . [29] [30] После представления своих 28-нм ПЛИС 7-й серии компания Xilinx заявила, что несколько деталей с самой высокой плотностью в этих линейках ПЛИС будут созданы с использованием нескольких кристаллов в одном корпусе, применяя технологию, разработанную для 3D-конструирования и многоярусных сборок кристаллов.
Подход Xilinx заключается в размещении нескольких (трех или четырех) активных кристаллов FPGA рядом на кремниевом интерпозере – едином куске кремния, который несет пассивное соединение. [30] [31] Многокристальная конструкция также позволяет создавать различные части FPGA с использованием различных технологических процессов, поскольку требования к процессу различаются между самой структурой FPGA и высокоскоростными последовательными приемопередатчиками 28 Гбит/с. FPGA, построенная таким образом, называется гетерогенной FPGA . [32]
Гетерогенный подход Altera подразумевает использование одного монолитного кристалла FPGA и подключение других кристаллов и технологий к FPGA с помощью встроенной технологии Intel Multi_die Interconnect Bridge (EMIB). [33]
Чтобы определить поведение ПЛИС, пользователь предоставляет проект на языке описания оборудования (HDL) или в виде схематического проекта. Форма HDL больше подходит для работы с большими структурами, поскольку позволяет указать высокоуровневое функциональное поведение, а не рисовать каждую часть вручную. Однако ввод схемы может обеспечить более легкую визуализацию проекта и его компонентов .
Используя электронный инструмент автоматизации проектирования , генерируется список соединений с технологическим отображением . Затем список соединений можно подогнать под фактическую архитектуру FPGA с помощью процесса, называемого размещением и маршрутизацией , который обычно выполняется фирменным программным обеспечением размещения и маршрутизации компании FPGA. Пользователь будет проверять результаты с помощью временного анализа , моделирования и других методов проверки и валидации . После завершения процесса проектирования и валидации сгенерированный двоичный файл, обычно с использованием фирменного программного обеспечения поставщика FPGA, используется для (пере)конфигурирования FPGA. Этот файл передается в FPGA через последовательный интерфейс ( JTAG ) или на внешнее запоминающее устройство, такое как EEPROM .
Наиболее распространенными HDL являются VHDL и Verilog . Графический язык программирования LabVIEW компании National Instruments (иногда называемый G ) имеет дополнительный модуль FPGA, доступный для целевого и программирования оборудования FPGA. Verilog был создан для упрощения процесса, делая HDL более надежным и гибким. Verilog имеет синтаксис, похожий на C, в отличие от VHDL. [34] [ самостоятельно опубликованный источник? ]
Для упрощения проектирования сложных систем в ПЛИС существуют библиотеки предопределенных сложных функций и схем, которые были протестированы и оптимизированы для ускорения процесса проектирования. Эти предопределенные схемы обычно называются ядрами интеллектуальной собственности (ИС) и доступны у поставщиков ПЛИС и сторонних поставщиков ИС. Они редко бывают бесплатными и обычно выпускаются под проприетарными лицензиями. Другие предопределенные схемы доступны в сообществах разработчиков, таких как OpenCores (обычно выпускаются под свободными и открытыми лицензиями, такими как GPL , BSD или аналогичные лицензии). Такие конструкции известны как оборудование с открытым исходным кодом .
В типичном потоке проектирования разработчик приложений FPGA будет моделировать проект на нескольких этапах в течение всего процесса проектирования. Первоначально описание RTL в VHDL или Verilog моделируется путем создания тестовых стендов для моделирования системы и наблюдения за результатами. Затем, после того как механизм синтеза сопоставил проект со списком соединений, список соединений транслируется в описание на уровне вентилей , где моделирование повторяется для подтверждения того, что синтез прошел без ошибок. Наконец, проект размещается в FPGA, и в этой точке значения задержки распространения могут быть обратно аннотированы в списке соединений, и моделирование может быть запущено снова с этими значениями.
В последнее время OpenCL (Open Computing Language) используется программистами для использования преимуществ производительности и энергоэффективности, которые обеспечивают ПЛИС. OpenCL позволяет программистам разрабатывать код на языке программирования C. [35] Для получения дополнительной информации см. высокоуровневый синтез и C в HDL .
Большинство FPGA полагаются на подход на основе SRAM для программирования. Эти FPGA являются внутрисистемно программируемыми и перепрограммируемыми, но требуют внешних загрузочных устройств. Например, флэш-память или устройства EEPROM могут загружать содержимое во внутреннюю SRAM, которая управляет маршрутизацией и логикой. Подход SRAM основан на CMOS .
Более редкие альтернативы подходу SRAM включают в себя:
В 2016 году давние конкуренты отрасли Xilinx (теперь часть AMD ) и Altera (теперь часть İntel ) были лидерами рынка FPGA. [37] В то время они контролировали почти 90 процентов рынка.
И Xilinx (теперь AMD), и Altera (теперь Intel) предоставляют фирменное программное обеспечение для автоматизации электронного проектирования для Windows и Linux ( ISE / Vivado и Quartus ), которое позволяет инженерам проектировать , анализировать, моделировать и синтезировать ( компилировать ) свои проекты. [38] [39]
В марте 2010 года Tabula анонсировала свою технологию FPGA, которая использует логику с временным мультиплексированием и межсоединения, которые, как утверждается, потенциально экономят средства для приложений с высокой плотностью. [40] 24 марта 2015 года Tabula официально закрылась. [41]
1 июня 2015 года Intel объявила о приобретении Altera примерно за 16,7 млрд долларов США и завершила сделку 30 декабря 2015 года. [42]
27 октября 2020 года AMD объявила о приобретении Xilinx [43] и завершила сделку стоимостью около 50 миллиардов долларов США в феврале 2022 года. [44]
В феврале 2024 года Altera снова стала независимой от Intel. [45]
Другие производители включают:
ПЛИС можно использовать для решения любой вычислимой задачи . ПЛИС можно использовать для реализации программного микропроцессора , например, Xilinx MicroBlaze или Altera Nios II . Но их преимущество заключается в том, что они значительно быстрее для некоторых приложений из-за их параллельной природы и оптимальности с точки зрения количества вентилей, используемых для определенных процессов. [51]
FPGA изначально были введены как конкуренты CPLD для реализации связующей логики для печатных плат . По мере увеличения их размера, возможностей и скорости, FPGA взяли на себя дополнительные функции до такой степени, что некоторые из них теперь продаются как полноценные системы на чипах (SoC). В частности, с введением специализированных умножителей в архитектуру FPGA в конце 1990-х годов, приложения, которые традиционно были единственным резервом цифровых сигнальных процессоров (DSP), начали использовать FPGA. [52] [53]
Развитие ПЛИС стимулировало рост использования этих устройств, архитектура которых позволяет разрабатывать аппаратные решения, оптимизированные для сложных задач, таких как сегментация изображений 3D МРТ, дискретное вейвлет-преобразование 3D, реконструкция томографических изображений или системы ПЭТ/МРТ. [54] [55] Разработанные решения могут выполнять интенсивные вычислительные задачи с параллельной обработкой, являются динамически перепрограммируемыми и имеют низкую стоимость, при этом отвечая жестким требованиям реального времени, связанным с медицинской визуализацией.
Другой тенденцией в использовании FPGA является аппаратное ускорение , когда можно использовать FPGA для ускорения определенных частей алгоритма и совместного использования части вычислений между FPGA и универсальным процессором. Поисковая система Bing известна тем, что приняла ускорение FPGA для своего алгоритма поиска в 2014 году. [56] По состоянию на 2018 год [обновлять]FPGA все чаще используются в качестве ускорителей ИИ, включая так называемый «Project Catapult» от Microsoft [11], а также для ускорения искусственных нейронных сетей для приложений машинного обучения .
Традиционно [ когда? ] ПЛИС были зарезервированы для определенных вертикальных приложений , где объем производства невелик. Для этих приложений с малым объемом, премия, которую компании платят в стоимости оборудования за единицу для программируемого чипа, более доступна, чем ресурсы разработки, потраченные на создание ASIC. По состоянию на 2017 год [обновлять], новая динамика стоимости и производительности расширила диапазон жизнеспособных приложений.
В тех случаях, когда периферийные устройства для персональных компьютеров существуют на нишевых рынках или изо всех сил пытаются пробиться на массовый рынок (иногда, несмотря на активное продвижение), может быть более рентабельным использовать ПЛИС для небольших производственных партий (например, 1000 единиц). Примерами могут служить экзотические продукты, такие как ArVid , архиватор лент VHS (только некоторые версии которого были основаны на ПЛИС) и бюджетный псевдо- SSD-накопитель i-RAM от Gigabyte Technology , который использовал ПЛИС Xilinx. [57] Часто заказной чип будет дешевле, если его производить в больших количествах, но ПЛИС могут быть выбраны для быстрого вывода продукта на рынок. Опять же, в той степени, в которой доступность недорогих ПЛИС увеличивается, может стать оправданным включение их даже в более крупные производственные партии.
Другие области применения ПЛИС включают в себя:
ПЛИС играют решающую роль в современных военных коммуникациях, особенно в таких системах, как Joint Tactical Radio System (JTRS), и в устройствах таких компаний, как Thales и Harris Corporation . Их гибкость и программируемость делают их идеальными для военных коммуникаций, предлагая настраиваемую и безопасную обработку сигналов. В JTRS, используемой американскими военными, ПЛИС обеспечивают адаптивность и обработку в реальном времени, что имеет решающее значение для соответствия различным стандартам связи и методам шифрования. Thales использует технологию ПЛИС при проектировании коммуникационных устройств, которые отвечают строгим требованиям военного использования, включая быструю реконфигурацию и надежную безопасность. Аналогичным образом, Harris Corporation, теперь часть L3Harris Technologies , включает ПЛИС в свои оборонные и коммерческие коммуникационные решения, улучшая обработку сигналов и безопасность системы. [62]
FPGA имеют как преимущества, так и недостатки по сравнению с ASIC или защищенными микропроцессорами, в отношении аппаратной безопасности . Гибкость FPGA делает вредоносные модификации во время изготовления менее рискованными. [63] Ранее для многих FPGA поток битов проекта был открыт, пока FPGA загружала его из внешней памяти (обычно при каждом включении питания). Все основные поставщики FPGA теперь предлагают спектр решений безопасности для разработчиков, таких как шифрование потока битов и аутентификация . Например, Altera и Xilinx предлагают шифрование AES (до 256 бит) для потоков битов, хранящихся во внешней флэш-памяти. Физические неклонируемые функции (PUF) представляют собой интегральные схемы, которые имеют свои собственные уникальные сигнатуры из-за обработки и также могут использоваться для защиты FPGA, занимая при этом очень мало места на оборудовании. [64]
ПЛИС, которые хранят свою конфигурацию внутри энергонезависимой флэш-памяти, например, программируемые устройства ProAsic 3 от Microsemi или XP2 от Lattice , не раскрывают поток битов и не нуждаются в шифровании . Кроме того, флэш-память для таблицы поиска обеспечивает защиту от сбоев при единичных событиях для космических приложений. [ необходимо разъяснение ] Клиенты, желающие получить более высокую гарантию устойчивости к несанкционированному доступу, могут использовать ПЛИС с однократной записью и защитой от перегрева от таких поставщиков, как Microsemi .
С помощью своих ПЛИС и систем на кристалле Stratix 10 компания Altera представила Secure Device Manager и физические неклонируемые функции для обеспечения высокого уровня защиты от физических атак. [65]
В 2012 году исследователи Сергей Скоробогатов и Кристофер Вудс продемонстрировали, что некоторые ПЛИС могут быть уязвимы для враждебных намерений. Они обнаружили, что критическая уязвимость бэкдора была изготовлена в кремнии как часть Actel/Microsemi ProAsic 3, что делает его уязвимым на многих уровнях, таких как перепрограммирование криптографических и ключей доступа , доступ к незашифрованному потоку битов, изменение низкоуровневых функций кремния и извлечение данных конфигурации . [66]
В 2020 году во всех ПЛИС Xilinx 7-й серии была обнаружена критическая уязвимость (под названием «Starbleed»), которая делала шифрование битового потока бесполезным. Обходного пути нет. Xilinx не выпустила аппаратную ревизию. Устройства Ultrascale и более поздние, уже появившиеся на рынке в то время, не были затронуты.
Исторически сложилось так, что FPGA были медленнее, менее энергоэффективны и в целом обеспечивали меньшую функциональность, чем их фиксированные аналоги ASIC. Исследование 2006 года показало, что проекты, реализованные на FPGA, требуют в среднем в 40 раз больше площади, потребляют в 12 раз больше динамической мощности и работают на одной трети скорости соответствующих реализаций ASIC. [67]
Преимущества ПЛИС включают возможность перепрограммирования, когда они уже развернуты (т. е. «в полевых условиях»), для исправления ошибок , и часто включают более короткое время выхода на рынок и более низкие единовременные затраты на проектирование. Поставщики также могут выбрать средний путь с помощью прототипирования ПЛИС : разрабатывать свои прототипы оборудования на ПЛИС, но производить их окончательную версию как ASIC, так что ее больше нельзя будет модифицировать после того, как проект будет принят. Это часто также касается новых проектов процессоров. [68] Некоторые ПЛИС имеют возможность частичной переконфигурации , что позволяет перепрограммировать одну часть устройства, в то время как другие части продолжают работать. [69] [70]
Основные различия между сложными программируемыми логическими устройствами (CPLD) и FPGA являются архитектурными . CPLD имеет сравнительно ограниченную структуру, состоящую из одной или нескольких программируемых логических матриц суммирования произведений, питающих относительно небольшое количество тактируемых регистров . В результате CPLD менее гибки, но имеют преимущество в виде более предсказуемых временных задержек и более высокого отношения логики к межсоединениям. [ необходима цитата ] С другой стороны, в архитектурах FPGA доминируют межсоединения . Это делает их гораздо более гибкими (с точки зрения диапазона конструкций, которые практичны для реализации на них), но также гораздо более сложными для проектирования или, по крайней мере, требующими более сложного программного обеспечения для автоматизации электронного проектирования (EDA). На практике различие между FPGA и CPLD часто заключается в размере, поскольку FPGA обычно намного больше с точки зрения ресурсов, чем CPLD. Обычно только FPGA содержат более сложные встроенные функции , такие как сумматоры , умножители , память и сериализаторы/десериализаторы . Другое общее отличие заключается в том, что CPLD содержат встроенную флэш-память для хранения своей конфигурации, в то время как FPGA обычно требуют внешней энергонезависимой памяти (но не всегда). Когда проект требует простого мгновенного включения (логика уже настроена при включении питания), обычно предпочтительны CPLD. Для большинства других приложений обычно предпочтительны FPGA. Иногда и CPLD, и FPGA используются в одной системной конструкции. В таких конструкциях CPLD обычно выполняют функции связующей логики и отвечают за « загрузку » FPGA, а также за управление последовательностью сброса и загрузки всей печатной платы. Поэтому, в зависимости от приложения, может быть разумным использовать и FPGA, и CPLD в одной конструкции. [71]