Введение
В данной обзорной статье будет рассмотрена эволюция таких электронных компонентов, как программируемая логика (ПЛИС) и системы на кристалле (СнК), а так же средств разработки для них компании Xilinx. Многие согласятся, что сам термин ПЛИС (FPGA) более всего ассоциируется с компанией Xilinx, которая, является создателем данного класса электронных компонентов и с момента своего основания в 1984 году стала и остается поныне лидером и тренд-мэйкером данного направления, постоянно занимая более 50% объема мирового рынка ПЛИС. В отличие от своего постоянного конкурента, компании Altera (основана в 1983 г., в 2015 г. поглощена компанией INTEL), Xilinx удавлось сохранить свою независимость до сих пор. Более того, Xilinx расширяется, покупая другие компании. Это тем более удивительно, что Xilinx никогда не была большой по размеру компанией, конечно, это полноценная корпорация со штаб-квартирой в г. Сан-Хосе, Калифорния и филиалами вне США, но до сих пор это предприятие среднего размера с количеством сотрудников порядка 5000. Тем более впечатляющи успехи компании, умеющей эффективно использовать столь ограниченные человеческие ресурсы. Компания со своего основания и до сего времени работает по fabless модели, производя свою продукцию на TSMC. В отличие от многих электронных компаний – Xilinx компания финансово успешная, получившая в 2019 г. $3 млрд. дохода и $792 млн. прибыли.
Программируемая логика – история и перспективы
Прежде всего – программируемые логические интегральные схемы, или ПЛИС (в английском так же применяются термины FPGA – Field Programmable Gate Array и PLD – Programmable Logic Device) – это интегральные схемы. К моменту появления первой коммерческой ПЛИС в 1985 г. уже существовали большие интегральные схемы (БИС), включая i386 от Intel и логические микросхемы малой и средней степени интеграции от Texas Instruments (и других компаний). Кроме того, имелись микросхемы энергонезависимой памяти, с возможностью программирования пользователем, либо масочные, с однократной записью, либо с возможностью ультрафиолетовой очистки с последующей перезаписью.
Интересно, что появление БИС не уменьшило популярность микросхем малой степени интеграции, т.к. без них было невозможно обеспечить сопряжение между несколькими такими БИС. (Элементы, обеспечивающие такое сопряжение называются Glue Logic). Недостатки такого подхода – большая площадь, занимаемая ими на печатной плате и повышенное энергопотребление. На фото ниже приведен типичный образец дизайна того времени – советский клон 8-битного компьютера ZX-Spectrum на CPU Z80 (впоследствии появились советские аналоги - Т34ВМ1 и КР1858ВМ1).
Как видно, основную площадь платы занимают именно микросхемы малой степени интеграции. Для сравнения:
Чуть более поздний вариант с применением ПЛИС выглядит гораздо аккуратнее и компактнее.
Поэтому предшественники ПЛИС для замены Glue Logic появились самыми первыми, и это направление развивается как минимум с 1969 года. Сначала появились масочные устройства, затем с возможностью однократной записи, а еще позже - перезаписываемые УФ устройства. Количество элементов было столь незначительным, что все связи можно было указать вручную, затем появилась возможность задавать функциональность формулами булевой логики.
Впоследствии данная функциональность была полностью покрыта с помощью CPLD – программируемых устройств малой и средней емкости со встроенной энергонезависимой конфигурационной памятью. (Например «чемпион» по продолжительности производства серии - CoolRunner-II от Xilinx).
Но кроме замены glue logic, для программируемой логики имелись еще две важные области применения – разработка мелкосерийных устройств и прототипирование БИС/СБИС.
Поскольку цена на полноценную СБИС складывается из многомиллионных затрат на разработку функциональности и подготовку к производству, а само производство на единицу продукции тем дешевле, чем больше партия, для огромного количества мелкосерийных изделий производство специфических БИС для них оказывалось экономически невыгодным. Применение микропроцессоров также не всегда могло решить задачу в связи с их ограниченной производительностью, недетерминированным временем отклика и увеличением времени реакции при увеличении количества обрабатываемых сигналов. Первым откликом на данную потребность явились т.н. «полузаказные» БИС, состоящие из большого количества универсальных логических элементов, связи между которыми задавались с помощью уникальной матрицы связей, напыляемой отдельным слоем прямо на заводе. Это позволило существенно уменьшить затраты на мелкие серии, но все равно затраты на подготовку составляли от десятков до сотен тысяч $$, поэтому требовалось более универсальное и дешевое решение, а именно микросхема, конфигурируемая на стороне разработчика без привлечения к этому процессу завода-изготовителя. Именно таким решением и явились ПЛИС (по-английски FPGA - Field Programming Gate Array).
Классическая архитектура ПЛИС
Именно такую универсальную архитектуру, функциональность которой не является жестко заданной, а определяется самим разработчиком, и придумала компания Xilinx, а затем успешно вывела в 1985 г. на рынок первые коммерческие устройства. К таким решениям относятся:
- Конфигурируемые логические ячейки, включающие в себя универсальные логические элементы (LUT) и триггера
- Конфигурируемая логическая матрица, задающая связи между ячейками
- Внутренняя статическая память, хранящая текущую конфигурацию микросхемы
Все вышеперечисленные архитектурные особенности классических ПЛИС остаются неизменными и в наше время.
Первую в мире коммерческую ПЛИС типа XC2064 Xilinx выпустила в конце 1985 года. Пресс-релиз об этом событии от 1.11.1985 до сих пор хранится на сайте Xilinx и с ним можно ознакомиться.
Устройство, изготовленное по 2 мкм (по другим сведениям – 2.5 мкм) КМОП техпроцессу, содержало 64 логических элемента (состоящих из логических блоков с 4я входами и 2я выходами и триггера), 56 ячеек ввода/вывода, работало на тактовых частотах 18 МГц (либо 33 МГц) и предлагалось по цене $55-80 за единичные экземпляры и $12-15 в партиях 10000-50000 штук.
https://spectrum.ieee.org/tech-history/silicon-revolution/chip-hall-of-fame-xilinx-xc2064-fpga
Разработка велась под руководством Росса Фридмана, сооснователя Xilinx. На сайте Xilinx мне не удалось найти даташит на устройство, но в ничего не забывающем интернете я его легко нагуглил и скачал. А в первом выпуске Xcell Journal (о нем-ниже) от 1988 года я нашел вот такую таблицу выбора компонентов:
Преимущества и недостатки ПЛИС
Со временем номенклатура ПЛИС увеличивалась, а их характеристики улучшались, а сами ПЛИС начали широко применяться в различных областях благодаря своим уникальным преимуществам по сравнению с микросхемами жесткой логики.
Основные преимущества ПЛИС:
- Универсальность – один чип подходит для решения огромного количества задач.
- Возможность применения в мелкосерийных и единичных изделиях.
- Возможность конфигурирования на стороне разработчика.
- Возможность последовательного наращивания функциональности и исправления обнаруженных ошибок без изменения аппаратуры.
- Возможность последующего переконфигурирования, в том числе – частичного, выполняемого «на лету».
Вместе с тем, у ПЛИС имеются и недостатки:
- Более высокая цена за одну микросхему (по сравнению с массовой СБИС)
- Меньшая логическая емкость
- Меньшая производительность и тактовая частота по сравнению с заказной БИС, выполненной по тем же технологическим нормам
Поэтому благодаря своим преимуществам перед заказными СБИС, микросхемы ПЛИС получили широчайшее распространение, даже несмотря на отмеченные их недостатки.
Современные ПЛИС
На данный момент программируемая логика разделяется на большое количество различных типов устройств, поэтому для них необходима некоторая классификация. Условно ее можно разбить на 3 больших класса.
Класс
Применение
Особенности
CPLD
Glue Logic
Простая функциональность
От десятков до тысяч логических элементов
Внутреннее конфигурационное ПЗУ либо FLASH. Как правило, имеется конфигурационное ОЗУ, которое инициализируется при включении питания из внутреннего ПЗУ. Альтернативы – конфигурирование с помощью распределенных flash-ключей либо с помощью пережигаемых перемычек (antifuse) применяются гораздо реже.
ПЛИС
(FPGA)
Реализация устройств цифровой логики в различных областях применения
Ускорение серверных/облачных вычислений
От тысяч до миллионов логических элементов. Конфигурация в подавляющем большинстве записывается из внешней памяти во внутреннее конфигурационное ОЗУ, flash и antifuse варианты существуют, но применяются значительно реже.
Современная тенденция – применение большого числа аппаратных IP-ядер (Hard IP Cores).
СнК
(SoC)
Специализированные компьютерные системы.
Класс ПЛИС, имеющий аппаратные процессорные ядра. Как правило, используется одно либо несколько ядер ARM. Конфигурирование в подавляющем случае осуществляется с помощью внутреннего конфигурационного ОЗУ.
В современных СнК Xilinx процессорное ядро не требует конфигурирования и сразу готово к работе. Программируемая логика конфигурируется с помощью процессорного ядра, причем может динамически переконфигурироваться. При такой архитектуре программируемую логику можно рассматривать как универсальное конфигурируемое периферийное устройство для процессора.
Кроме того, имеются следующие критерии:
Параметр
Описание продуктов Xilinx
Технологические нормы
Сейчас Xilinx осваивает изделия, выполненные по 7нм. техпроцессу. Инженерные образцы систем на кристалле серии Versal уже доступны, production ожидается в конце 2020. Серийные изделия выпускаются по нормам от 16 до 45 нм.
Поддерживаемые стандарты ввода/вывода
Различные стандарты от 3.3В до 0.8В по напряжению. По скорости – до 56 Gbs.
Аппаратно реализованные IP-ядра
100GE Phy, PCI, 56G transceivers, DSP, BRAM & Ultra RAM.
Способ конфигурирования
Битстрим, записываемый во внутреннюю конфигурационную SRAM.
Исполнение
- C – Commercial
- E - Extended
- I - Industrial
- XA – Automotive (Автомобильное)
- M - Military
- XQ – повышенной надежности
- XQR - радиационно-стойкое
Применение программируемой логики
На данный момент устройства программируемой логики Xilinx используются для решения задач в различных областях применения. Среди них:
Область применение или решаемая задача
Тип, серия
Описание
Сопряжение между элементами
CPLD: CoolRunner
Использование в качестве glue logic
Простые логические устр-ва
CPLD: CoolRunner
FPGA: Spartan7, Artix7
Нестандартные устройства малого и среднего уровня сложности; сопряжение с нестандартной аппаратурой; реализация нестандартных интерфейсов
Логические устройства среднего уровня сложности
FPGA: Artix7, Kintex7, KintexUS/US+
Устройства с шиной PCI; сетевые коммуникационные устройства; модуляторы/демодуляторы;
Сложные логические устройства
FPGA:KintexUS/US+,
VirtexUS/US+
Обработка видео; коммуникация 100GE/400GE; прототипирование;
Простые микропроцессорные системы с нестандартной периферией
СнК: Zynq7000S,
ПЛИС: Spartan7
Отладочная плата SP701 для Spartan-7
Встраиваемые контроллеры; умный дом; IIoT
Сложные микропроцессорные системы с нестандартной периферией
СнК: Zynq7000, ZynqUS+, Versal
Интеллектуальные видеосистемы, ADAS, телекоммуникация, встраиваемые управляющие системы
Системы искусственного интеллекта
ПЛИС: VirtexUltaraScale+, СнК: ZynqUS+, Versal
Реализация систем, основанных на нейронных сетях, автономных, либо серверных/облачных
Облачные/серверные Ускорители
Аппаратная реализация кода на C/C++; ускорение алгоритмов; телекоммуникация; HFT; ускорители обработки bigdata
Прототипирование ASIC
VirtexUS+
Прототипирование функциональности ASIC; отладка логики функционирования
Для примера возьмем такую сферу применения ПЛИС, как прототипирование.
Оказалось, что благодаря возможности переконфигурирования они отлично подходят для прототипирования новых заказных СБИС. Колоссальная экономия заключается в возможности отладить всю логику проекта до отправки документацию на фабрику для изготовления. Именно так, например, в компании Intel был разработан процессор Pentium – для его прототипирования потребовалось использовать несколько чипов ПЛИС Xilinx. Сейчас комплексы для прототипирования ASICов производят несколько компаний, и, несмотря на свою огромную цену, данные комплексы существенно снижают общую стоимость разработки ASICов. На рисунке ниже приведена относительно современная, причем не самая дорогая плата AVT-ONIX-VU440 компании Dgtronix.
Автор: Викулин Владимир, инженер по применению Xilinx компании Макро Групп.
ССЫЛКИ
- Сайт Xilinx, url: https://www.xilinx.com/
- Электронный журнал «XCell Journal», url: https://www.xilinx.com/about/xcell-publications.html
- Википедия, статья «ПЛИС», url: https://ru.wikipedia.org/wiki/ПЛИС