Программируемые логические интегральные схемы (ПЛИС) с архитектурой FPGA – по всей видимости, один из самых интересных продуктов среди микросхем программируемой логики. Эта архитектура, полное название которой звучит как Field Programmable Gate Array (программируемые пользователем базовые матричные микросхемы), в настоящее время сосредоточила в себе последние технологические достижения микроэлектроники и предоставляет в распоряжение разработчиков наиболее богатые функциональные возможности. Появление новых ПЛИС с FPGA-архитектурой, несомненно, вызывает интерес, особенно если эти ПЛИС предлагает ведущий их производитель – фирма Xilinx.
В марте 2005 года фирма Xilinx анонсировала семейство микросхем с архитектурой FPGA Spartan-3E, содержащих от 100 тыс. до 1,6 млн. системных вентилей и характеризуемых самой низкой на сегодня удельной стоимостью в пересчете на логическую ячейку. Новые семейства ПЛИС появляются достаточно регулярно и, как правило, предлагают разработчикам все более и более привлекательные характеристики. Можно отметить хотя бы анонсированное фирмой Xilinx в сентябре 2004 года и уже доступное для заказчиков семейство Virtex-4, технические характеристики которого весьма впечатляют. Правда, это семейство относится к продуктам высшего класса, и его относительно высокая стоимость пока не позволяет говорить о возможности широкого использования входящих в него ПЛИС. Совершенно иначе обстоит дело с микросхемами Spartan-3E, относящимися к более дешевому семейству Spartan, которое позиционируется Xilinx как замена ASIC-устройствам.
Особенности микросхем программируемой логики с архитектурой FPGA
Основной программируемый ресурс микросхем с архитектурой FPGA – так называемая логическая ячейка. В ее состав входят генератор логических функций, работа которого задается таблицей истинности (Look-Up Table – LUT), триггер и некоторое число специализированных ресурсов, облегчающих реализацию типичных для цифровой схемотехники узлов. Логические ячейки образуют прямоугольную матрицу, окруженную блоками ввода-вывода, обеспечивающими подключение внутренних линий к внешним выводам корпуса ПЛИС. Внутри матрицы логических ячеек и между этой матрицей и блоками ввода-вывода находятся трассировочные линии – программируемые электрические соединения. ПЛИС может реализовать практически любое цифровое устройство путем программирования таблиц истинности отдельных ячеек и управляемой коммутации соответствующих трассировочных ресурсов.
На первый взгляд кажется, что возможности ПЛИС можно оценить по числу логических ячеек и их максимальной рабочей частоте. Подобный экстенсивный подход иногда практикуется, однако он, как правило, существенно занижает эффективность последних семейств ПЛИС, в состав которых, помимо обычной матрицы логических ячеек, входят специализированные ресурсы. При этом в последнее время в ряде приложений удельный вклад специализированных ресурсов в производительность устройств программируемой логики постоянно возрастает. Очевидно, это справедливо для определенного круга задач, решение которых и облегчается упомянутыми специализированными ресурсами. В связи с этим было бы неправильным давать обзор современных устройств программируемой логики в отрыве от тех задач, на которые они ориентированы.
К вспомогательным устройствам ПЛИС FPGA фирмы Xilinx как входящим в состав каждой логической ячейки, так и размещенным отдельно на кристалле, относятся следующие:
· цепи ускоренного переноса, предназначенные для быстрой передачи бита переноса между логическими ячейками, что упрощает организацию многоразрядных узлов. Такой подход хорош по двум причинам. Прежде всего, задержки выделенных цепей ускоренного переноса меньше, чем у прочих трассировочных ресурсов. Вторым достоинством является высвобождение той части трассировочных ресурсов, которые в противном случае оказались бы задействованными для организации каскадного соединения ячеек. Однако это свойство играет меньшую роль по сравнению с существенным увеличением тактовой частоты, достигаемой для многоразрядных устройств, таких как счетчики, сумматоры и т.п. Совершенствование цепей ускоренного переноса – постоянная тенденция развития FPGA;
· блочная память, которая появилась в ПЛИС сравнительно недавно, и по своей сути характерна для устройств с архитектурой FPGA. Иерархия памяти для этих ПЛИС выглядит следующим образом. Наиболее быстрый, и в то же время ресурсоемкий, способ организации памяти – использование триггеров логических ячеек. Очевидно, при таком подходе каждая ячейка может хранить только один бит данных, и организация сколько-нибудь больших массивов памяти весьма затруднена. Отличительной особенностью архитектуры ПЛИС, предлагаемых фирмой Xilinx, являлась возможность конфигурирования логических генераторов в качестве устройств статической оперативной памяти с организацией 16x1 бит (так называемая распределенная память), что позволило увеличить емкость памяти микросхемы, по сравнению с предыдущим решением, в 16 раз. Распределенная память может быть полезна в целом ряде случаев, однако организация крупных массивов наталкивается на существенное ограничение, связанное с необходимостью трассировки по кристаллу многочисленных линий адреса и данных. Производительность проекта, использующего ПЛИС FPGA в качестве большого модуля ОЗУ, оказывается в таком случае весьма невысокой. Кардинально решить проблему удалось путем размещения на кристалле с FPGA блоков синхронной двухпортовой статической памяти, работающей на достаточно высокой частоте. Первоначально объем памяти блоков составлял 4 Кбит (с возможностью использования различных вариантов разрядности), в последних же семействах введены 18-Кбит блоки. Такое решение позволило реализовать достаточно гибкие и универсальные схемы взаимодействия вычислительных устройств и расположенных на кристалле блоков памяти;
· выделенные умножители: специализированные блоки, выполняющие умножение независимых 18-бит операндов на частотах до сотен мегагерц (для семейства Spartan-3E – 266 МГц). На определенном этапе развития ПЛИС выяснилось, что программируемая логика может рассматриваться не только в качестве экзотического средства прототипирования новых устройств, но и как эффективный сопроцессор цифровой обработки сигналов (DSP). Возможность реализации параллельных вычислений на кристалле ПЛИС существенно улучшает их позиции по отношению к широко распространенным сигнальным процессорам, поскольку при определенных условиях соотношение "производительность/цена" для ПЛИС существенно выше. Эти условия реализуются в основном в тех случаях, когда решение задачи требует выполнения большого числа операций умножения с накоплением, характерных для цифровой фильтрации, спектрального анализа, нейросетевых алгоритмов и т.п. Сегодня можно сказать, что реализация на ПЛИС DSP-функций вполне оправдана не только с технической, но и с экономической точки зрения. Поэтому для повышения эффективности ПЛИС при решении таких задач на кристалл последовательно вводились устройства, облегчающие построение умножителей независимых операндов, вплоть до введения на кристалл специализированных блоков.
Особенности нового семейства
До недавнего времени наиболее перспективные недорогие высокопроизводительные ПЛИС с архитектурой FPGA фирмы Xilinx были представлены семейством Spartan-3. Сегодня розничная цена на младшие модели семейства составляет ~10 долл., т.е. по цене эти ПЛИС практически сравнимы с микроконтроллерами с сопоставимыми функциональными возможностями. И самое важное: в составе этого семейства наконец-то появились выделенные умножители, и изменена организация блочной памяти с 4096 бит на 1Кx18 бит. Кроме того, это первое семейство ПЛИС, изготовленное по современной 90-нм технологии.
Выпущенное в начале 2005 года семейство Spartan-3E существенно дешевле семейства Spartan-3 при сохранении его основных особенностей. Значение этого факта трудно недооценить. В последнее время ПЛИС семейства Spartan-3 уже практически вошли в категорию широкодоступных и дешевых устройств. Объявленная же цена на ПЛИС Spartan-3E при закупке партии от 250 тыс. шт. беспрецедентна: всего 2 долл. за микросхему, содержащую 100 тыс. вентилей, и 9 долл. за микросхему с 1,2 млн. вентилей. Очевидно, розничные цены будут выше, однако позиция фирмы Xilinx вполне недвусмысленна – новое семейство должно быть дешевле, чем Spartan-3.
Каждый конфигурируемый логический блок (КЛБ) ПЛИС семейства Spartan-3E состоит из четырех секций, сгруппированных в пары (рис.1). Левая пара называется SLICEM и содержит полнофункциональные логические генераторы, которые могут использоваться также в качестве распределенного ОЗУ или сдвигового регистра. Правая же пара – SLICEL – может реализовать только логику. Фирма Xilinx уделяет достаточно большое внимание соблюдению баланса между ресурсами, размещаемыми на кристалле ПЛИС. Одним из основных моментов, относящихся к структуре КЛБ, является оценка процентного соотношения распределенной памяти и собственно логических ресурсов. Сама фирма Xilinx часто оценивает логическую емкость ПЛИС из соотношения "25% ячеек отведено под распределенную память, остальные – под логику", т.е. в среднем около четверти ячеек используются "не по прямому назначению", а в качестве распределенной памяти или сдвиговых регистров. Можно предположить, что большая часть логических ячеек, скорее всего, будет реализовывать именно логические функции, а уменьшение максимального объема доступной распределенной памяти прекрасно компенсируется увеличением объема блочной памяти (гораздо более эффективной и удобной в использовании). Наконец, следует все-таки отметить, что распределенная память в секциях SLICEM так и осталась распределенной по всему кристаллу. В итоге полнофункциональные SLICEM и облегченные SLICEL вполне могут дополнять друг друга.
Упрощенная схема компонентов отдельных секций показана на рис.2. Можно убедиться, что изменения структуры логических ресурсов практически не повлияли на принципиальные возможности ПЛИС. По-прежнему доступны все основные цифровые узлы, которые могут быть представлены с применением языков описания аппаратуры (HDL).
Несмотря на достаточно низкую цену, интересное техническое решение микросхем семейства Spartan-3E облегчает реализацию алгоритмов DSP в ПЛИС. При реализации алгоритмов, использующих операцию умножения с накоплением для потока входных данных, часто один и тот же поток данных необходимо умножать одновременно на разные коэффициенты с накоплением суммы отдельно по каждому из каналов умножения. Завести входной сигнал на входы нескольких умножителей не составляет особого труда. Правда, для этого необходимо задействовать обычные трассировочные ресурсы. В результате временные характеристики таких блоков несколько отличаются от идеальных, хотя очевидно, что такая задача довольна типична, и ее эффективное решение существенно повысит производительность всего проекта и характеристики изделия в целом. Для реализации подобных алгоритмов блоки умножения в ПЛИС Spartan-3E имеют дополнительный вход, который может каскадно соединяться с выходом предыдущего умножителя в колонке. Младшая ПЛИС семейства объемом 100 тыс. вентилей содержит одну, а остальные устройства – две колонки умножителей. Каскадное соединение может быть использовано для "сквозной" подачи одного из аргументов на все умножители целой колонки. Умножители могут работать как с каскадируемым, так и с прямым сигналом, что регламентируется соответствующим входом (рис.3). В приведенном примере нижний умножитель использует прямой (direct) режим и рассматривает в качестве второго операнда число, подаваемое на его вход B. Остальные умножители в цепочке игнорируют свои входы B, используя вместо них данные с входа BCIN. На всех входах BCIN при этом присутствует то же число, что и поданное на вход B самого нижнего умножителя. Каскадная передача аргумента задействует только выделенные трассировочные ресурсы, что одновременно и минимизирует задержки, и освобождает трассировочные ресурсы общего назначения для выполнения других задач.
Еще одно нововведение (впервые для устройств фирмы Xilinx) – возможность загрузки конфигурации непосредственно с флеш-памяти NOR-типа с 8- или 16-разрядной шиной данных. Такой режим освобождает от необходимости использовать только специальные конфигурационные ПЗУ производства Xilinx, заменив их практически любой подходящей по объему микросхемой флеш-памяти. Часть флеш-памяти, не задействованная для хранения конфигурационных данных, может впоследствии использоваться проектом, загружаемым в ПЛИС, поскольку после конфигурирования ее выводы, подключенные к флеш-памяти, превращаются в обычные выводы, программируемые пользователем, и становятся доступными для загруженного проекта. Такое решение также имеет серьезный экономический аспект, поскольку флеш-память общего назначения, как правило, дешевле конфигурационных ПЗУ. Таким образом, суммарная стоимость "комплекта" из FPGA-микросхемы и сопутствующих компонентов оказывается существенно ниже, чем предыдущие предложения фирм-производителей ПЛИС.
Рассмотрим, насколько существенно отличаются микросхемы нового семейства Spartan-3Е от устройств семейства Spartan-3 (см. таблицу). Как видно из таблицы, в целом характеристики микросхем практически не изменились. Соотношение основных логических ресурсов в новом семействе почти такое же, что и в Spartan-3, но диапазон логической емкости пока существенно меньше – 1,6 млн. вентилей против 5 млн. Однако, с учетом того, что Spartan-3E следует рассматривать как самые дешевые устройства, такое ограничение нельзя считать существенным. Более интересно сравнение младших моделей обоих семейств. Прежде всего, эквивалентная логическая емкость самого младшего устройства Spartan-3E составляет 100 тыс. вентилей (против 50 тыс. у Spartan-3). Для справки можно напомнить, что логические объемы ПЛИС семейства Spartan-II начинались с 15 тыс. вентилей. Очевидна тенденция перехода ко все большему "стартовому" объему ПЛИС при все меньшей и меньшей цене. Далее следует отметить не вполне очевидную особенность: самая младшая микросхема имеет четыре блока памяти, и автоматически – четыре выделенных умножителя. Обращаясь к семейству Spartan-3, можно заметить, что реализация DSP-алгоритмов возможна лишь на более дорогих микросхемах XC3S200. С новым же семейством DSP-ресурсы доступны для самых младших устройств (т.е. за минимальную стоимость).
Облегчение логических ячеек, оказавшее существенное влияние на снижение цены, не могло не сказаться на производительности микросхем семейства Spartan-3E. Общая тенденция, на первый взгляд, негативная. Например, 16-разрядный счетчик по результатам моделирования штатной САПР может функционировать на частоте 167 МГц, что несколько меньше аналогичного показателя для устройств "основного" семейства Spartan-3. В целом в ряде тестов оказывается, что производительность нового семейства ПЛИС на 10–15% хуже, чем даже у более ранних семейств Spartan-II/IIE. Однако для всесторонней оценки эффективности ПЛИС в конкретном проекте необходимо учитывать множество факторов, которые обычно не проявляются в синтетических тестах, основанных на оценке рабочей частоты проекта средствами САПР. Например, в семействах Spartan-3/3E существенно улучшены выделенные умножители. Их рабочие частоты составляют 200 и 266 МГц, соответственно, но только в том случае, когда не нужно выводить результаты за пределы матрицы логических ячеек. Сравнение этих показателей позволяет еще раз убедиться в улучшении "ключевых" особенностей микросхем – например, выделенных умножителей, оказывающих основное влияние на показатели производительности при решении задач DSP. Однако и для большого класса задач общего характера рабочие частоты новых ПЛИС более чем удовлетворительны.
Оценка производительности ПЛИС с архитектурой FPGA – достаточно сложный и не вполне однозначный процесс. Для относи-тельно простой архитектуры CPLD такая оценка может быть сведена к оценке задержек распространения сигнала "от вывода к выводу". Более сложная структура устройств FPGA, включающая в себя логические ячейки, блоки ввода-вывода и набор разнообразных трассировочных ресурсов, требует совершенно иных подходов к исследованию временных характеристик. В дискуссионном порядке можно высказать предположение, что тестовые оценки, выполняемые путем реализации в ПЛИС фрагментов цифровых устройств, могут довольно слабо коррелировать с характеристиками более сложных проектов, реализуемых на тех же ПЛИС. В связи с этим оценки производительности, основанные на таких узлах, как счетчики, умножители, DSP-устройства и пр., могут использоваться в лучшем случае как справочная информация, позволяющая проводить предварительную оценку этих устройств. Практика показывает, что соответствующим подбором тестов ПЛИС разных семейств (и разных производителей) могут быть поставлены в совершенно неравноправные условия, неадекватно отражающие их возможности в конкретном проекте, интересующем разработчика.
Области применения
Исходя из приведенных свойств и особенно беспрецедентно низкой цены новейшего FPGA-семейства Spartan-3E, которое должно появиться на рынке в ближайшее время, достаточно актуальным становится вопрос о сферах применения этих ПЛИС "нижнего эшелона". Это относится как к новым разработкам, где ПЛИС ранее не применялись, так и к пересмотру позиций в отношении использования и роли ПЛИС в уже существующих проектах. С учетом характеристик семейств Spartan-3E можно сказать, что в целом эти микросхемы позволяют получить вычислитель с хорошей производительностью в задачах цифровой фильтрации, спектрального анализа и т.п., фактически привнося в проект по весьма низкой цене возможности существенно более дорогих ПЛИС семейств Virtex-II и других старших моделй. Если не требуется чрезвычайно высокая производительность, возможностей ПЛИС Spartan-3E оказывается вполне достаточно для реализации довольно широкого круга задач.
Несмотря на все большую ориентацию ПЛИС (даже "нижних эшелонов") на решение задачи цифровой обработки сигналов, не стоит забывать и о возможности их применения для замены рассыпной логики и несложных интерфейсных устройств. ПЛИС с FPGA-архитектурой, работая в составе микропроцессорной системы, вполне может реализовать недостающие цифровые узлы.
Средства разработки
Наконец, следует сказать несколько слов о современном состоянии дел в сфере средств проектирования для ПЛИС. Прежде всего, необходимо отметить, что сегодня проектирование цифровых устройств ведется с активным использованием языков описания аппаратуры (Hardware Description Languages, HDL). Эти языки обладают достаточно богатыми описательными возможностями и вполне доступны для освоения разработчику, знакомому с языками программирования высокого уровня и имеющему навыки проектирования цифровых устройств. В процессе проектирования можно использовать большое число так называемых IP-ядер – базовых фукциональных модулей, написанных на HDL, отдельные параметры которых могут быть настроены пользователем. Такой подход существенно ускоряет процесс разработки, позволяя реализовать подавляющее большинство модулей проекта в виде готовых устройств с проверенными характеристиками. Подобные модули предлагаются как фирмами-производителями ПЛИС, так и многими сторонними разработчиками. IP-ядра, реализующие несложные функции, как правило, доступны бесплатно. Среди бесплатных ядер можно отметить софт-процессор (т.е. процессор, реализуемый на базе программируемых ресурсов ПЛИС) PicoBlaze фирмы Xilinx, доступный в том числе и для микросхем семейства Spartan-3E. Для этого процессора существуют соответствующие средства разработки программного обеспечения, а также САПР EDK (Embedded Development Kit), обеспечивающая "модульное" проектирование встраиваемых систем на базе ПЛИС. Кроме PicoBlaze, в виде IP-ядер реализовано множество других процессорных устройств, интерфейсов памяти, вычислительных модулей и т.п., что облегчает освоение микросхем программируемой логики.
Вообще следует отметить, что преимущественная ориентация на HDL в качестве средства задания проекта в большой степени способствует применению новой элементной базы. Проекты, реализованные на HDL, скорее всего, будут совместимы с последующими семействами ПЛИС (несовместимость касается в основном специфических аппаратных ресурсов), поэтому появление новых продуктов ни в коей мере не снижает актуальность ранее выполненных разработок. Напротив, можно ожидать, что перенос ранее выполненного проекта на новое семейство ПЛИС позволит несколько повысить производительность в сочетании со снижением цены. Таким образом, пакет собственных HDL-модулей коллектива разработчиков сохраняет свою актуальность длительное время.
Основное средство проектирования фирмы Xilinx – САПР Integrated Software Environment (ISE), которая поддерживает сквозной маршрут проектирования устройств на базе ПЛИС, от ввода исходных модулей проекта до собственно программирования микросхемы или конфигурационного ПЗУ. Существует бесплатная версия этой САПР Webpack, которая имеет ограничение по максимальному объему ПЛИС – в настоящее время 300–400 тыс. вентилей, что для разработок начального и среднего уровня фактически не является каким-либо ограничением. САПР Webpack доступен для загрузки с сайта www.xilinx.com. Дистрибутив Webpack на оптических носителях также распространяется официальным дистрибьютором Xilinx – компанией InlineGroup (www.plis.ru).
В заключение можно сделать вывод, что новое семейство фирмы Xilinx в очередной раз подтвердило существующую в области разработки ПЛИС тенденцию постоянного улучшения технических характеристик и снижения цен. Интересно, что для устройств семейства Spartan-3E преобладает фактор снижения цены. Поскольку разработка устройств на базе ПЛИС, вообще говоря, требует минимальных начальных вложений, одним из самых существенных экономических факторов до настоящего времени являлась более высокая стоимость самих микросхем по сравнению, например, с широко распространенными микроконтроллерами. Именно этот фактор и может быть несколько пересмотрен. Конечно, нельзя ожидать, что ПЛИС смогут конкурировать с массово выпускаемыми микроконтроллерами начального уровня, стоимость которых существенно ниже, однако универсальность архитектуры программируемых устройств, наличие специализированных DSP-ресурсов и возможность организации параллельных вычислений позволяют ПЛИС занять свою нишу на рынке цифровых компонентов.
Кузелин М.О., Кнышев Д.А., Зотов В.Ю. Современные семейства ПЛИС фирмы Xilinx: Справочное пособие. – М.: Горячая линия-Телеком, 2004. – 440 с.: ил.
Spartan-3E FPGA Family: Complete datasheet. Advanced Product Specification. March 1, 2005.
Тарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. – М.: Горячая линия-Телеком, 2005. – 252 с.: ил.
Особенности микросхем программируемой логики с архитектурой FPGA
Основной программируемый ресурс микросхем с архитектурой FPGA – так называемая логическая ячейка. В ее состав входят генератор логических функций, работа которого задается таблицей истинности (Look-Up Table – LUT), триггер и некоторое число специализированных ресурсов, облегчающих реализацию типичных для цифровой схемотехники узлов. Логические ячейки образуют прямоугольную матрицу, окруженную блоками ввода-вывода, обеспечивающими подключение внутренних линий к внешним выводам корпуса ПЛИС. Внутри матрицы логических ячеек и между этой матрицей и блоками ввода-вывода находятся трассировочные линии – программируемые электрические соединения. ПЛИС может реализовать практически любое цифровое устройство путем программирования таблиц истинности отдельных ячеек и управляемой коммутации соответствующих трассировочных ресурсов.
На первый взгляд кажется, что возможности ПЛИС можно оценить по числу логических ячеек и их максимальной рабочей частоте. Подобный экстенсивный подход иногда практикуется, однако он, как правило, существенно занижает эффективность последних семейств ПЛИС, в состав которых, помимо обычной матрицы логических ячеек, входят специализированные ресурсы. При этом в последнее время в ряде приложений удельный вклад специализированных ресурсов в производительность устройств программируемой логики постоянно возрастает. Очевидно, это справедливо для определенного круга задач, решение которых и облегчается упомянутыми специализированными ресурсами. В связи с этим было бы неправильным давать обзор современных устройств программируемой логики в отрыве от тех задач, на которые они ориентированы.
К вспомогательным устройствам ПЛИС FPGA фирмы Xilinx как входящим в состав каждой логической ячейки, так и размещенным отдельно на кристалле, относятся следующие:
· цепи ускоренного переноса, предназначенные для быстрой передачи бита переноса между логическими ячейками, что упрощает организацию многоразрядных узлов. Такой подход хорош по двум причинам. Прежде всего, задержки выделенных цепей ускоренного переноса меньше, чем у прочих трассировочных ресурсов. Вторым достоинством является высвобождение той части трассировочных ресурсов, которые в противном случае оказались бы задействованными для организации каскадного соединения ячеек. Однако это свойство играет меньшую роль по сравнению с существенным увеличением тактовой частоты, достигаемой для многоразрядных устройств, таких как счетчики, сумматоры и т.п. Совершенствование цепей ускоренного переноса – постоянная тенденция развития FPGA;
· блочная память, которая появилась в ПЛИС сравнительно недавно, и по своей сути характерна для устройств с архитектурой FPGA. Иерархия памяти для этих ПЛИС выглядит следующим образом. Наиболее быстрый, и в то же время ресурсоемкий, способ организации памяти – использование триггеров логических ячеек. Очевидно, при таком подходе каждая ячейка может хранить только один бит данных, и организация сколько-нибудь больших массивов памяти весьма затруднена. Отличительной особенностью архитектуры ПЛИС, предлагаемых фирмой Xilinx, являлась возможность конфигурирования логических генераторов в качестве устройств статической оперативной памяти с организацией 16x1 бит (так называемая распределенная память), что позволило увеличить емкость памяти микросхемы, по сравнению с предыдущим решением, в 16 раз. Распределенная память может быть полезна в целом ряде случаев, однако организация крупных массивов наталкивается на существенное ограничение, связанное с необходимостью трассировки по кристаллу многочисленных линий адреса и данных. Производительность проекта, использующего ПЛИС FPGA в качестве большого модуля ОЗУ, оказывается в таком случае весьма невысокой. Кардинально решить проблему удалось путем размещения на кристалле с FPGA блоков синхронной двухпортовой статической памяти, работающей на достаточно высокой частоте. Первоначально объем памяти блоков составлял 4 Кбит (с возможностью использования различных вариантов разрядности), в последних же семействах введены 18-Кбит блоки. Такое решение позволило реализовать достаточно гибкие и универсальные схемы взаимодействия вычислительных устройств и расположенных на кристалле блоков памяти;
· выделенные умножители: специализированные блоки, выполняющие умножение независимых 18-бит операндов на частотах до сотен мегагерц (для семейства Spartan-3E – 266 МГц). На определенном этапе развития ПЛИС выяснилось, что программируемая логика может рассматриваться не только в качестве экзотического средства прототипирования новых устройств, но и как эффективный сопроцессор цифровой обработки сигналов (DSP). Возможность реализации параллельных вычислений на кристалле ПЛИС существенно улучшает их позиции по отношению к широко распространенным сигнальным процессорам, поскольку при определенных условиях соотношение "производительность/цена" для ПЛИС существенно выше. Эти условия реализуются в основном в тех случаях, когда решение задачи требует выполнения большого числа операций умножения с накоплением, характерных для цифровой фильтрации, спектрального анализа, нейросетевых алгоритмов и т.п. Сегодня можно сказать, что реализация на ПЛИС DSP-функций вполне оправдана не только с технической, но и с экономической точки зрения. Поэтому для повышения эффективности ПЛИС при решении таких задач на кристалл последовательно вводились устройства, облегчающие построение умножителей независимых операндов, вплоть до введения на кристалл специализированных блоков.
Особенности нового семейства
До недавнего времени наиболее перспективные недорогие высокопроизводительные ПЛИС с архитектурой FPGA фирмы Xilinx были представлены семейством Spartan-3. Сегодня розничная цена на младшие модели семейства составляет ~10 долл., т.е. по цене эти ПЛИС практически сравнимы с микроконтроллерами с сопоставимыми функциональными возможностями. И самое важное: в составе этого семейства наконец-то появились выделенные умножители, и изменена организация блочной памяти с 4096 бит на 1Кx18 бит. Кроме того, это первое семейство ПЛИС, изготовленное по современной 90-нм технологии.
Выпущенное в начале 2005 года семейство Spartan-3E существенно дешевле семейства Spartan-3 при сохранении его основных особенностей. Значение этого факта трудно недооценить. В последнее время ПЛИС семейства Spartan-3 уже практически вошли в категорию широкодоступных и дешевых устройств. Объявленная же цена на ПЛИС Spartan-3E при закупке партии от 250 тыс. шт. беспрецедентна: всего 2 долл. за микросхему, содержащую 100 тыс. вентилей, и 9 долл. за микросхему с 1,2 млн. вентилей. Очевидно, розничные цены будут выше, однако позиция фирмы Xilinx вполне недвусмысленна – новое семейство должно быть дешевле, чем Spartan-3.
Каждый конфигурируемый логический блок (КЛБ) ПЛИС семейства Spartan-3E состоит из четырех секций, сгруппированных в пары (рис.1). Левая пара называется SLICEM и содержит полнофункциональные логические генераторы, которые могут использоваться также в качестве распределенного ОЗУ или сдвигового регистра. Правая же пара – SLICEL – может реализовать только логику. Фирма Xilinx уделяет достаточно большое внимание соблюдению баланса между ресурсами, размещаемыми на кристалле ПЛИС. Одним из основных моментов, относящихся к структуре КЛБ, является оценка процентного соотношения распределенной памяти и собственно логических ресурсов. Сама фирма Xilinx часто оценивает логическую емкость ПЛИС из соотношения "25% ячеек отведено под распределенную память, остальные – под логику", т.е. в среднем около четверти ячеек используются "не по прямому назначению", а в качестве распределенной памяти или сдвиговых регистров. Можно предположить, что большая часть логических ячеек, скорее всего, будет реализовывать именно логические функции, а уменьшение максимального объема доступной распределенной памяти прекрасно компенсируется увеличением объема блочной памяти (гораздо более эффективной и удобной в использовании). Наконец, следует все-таки отметить, что распределенная память в секциях SLICEM так и осталась распределенной по всему кристаллу. В итоге полнофункциональные SLICEM и облегченные SLICEL вполне могут дополнять друг друга.
Упрощенная схема компонентов отдельных секций показана на рис.2. Можно убедиться, что изменения структуры логических ресурсов практически не повлияли на принципиальные возможности ПЛИС. По-прежнему доступны все основные цифровые узлы, которые могут быть представлены с применением языков описания аппаратуры (HDL).
Несмотря на достаточно низкую цену, интересное техническое решение микросхем семейства Spartan-3E облегчает реализацию алгоритмов DSP в ПЛИС. При реализации алгоритмов, использующих операцию умножения с накоплением для потока входных данных, часто один и тот же поток данных необходимо умножать одновременно на разные коэффициенты с накоплением суммы отдельно по каждому из каналов умножения. Завести входной сигнал на входы нескольких умножителей не составляет особого труда. Правда, для этого необходимо задействовать обычные трассировочные ресурсы. В результате временные характеристики таких блоков несколько отличаются от идеальных, хотя очевидно, что такая задача довольна типична, и ее эффективное решение существенно повысит производительность всего проекта и характеристики изделия в целом. Для реализации подобных алгоритмов блоки умножения в ПЛИС Spartan-3E имеют дополнительный вход, который может каскадно соединяться с выходом предыдущего умножителя в колонке. Младшая ПЛИС семейства объемом 100 тыс. вентилей содержит одну, а остальные устройства – две колонки умножителей. Каскадное соединение может быть использовано для "сквозной" подачи одного из аргументов на все умножители целой колонки. Умножители могут работать как с каскадируемым, так и с прямым сигналом, что регламентируется соответствующим входом (рис.3). В приведенном примере нижний умножитель использует прямой (direct) режим и рассматривает в качестве второго операнда число, подаваемое на его вход B. Остальные умножители в цепочке игнорируют свои входы B, используя вместо них данные с входа BCIN. На всех входах BCIN при этом присутствует то же число, что и поданное на вход B самого нижнего умножителя. Каскадная передача аргумента задействует только выделенные трассировочные ресурсы, что одновременно и минимизирует задержки, и освобождает трассировочные ресурсы общего назначения для выполнения других задач.
Еще одно нововведение (впервые для устройств фирмы Xilinx) – возможность загрузки конфигурации непосредственно с флеш-памяти NOR-типа с 8- или 16-разрядной шиной данных. Такой режим освобождает от необходимости использовать только специальные конфигурационные ПЗУ производства Xilinx, заменив их практически любой подходящей по объему микросхемой флеш-памяти. Часть флеш-памяти, не задействованная для хранения конфигурационных данных, может впоследствии использоваться проектом, загружаемым в ПЛИС, поскольку после конфигурирования ее выводы, подключенные к флеш-памяти, превращаются в обычные выводы, программируемые пользователем, и становятся доступными для загруженного проекта. Такое решение также имеет серьезный экономический аспект, поскольку флеш-память общего назначения, как правило, дешевле конфигурационных ПЗУ. Таким образом, суммарная стоимость "комплекта" из FPGA-микросхемы и сопутствующих компонентов оказывается существенно ниже, чем предыдущие предложения фирм-производителей ПЛИС.
Рассмотрим, насколько существенно отличаются микросхемы нового семейства Spartan-3Е от устройств семейства Spartan-3 (см. таблицу). Как видно из таблицы, в целом характеристики микросхем практически не изменились. Соотношение основных логических ресурсов в новом семействе почти такое же, что и в Spartan-3, но диапазон логической емкости пока существенно меньше – 1,6 млн. вентилей против 5 млн. Однако, с учетом того, что Spartan-3E следует рассматривать как самые дешевые устройства, такое ограничение нельзя считать существенным. Более интересно сравнение младших моделей обоих семейств. Прежде всего, эквивалентная логическая емкость самого младшего устройства Spartan-3E составляет 100 тыс. вентилей (против 50 тыс. у Spartan-3). Для справки можно напомнить, что логические объемы ПЛИС семейства Spartan-II начинались с 15 тыс. вентилей. Очевидна тенденция перехода ко все большему "стартовому" объему ПЛИС при все меньшей и меньшей цене. Далее следует отметить не вполне очевидную особенность: самая младшая микросхема имеет четыре блока памяти, и автоматически – четыре выделенных умножителя. Обращаясь к семейству Spartan-3, можно заметить, что реализация DSP-алгоритмов возможна лишь на более дорогих микросхемах XC3S200. С новым же семейством DSP-ресурсы доступны для самых младших устройств (т.е. за минимальную стоимость).
Облегчение логических ячеек, оказавшее существенное влияние на снижение цены, не могло не сказаться на производительности микросхем семейства Spartan-3E. Общая тенденция, на первый взгляд, негативная. Например, 16-разрядный счетчик по результатам моделирования штатной САПР может функционировать на частоте 167 МГц, что несколько меньше аналогичного показателя для устройств "основного" семейства Spartan-3. В целом в ряде тестов оказывается, что производительность нового семейства ПЛИС на 10–15% хуже, чем даже у более ранних семейств Spartan-II/IIE. Однако для всесторонней оценки эффективности ПЛИС в конкретном проекте необходимо учитывать множество факторов, которые обычно не проявляются в синтетических тестах, основанных на оценке рабочей частоты проекта средствами САПР. Например, в семействах Spartan-3/3E существенно улучшены выделенные умножители. Их рабочие частоты составляют 200 и 266 МГц, соответственно, но только в том случае, когда не нужно выводить результаты за пределы матрицы логических ячеек. Сравнение этих показателей позволяет еще раз убедиться в улучшении "ключевых" особенностей микросхем – например, выделенных умножителей, оказывающих основное влияние на показатели производительности при решении задач DSP. Однако и для большого класса задач общего характера рабочие частоты новых ПЛИС более чем удовлетворительны.
Оценка производительности ПЛИС с архитектурой FPGA – достаточно сложный и не вполне однозначный процесс. Для относи-тельно простой архитектуры CPLD такая оценка может быть сведена к оценке задержек распространения сигнала "от вывода к выводу". Более сложная структура устройств FPGA, включающая в себя логические ячейки, блоки ввода-вывода и набор разнообразных трассировочных ресурсов, требует совершенно иных подходов к исследованию временных характеристик. В дискуссионном порядке можно высказать предположение, что тестовые оценки, выполняемые путем реализации в ПЛИС фрагментов цифровых устройств, могут довольно слабо коррелировать с характеристиками более сложных проектов, реализуемых на тех же ПЛИС. В связи с этим оценки производительности, основанные на таких узлах, как счетчики, умножители, DSP-устройства и пр., могут использоваться в лучшем случае как справочная информация, позволяющая проводить предварительную оценку этих устройств. Практика показывает, что соответствующим подбором тестов ПЛИС разных семейств (и разных производителей) могут быть поставлены в совершенно неравноправные условия, неадекватно отражающие их возможности в конкретном проекте, интересующем разработчика.
Области применения
Исходя из приведенных свойств и особенно беспрецедентно низкой цены новейшего FPGA-семейства Spartan-3E, которое должно появиться на рынке в ближайшее время, достаточно актуальным становится вопрос о сферах применения этих ПЛИС "нижнего эшелона". Это относится как к новым разработкам, где ПЛИС ранее не применялись, так и к пересмотру позиций в отношении использования и роли ПЛИС в уже существующих проектах. С учетом характеристик семейств Spartan-3E можно сказать, что в целом эти микросхемы позволяют получить вычислитель с хорошей производительностью в задачах цифровой фильтрации, спектрального анализа и т.п., фактически привнося в проект по весьма низкой цене возможности существенно более дорогих ПЛИС семейств Virtex-II и других старших моделй. Если не требуется чрезвычайно высокая производительность, возможностей ПЛИС Spartan-3E оказывается вполне достаточно для реализации довольно широкого круга задач.
Несмотря на все большую ориентацию ПЛИС (даже "нижних эшелонов") на решение задачи цифровой обработки сигналов, не стоит забывать и о возможности их применения для замены рассыпной логики и несложных интерфейсных устройств. ПЛИС с FPGA-архитектурой, работая в составе микропроцессорной системы, вполне может реализовать недостающие цифровые узлы.
Средства разработки
Наконец, следует сказать несколько слов о современном состоянии дел в сфере средств проектирования для ПЛИС. Прежде всего, необходимо отметить, что сегодня проектирование цифровых устройств ведется с активным использованием языков описания аппаратуры (Hardware Description Languages, HDL). Эти языки обладают достаточно богатыми описательными возможностями и вполне доступны для освоения разработчику, знакомому с языками программирования высокого уровня и имеющему навыки проектирования цифровых устройств. В процессе проектирования можно использовать большое число так называемых IP-ядер – базовых фукциональных модулей, написанных на HDL, отдельные параметры которых могут быть настроены пользователем. Такой подход существенно ускоряет процесс разработки, позволяя реализовать подавляющее большинство модулей проекта в виде готовых устройств с проверенными характеристиками. Подобные модули предлагаются как фирмами-производителями ПЛИС, так и многими сторонними разработчиками. IP-ядра, реализующие несложные функции, как правило, доступны бесплатно. Среди бесплатных ядер можно отметить софт-процессор (т.е. процессор, реализуемый на базе программируемых ресурсов ПЛИС) PicoBlaze фирмы Xilinx, доступный в том числе и для микросхем семейства Spartan-3E. Для этого процессора существуют соответствующие средства разработки программного обеспечения, а также САПР EDK (Embedded Development Kit), обеспечивающая "модульное" проектирование встраиваемых систем на базе ПЛИС. Кроме PicoBlaze, в виде IP-ядер реализовано множество других процессорных устройств, интерфейсов памяти, вычислительных модулей и т.п., что облегчает освоение микросхем программируемой логики.
Вообще следует отметить, что преимущественная ориентация на HDL в качестве средства задания проекта в большой степени способствует применению новой элементной базы. Проекты, реализованные на HDL, скорее всего, будут совместимы с последующими семействами ПЛИС (несовместимость касается в основном специфических аппаратных ресурсов), поэтому появление новых продуктов ни в коей мере не снижает актуальность ранее выполненных разработок. Напротив, можно ожидать, что перенос ранее выполненного проекта на новое семейство ПЛИС позволит несколько повысить производительность в сочетании со снижением цены. Таким образом, пакет собственных HDL-модулей коллектива разработчиков сохраняет свою актуальность длительное время.
Основное средство проектирования фирмы Xilinx – САПР Integrated Software Environment (ISE), которая поддерживает сквозной маршрут проектирования устройств на базе ПЛИС, от ввода исходных модулей проекта до собственно программирования микросхемы или конфигурационного ПЗУ. Существует бесплатная версия этой САПР Webpack, которая имеет ограничение по максимальному объему ПЛИС – в настоящее время 300–400 тыс. вентилей, что для разработок начального и среднего уровня фактически не является каким-либо ограничением. САПР Webpack доступен для загрузки с сайта www.xilinx.com. Дистрибутив Webpack на оптических носителях также распространяется официальным дистрибьютором Xilinx – компанией InlineGroup (www.plis.ru).
В заключение можно сделать вывод, что новое семейство фирмы Xilinx в очередной раз подтвердило существующую в области разработки ПЛИС тенденцию постоянного улучшения технических характеристик и снижения цен. Интересно, что для устройств семейства Spartan-3E преобладает фактор снижения цены. Поскольку разработка устройств на базе ПЛИС, вообще говоря, требует минимальных начальных вложений, одним из самых существенных экономических факторов до настоящего времени являлась более высокая стоимость самих микросхем по сравнению, например, с широко распространенными микроконтроллерами. Именно этот фактор и может быть несколько пересмотрен. Конечно, нельзя ожидать, что ПЛИС смогут конкурировать с массово выпускаемыми микроконтроллерами начального уровня, стоимость которых существенно ниже, однако универсальность архитектуры программируемых устройств, наличие специализированных DSP-ресурсов и возможность организации параллельных вычислений позволяют ПЛИС занять свою нишу на рынке цифровых компонентов.
Кузелин М.О., Кнышев Д.А., Зотов В.Ю. Современные семейства ПЛИС фирмы Xilinx: Справочное пособие. – М.: Горячая линия-Телеком, 2004. – 440 с.: ил.
Spartan-3E FPGA Family: Complete datasheet. Advanced Product Specification. March 1, 2005.
Тарасов И.Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. – М.: Горячая линия-Телеком, 2005. – 252 с.: ил.
Отзывы читателей