Компоненты и технологии, № 3'2005
Эволюция ПЛИС
серии Spartan
В конце 90-х годов фирма Xilinx начала выпуск ПЛИС серии Spartan с архитектурой FPGA.
За прошедшее время они существенно изменились, превратившись в эффективные и недорогие цифровые устройства, способные функционировать как самостоятельно, так и в составе микропроцессорной системы. Появление в марте 2005 года нового семейства Spartan-3E является хорошим поводом как рассмотреть характеристики этих весьма интересных устройств, так и проанализировать эволюцию серии Spartan вообще.
Илья Тарасов
Краткий обзор
ПЛИС серии Spartan являются развитием базовой серии XC4000 (семейства XC4000E, XC4000XL и XC4000XLA). На определенном этапе развития архитектур ПЛИС оказалось, что можно пойти как по пути реализации наиболее производительных технических решений, так и по пути максимального облегчения и удешевления выпускаемых микросхем с сохранением их основных функций. Подобное разделение и привело к появлению двух параллельно развиваемых семейств: высокопроизводительных hi-end FPGA серии Virtex и более дешевой серии Spartan, которая позиционируется как замена специализированным микросхемам в мелких партиях изделий. Эволюция ПЛИС серии Virtex была рассмотрена в статье, опубликованной в «КиТ», № 1'2005, а данная публикация рассматривает аналогичные вопросы, связанные с устройствами Spartan.
Первое семейство данной серии называлось собственно Spartan и состояло из 5 устройств емкостью от 5 до 40 тыс. эквивалентных логических вентилей (максимум 1862 логические ячейки). Примерно в то же время было выпущено семейство SpartanXL. Отличие между этими семействами заключается в используемом напряжении питания: 5 В у Spartan и 3,3 В у SpartanXL, которая, тем не менее, допускает работу с 5-вольтовыми устройствами. Архитектура этих семейств базировалась на XC4000, однако сделанные изменения наглядно демонстрировали подход, выбранный Xilinx относительно данной серии. Функциональные возможности логических ячеек были несколько урезаны, однако в общую структуру ПЛИС был внесен ряд дополнений, улучшающих производительность проектов в несложных задачах. В частности, было увеличено количество трассировочных ресурсов внутри матрицы логических ячеек, добавлены специальные трассировочные линии VersaRing, существенно облегчающие подключение матрицы ячеек к выводам ПЛИС, улучшена производительность цепей быстрого переноса. С точки зрения разработ-
чика введенные ограничения прежде всего коснулись одновременного использования входов асинхронного сброса и установки для триггеров логических ячеек. В ячейках в числе прочего был оставлен только один вход асинхронного управления триггером, который мог, впрочем, реализовывать любую из этих функций. Однако в целом архитектура получилась довольно удачной, большинство распространенных схемных решений реализовывалось тем же объемом ресурсов, что и в XC4000, но общая стоимость новых ПЛИС того же объема оказалась существенно ниже (в 2000 году розничные цены на эти ПЛИС составляли от $10 до $ 50).
Благодаря относительно низкой для ПЛИС того времени стоимости семейство Spartan сыграло существенную роль в распространении данной технологии. Однако в настоящий момент данные устройства относятся к морально устаревшим. Их выпуск все еще продолжается, однако применение в новых проектах настоятельно не рекомендуется. Кроме того, необходимо пояснить еще один довольно важный момент, связанный с этими семействами ПЛИС. В 2002 году состоялась смена поколений САПР фирмы Xilinx — на смену пакету Xilinx Foundation Series пришел САПР Integrated Software Environment. Строго говоря, версия 4.1 содержала как очередную версию Foundation Series, так и новый продукт ISE. Однако дальнейшая поддержка Foundation Series была прекращена. Переход на новую САПР вызвал также и переход на новый маршрут проектирования ПЛИС. Если предыдущая линия САПР для внутреннего представления проекта ориентировалась на формат edif, то САПР ISE использует в качестве основного движка языки описания аппаратуры (HDL). Для такого перехода оказалось необходимым переработать файлы описания ПЛИС, подготовив их к работе с новым маршрутом проектирования. При этом семейства Spartan и SpartanXL (как и более ранние FPGA) в число поддерживаемых новой САПР не попали. Фирма Xilinx официально рекомендует использовать для создания проектов для этих семейств ранние версии САПР Xilinx Foundation Series.
Компоненты и технологии, № 3'2005 Архитектура и основные особенности ПЛИС Spartan
По всей видимости, разработка новых устройств с использованием ранних семейств Spartan и SpartanXL не представляет интереса. Заметим лишь, что архитектура логических ячеек, ПЛИС Spartan/SpartanXL больше тяготела к серии XC4000. Рассмотрим отличительные особенности архитектуры логических ячеек подобных ПЛИС. Матрица основных логических ресурсов состоит из конфигурируемых логических блоков (КЛБ). Каждый блок ПЛИС Spartan состоит, в свою очередь, из четырех логических ячеек. В основе логической ячейки находятся два устройства: генератор логических функций (как правило, 4-входовый) и триггер. Генератор логических функций представляет собой фактически ОЗУ небольшого объема, хранящее непосредственно таблицу истинности (LookUp Table, LUT), которую следует реализовать. Для 4-входового устройства достаточно иметь 16 бит статического ОЗУ в каждой таблице. FPGA фирмы Xilinx позволяют также использовать такую таблицу истинности в качестве обычного ОЗУ с организацией 16x1, а также в качестве 16-разрядного сдвигового регистра. Такая особенность архитектуры несколько ухудшает производительность (за счет необходимости внесения на кристалл дополнительных цепей управления), однако обеспечивает дополнительные возможности как разработчику, так и средствам САПР. В конечном итоге производительность сложного проекта за счет большей функциональности базовых логических ячеек может оказаться и выше. Второй особенностью, характерной для FPGA Xilinx, является наличие аппаратно реализованных буферов с тремя состояниями, обеспечивающими подключение выходов триггеров логических ячеек к внутренним трассировочным линиям. Подобное решение производит аналогичный эффект — дополнительный буфер несколько увеличивает задержки распространения сигнала (даже если он не используется в проекте), однако появляется дополнительная возможность для организации сложных мультиплексоров. Необходимо заметить, что в целом ряде семейств FPGA внутренние буферы с тремя состояниями только эмулируются, но реально на кристалле не присутствуют. Как можно будет увидеть в дальнейшем, эта базовая архитектура на протяжении эволюции серии Spartan неоднократно изменялась.
Появившееся в 2000 году семейство Spartan-II привнесло в архитектуру low-end ПЛИС достаточно много интересных нововведений. Прежде всего, стало понятно, что линии продуктов FPGA фирмы Xilinx четко разделились на high-end устройства Virtex и low-end Spartan. Вместе с тем стало также понятно, что технологические и архитектурные особенности этих двух совершенно разных по стоимости серий в целом практически эквивалентны. В общем случае устройства Spartan могут делать практически то же самое, что и соответствующие по технологии изготовления ПЛИС Virtex. Конкретно семейство Spartan-II было основа---------------------www.finestreet.ru -
G4
G3
G2
G1
F5IN
BY
SR
F4
F3
F2
F1
CIN
CLK
CLE
Рис. 1. Секция КЛБ ПЛИС Spartan-I
но на архитектуре семейства Virtex, изготовлено по гибридной технологии 0,18/0,22 мкм и использовало ту же комбинацию напряжений питания: 2,5 В для ядра и 3,3 В для блоков ввода-вывода. Для блоков ввода-вывода обеспечивалась совместимость с 5-вольтовыми сигналами без использования внешних токоограничивающих резисторов.
Общая архитектура Spartan-II, как только что упоминалось, была очень похожа на архитектуру семейства Virtex. По сравнению с ПЛИС Spartan/SpartanXL это означало следующее:
• на кристалл добавлен новый для ПЛИС Spartan вид ресурсов: синхронная блочная память с объемом каждого блока 4096 бит (аналогичные блоки имеются в ПЛИС Virtex);
• для распространения тактового сигнала по кристаллу с минимальными задержками используются специальные модули с автоматической подстройкой задержек (Delay-Locked Loop, DLL) — 4 штуки на кристалл с возможностью организации до 24 локальных тактовых подсетей;
• в логические ячейки добавлены выделенные ресурсы, облегчающие построение умножителей целочисленных операндов;
• улучшены характеристики цепей ускоренного переноса;
• увеличено количество локальных и глобальных трассировочных ресурсов.
Наконец, структура и взаимное расположение логических ячеек были существенно скорректированы. Пара логических ячеек стала образовывать так называемую секцию (slice). Четыре ячейки (или две секции) совместно с дополнительно введенными локальными ресурсами образуют собственно конфигурируемый логический блок (КЛБ). Такое решение позволило внедрить «внутрь» КЛБ дополнительные трассировочные ресурсы, позволяющие обеспечить более гибкие возможности совместной работы отдельных логических ячеек. Схема секции КЛБ приведена на рис. 1.
Семейство Spartan-II состоит из 6 микросхем объемом 15, 30, 50, 100, 150 и 200 тыс. системных вентилей. Число логических ячеек находится в пределах 432-5292 (соответственно для младшего и старшего устройств семейства), а количество 4-килобитных блоков — от 4 до 14 (аналогично). Все ПЛИС доступны как в QFP-, так и в BGA-вариантах исполнения корпусов.
Уже в следующем, 2001 году, было выпущено семейство Spartan-IIE. Это семейство было основано на архитектуре ПЛИС Virtex-E. Соответственно, напряжение питания ядра составляет 1,8 В, а блоки ввода-вывода, питаемые максимально от 3,3 В, несовместимы с 5-вольтовыми сигналами без последовательно включаемых в сигнальные цепи резисторов (номиналом не менее 120 Ом). Семейство включает 7 микросхем объемом 50, 100, 150,
Компоненты и технологии, № 3'2005
Left-Hand SLICEM (Logic or Distributed RAM or Shift Register)
_CLB
Right-Hand SLICEL (Logic Only)
COUT
id
Switch
Matrix
SLICE
X1Y1
COUT
1
SLICE XIY0
SLICE
X0Y1
SHIFTOUT
SHIFTIN
О
t
CIN
SLICE
X0Y0
L---------------------------------J
CIN
Рис. 2. Организация секций КЛБ в ПЛИС Spartan-3
200, 300, 400 и 600 тыс. системных вентилей. Количество логических ячеек и блоков памяти в точности соответствует характеристикам устройств предыдущего семейства Spartan-II. Старшие ПЛИС содержат до 15 552 ячеек и до 72 блоков памяти соответственно.
Характерным является соотношение между семействами Spartan-II и Spartan-IIE. В действительности архитектурные различия между ними весьма и весьма несущественны и следуют в основном из разного технологического процесса. Устройства Spartan-IIE несколько быстрее, хотя и не обладают возможностью работать с 5-вольтовыми входными сигналами напрямую. Оба семейства поддерживают широкий спектр электрических интерфейсов (в том числе высокоскоростные дифференциальные).
В то же время интересно отметить, что если семейство Spartan-II начиналось с устройства объемом 15 тыс. системных вентилей, то для Spartan-IIE нижняя планка оказалась поднята уже до 50 тыс. Тем не менее этот факт отнюдь не означает отказа от выпуска ПЛИС минимальной стоимости. Напротив, цены на устройства Spartan с появлением описанных семейств начали достаточно быстро падать.
В настоящее время Spartan-II/IIE являются, пожалуй, самыми популярными ПЛИС с архитектурой FPGA фирмы Xilinx. Их универсальность, весьма низкая цена, доступность в удобных корпусах QFP (вплоть до 300 тыс. вентилей у Spartan-IIE) и поддержка бесплатным пакетом САПР Webpack делают процесс проектирования цифровых устройств на базе ПЛИС довольно простым и недорогим. Совместная работа ПЛИС и микроконтроллера существенно расширяет возможности последнего в плане управления периферийным оборудованием, аппаратной реализации некоторых функций и т. п.
В то же время в мире существовавшей параллельно серии Virtex произошло достаточно важное событие — размещение на кристалле выделенных умножителей независимых операндов с высокой производительностью. Семейство Virtex-II, в котором впервые было введено такое архитектурное решение, сразу же привлекло повышенное внимание, посколь-
ку наличие предсказуемых по характеристикам, компактных и довольно эффективных модулей вывело устройства БРОА в первые ряды по соотношению производительности и цены. Особенно привлекательным было то, что параллельная работа нескольких устройств умножения на одном кристалле не приводило к «путанице» трассировочных ресурсов и снижению общей тактовой частоты, как это обычно имело место при реализации умножителей на базе обычных логических ячеек. Однако эти весьма привлекательные для разработчиков микросхемы довольно дороги и выпускаются только в корпусах ВОА, что переводит их в совершенно другую категорию.
Тем не менее 2002-2003 годы ознаменовались появлением очередного семейства ЗраГап-З, которое на момент написания статьи является самым современным семейством недорогих ПЛИС фирмы ХШпх из свободно доступных для приобретения. Это семейство полностью отвечает ожиданиям от данной серии — еще дешевле и еще больше производительности в типичных задачах. В настоящее время розничные цены на младшие устройства ЗраГап-З находятся в районе $10, что практически вплотную приближает ПЛИС к микроконтроллерам с сопоставимыми функциональными возможностями. Самое важное, в составе этого семейства наконец-то появились выделенные умножители, а также изменена организация блочной памяти с 4096 бит на 1Кх18. Иными словами, архитектура ЗраГап-З в целом основана на ПЛИС Уйех-П. Однако имеются и существенные отличия, характерные скорее для еще более современного семейства Уп!:ех-4 и касающиеся непосредственно логических ячеек (которые практически не изменились при переходе от ЗраГап-П к ЗраГап-ПЕ). Интересно отметить, что устройства семейства ЗраГап-З требуют как минимум трех источников питания: напряжение питания ядра составляет 1,2 В, необходим вспомогательный источник питания 2,5 В, а блоки ввода-вывода могут быть запитаны максимум от 3,3 В.
Имея похожую архитектуру, новое семейство ЗраГап-З выгодно отличается от УгЛех-П
тем, что было изготовлено по современному 90-нанометровому техпроцессу. Очевидно, это означает как большую производительность при той же топологии кристалла, так и меньшую цену.
Каждый КЛБ семейства ЗраГап-З состоит из четырех секций, сгруппированных в пары (рис. 2). Левая пара называется ЗЫСЕМ и содержит привычные разработчикам, знакомым с предыдущими семействами ПЛИС ХШпх, полнофункциональные логические генераторы, которые могут использоваться также в качестве распределенного ОЗУ или сдвигового регистра. Однако расположенная на рисунке справа пара ЗЫСЕЬ может реализовать только логику.
Можно долго комментировать подобное новшество, довольно нетипичное для архитектур ПЛИС. На первый взгляд, налицо потеря части функциональности логических ячеек, которая выгодно отличала недорогие ПЛИС ХШпх. Особенно это касается, конечно, распределенной памяти. Здесь же следует добавить, кстати, что аппаратная реализация внутренних буферов с тремя состояниями в данном семействе была заменена на их эмуляцию с помощью программируемых мультиплексоров. Итак, часть функциональности логических ячеек ПЛИС оказалась принесена в жертву уменьшению времени распространения сигнала и дальнейшему снижению стоимости.
Очевидно, невозможно всесторонне оценить все последствия, которые могли бы выйти из новой архитектуры. Точно так же невозможно дать однозначные рекомендации, какие подходы проектирования позволят в полной мере использовать преимущества новой архитектуры и минимизировать эффект от недостатков. Тем не менее можно наметить несколько основных моментов, подлежащих всесторонней проверке как в тестах, так и на реальных проектах.
Фирма ХШпх уделяет достаточно большое внимание соблюдению баланса между ресурсами, размещаемыми на кристалле ПЛИС. Одним из основных моментов, относящихся к структуре КЛБ, является оценка процентного соотношения распределенной памяти и собственно логических ресурсов. Собственные оценки логической емкости ПЛИС самой фирмой ХШпх часто приводятся из следующего соотношения «25% ячеек используется в качестве распределенной памяти, остальное — в качестве логики». Таким образом, по оценке ХШпх, в среднем около четверти ячеек используется «не по прямому назначению», то есть в качестве распределенной памяти или сдвиговых регистров. Ввиду этого решение о дальнейшем облегчении функциональности половины логических ячеек выглядит в об-щем-то не так обескураживающе. В самом деле, трудно представить проект, который по каким-то причинам использует ПЛИС в качестве мелких блоков памяти, распределенных по всему кристаллу, обладающих в силу этого плохими временными характеристиками и чрезмерно высокой относительной ценой. Еще более странно рассматривать такой проект на фоне присутствия в ЗраГап-З блочной памяти еще большего объема (до 1,8 Мбит на кристалле в старших моделях!). Можно
Компоненты и технологии, № 3'2005
предположить, что большая часть логических ячеек, скорее всего, будет реализовывать именно логические функции, а уменьшение максимального объема доступной распределенной памяти прекрасно компенсируется увеличением количества блочной (гораздо более эффективной и удобной в использовании). Наконец, следует все-таки отметить, что распределенная память в секциях вЬ1СЕМ так и осталась распределенной по всему кристаллу. В итоге полнофункциональные вЬ1СЕМ и облегченные вЫСЕЬ вполне могут дополнять друг друга.
Что касается внутренних буферов с тремя состояниями, то можно заметить, что выигрыш от их использования появляется в тех случаях, когда в проекте требуется мультиплексирование шин с большой разрядностью, причем число входных шин мультиплексоров также оказывается достаточно большим. В этих случаях использование буферов с третьим состоянием оказывается выгоднее, чем каскадное наращивание логических ячеек (ограниченных по числу входов мультиплексора). Однако очевидно, что если возможности логических ячеек по реализации многовходовых мультиплексоров будут улучшены, то и потребность во внутренних буферах с тремя состояниями существенно уменьшится. Именно такой путь и был реализован в семействе враГап-З, причем удаление буферов привело одновременно и к уменьшению задержек, и к удешевлению микросхем.
Модификации семейства Spаrtаn-3
В конце 2004 и начале 2005 года фирмой ХШпх были выпущены две модификации семейства враГап-З. Говоря о модификациях, имеется в виду как несущественность отличий архитектуры ПЛИС, так и их исполнение по тому же 90-нанометровому техпроцессу. Однако особенности обеих модификаций достаточно интересны.
Появившееся в конце 2004 года семейство врайап-ЗЬ включает в себя всего три устройства с емкостями 1 млн, 1,5 млн и 4 млн сис-
Рис. 3. Каскадное соединение умножителей
темных вентилей. Характеристики этих устройств полностью аналогичны соответствующим микросхемам Spartan-3. Символ L в обозначении является первым символом словосочетания «Low power». Действительно, для ПЛИС большого объема достаточно серьезной является проблема потребления энергии. Устройства Spartan-3L имеют специальный режим Hibernate Mode, при котором потребление тока сокращается на 98%! В остальном, включая поддержку средствами САПР, эти ПЛИС полностью соответствуют своим аналогам из базового семейства.
Наконец, анонсированное в начале марта 2005 года семейство Spartan-3E при сохранении основных особенностей Spartan-3 будет иметь существенно сниженную цену. Значение этого факта трудно переоценить, поскольку в последнее время ПЛИС Spartan-3 и так находились практически на грани перехода в категорию широко доступных и дешевых устройств (с учетом розничной цены около $10). Объявленная же в настоящее время цена на ПЛИС Spartan-3E в партиях от 250 тыс. штук беспрецедентна: всего $2 за 100 тыс. вентилей и $9 за 1,2 млн вентилей. Очевидно, розничные цены будут выше, однако позиция Xilinx вполне недвусмысленна: новое семейство должно быть дешевле, чем Spartan-3. Интересно, что еще два года назад в качестве перспективы рассматривался вопрос о выпуске ПЛИС емкостью в миллион вентилей за менее чем $25 в крупных партиях.
Несмотря на сниженную цену, Spartan-3E содержит довольно интересное техническое решение, облегчающее реализацию алгоритмов DSP в ПЛИС. При реализации алгоритмов, использующих операцию «умножение с накоплением» для потока входных данных, часто оказывается, что один и тот же поток данных необходимо умножать одновременно на разные коэффициенты с накоплением суммы отдельно по каждому из каналов умножения. Не составляет особого труда завести входной сигнал на входы нескольких умножителей, однако для этого необходимо задействовать обычные трассировочные ресурсы. В результате временные характеристики таких блоков оказываются несколько неидеальными, хотя очевидно, что такая задача довольно типична, и ее эффективное решение существенно по-
Таблица
высит производительность всего проекта и характеристики изделия в целом. Для реализации подобных алгоритмов блоки умножения в ПЛИС Spartan-3E имеют дополнительный вход, который может каскадно соединяться с выходом предыдущего умножителя в колонке. Младшая ПЛИС объемом 100 тыс. вентилей содержит одну, а остальные устройства — две колонки умножителей. Каскадное соединение может быть использовано для «сквозной» подачи одного из аргументов на все умножители целой колонки. Умножители могут работать как с каскадируемым, так и с прямым сигналом, что регламентируется соответствующим входом (рис. 3). В показанном примере нижний умножитель использует Direct-режим и рассматривает в качестве второго операнда число, подаваемое на его вход B. Остальные умножители в цепочке игнорируют свои входы B, используя вместо этого данные с входа BCIN. На всех входах BCIN при этом присутствует то же самое число, что и поданное на вход B самого нижнего умножителя. Каскадная передача аргумента задействует только выделенные трассировочные ресурсы, что одновременно и минимизирует задержки, и освобождает трассировочные ресурсы общего назначения для выполнения других задач.
Еще одним нововведением (впервые для устройств Xilinx) является возможность загрузки конфигурации непосредственно с NOR-Flash с 8- или 16-разрядной шиной данных. Такой режим освобождает от необходимости использовать только специальные конфигурационные ПЗУ производства Xilinx, заменив их практически любой подходящей по объему микросхемой Flash-памяти.
Технические характеристики ПЛИС Spartan-3 и Spartan-3E приведены в таблице.
Динамика изменения максимального логического объема и напряжения питания ПЛИС Spartan приведена на рис. 4 и 5.
Итак, можно выделить некоторые тенденции в развитии архитектур недорогих микросхем программируемой логики:
• усиление специализации логических блоков недорогих ПЛИС с одновременным введением в кристалл выделенных ресурсов для решения типичных задач цифровой обработки сигналов;
ПЛИС Логические ячейки Системные вентили Распределенная память, бит Блоков умножения Максимальное число программируемых выводов
Spartan-3 — 1,2 В FPGA с выделенными умножителями
XC3S50 1728 50 тыс. 12 К - 124
XC3S200 4320 200 тыс. 30 К 12 173
XC3S400 8064 400 тыс. 56 К 16 264
XC3S1000 17 280 1 млн 120 К 24 391
XC3S1500 29 952 1,5 млн 208 К 32 487
XC3S2000 46 080 2 млн 320 К 40 565
XC3S4000 62 208 4 млн 432 К 96 712
XC3S5000 74 880 5 млн 520 К 104 784
Spartan-3E — 1,2 В FPGA с выделенными умножителями
XC3S100E 2160 100 тыс. 15 К 4 108
XC3S250E 5508 250 тыс. 38 К 12 172
XC3S500E 10 476 500 тыс. 73 К 20 232
XC3S1200E 19 512 1,2 млн 136 К 28 304
XC3S1600E 33 192 1,6 млн 231 К 36 376
Компоненты и технологии, № 3'2005
/ 5000
у
у
у
у
у
/
/
/ 600
/ 40 40 200
/ ^=7 ^=7 V
5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0
Spartan Spartan-XL Spartan-ll Spa r+an-IIE Spartan-3
Рис. 4. Максимальный логический объем ПЛИС серии Spartan
Рис. 5. Напряжения питания ядра (ближний ряд) и блоков ввода-вывода (дальний ряд) ПЛИС серии Spartan
• увеличение трассировочных ресурсов ПЛИС, в том числе ввод в ее состав выделенных линий для наиболее эффективного решения задач распространения критичных сигналов;
• повышение тактовой частоты системы, в том числе за счет более эффективного распространения по кристаллу тактового сигнала с помощью блоков DLL и отказа от использования асинхронного интерфейса памяти;
• увеличение количества поддерживаемых блоками ввода-вывода электрических интерфейсов;
• переход к новым техпроцессам изготовления ПЛИС с уменьшением технологического допуска и увеличением количества слоев металлизации, понижение напряжения питания ядра и соответствующее снижение стоимости ПЛИС.
Особенности использования ПЛИС в цифровых системах
Можно отметить ряд особенностей, которые могут быть полезны при реализации систем на базе ПЛИС или в сочетании с микроконтроллерами.
1. Для инициализации ПЛИС требуют загрузки конфигурационной последовательности после включения питания. Для этого на плате необходимо поместить конфигурационное ПЗУ. Рекомендуется использование конфигурационных Flash-ПЗУ серии XCF. Младшие ПЛИС могут быть загружены и из внутренней памяти микроконтроллера.
2. Семейства Spartan, начиная со Spartan-IIE, не допускают подачу на вход 5-вольтовых сигналов. Тем не менее эти устройства достаточно надежно работают при включении в разрыв сигнальных линий резисторов номиналом не менее 120 Ом. Необходимо от-
метить, что рекомендации производителя по поводу номинала резистора не вполне однозначны, однако на практике наблюдается как устойчивая работа входов ПЛИС с последовательно включенными резисторами, так и устойчивое считывание 5-воль-товыми устройствами уровня логической единицы с выхода ПЛИС с питанием 3,3 В. Последний вопрос, по впечатлениям автора, в настоящее время является своеобразным камнем преткновения при начале работы с ПЛИС.
3. ПЛИС Spartan обычно используют корпуса QFP с шагом выводов 0,5 мм. Это облегчает изготовление и монтаж печатных плат, поскольку корпуса типа BGA все еще не получили широкого распространения среди российских разработчиков. Корпуса QFP доступны для всех устройств Spartan-II, для ПЛИС Spartan-IIE до 300 тыс. вентилей, а также для ПЛИС Spartan-3 до 400 тыс. и ПЛИС Spartan-3E до 500 тыс. вентилей включительно. Необходимо подчеркнуть, что два последних семейства обладают весьма хорошими характеристиками в DSP-задачах.
Производительность
Оценка производительности ПЛИС — сложный и весьма неоднозначный процесс. Ранее автором была сделана попытка дать первое приближение к оценке производительности ПЛИС в различных задачах [1]. Напомним, что в качестве этого приближения было использовано значение рабочей частоты, определяемое на этапе синтеза (Synthesize) проекта.
В качестве тестов производительности предлагаются следующие проекты:
1) 16-разрядный счетчик;
2) модуль «умножение с накоплением»;
3) простое арифметико-логическое устройство.
Spartan-3E
Spartan-3
Spartan-IIE
Spartan-ll
50
Рис. 6. Результаты первого теста
100 150
Частота, МГц
200
250
Эти проекты были реализованы в САПР Xilinx Foundation ISE 7.1i для ПЛИС семейств Spartan-II, Spartan-IIE, Spartan-3 обеих градаций скорости и Spartan-3E (для семейства Spartan-3E пока доступна только одна скорость). В каждом семействе выбирался младший кристалл.
Исходный текст на VHDL для первого теста представлен ниже:
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity test1_c16 is
Port ( clk : in std_logic;
q : inout std_logic_vector(15 downto 0)); end test1_c16;
architecture Behavioral of test1_c16 is begin
process(clk)
begin
if clk'event and clk = '1' then
q <= q + 1;
end if; end process;
end Behavioral;
Данный тест является в большой степени синтетическим. В реальных проектах рабочая частота вряд ли будет определяться быстродействием подобного устройства, однако очень часто именно частоту 16-разрядного счетчика указывают как показатель быстродействия ПЛИС в целом. Данный пример позволяет оценить эффективность локальных связей и цепей быстрого переноса, которые используются при организации многоразрядных счетчиков. Результаты, полученные после синтеза, представлены на рис. 6.
Результаты этого теста сохраняют общую тенденцию увеличения тактовой частоты проектов при переходе к более современному семейству ПЛИС. Рост частоты практически линеен, внутри каждого семейства наблюдается вполне ощутимое повышение производительности при переходе к другой градации скорости. Интересно снижение частоты для семейства враГап-ЗЕ. Можно предположить, что удешевление этих ПЛИС стало возможным после еще большего упрощения архитектуры, в результате чего пострадала общая производительность.
Производительность ПЛИС в задачах цифровой обработки сигналов показывает второй тест, реализующий операцию «умножение с накоплением».
Компоненты и технологии, № 3'2005
100 Частота, МГц
200
Рис. 7. Результаты второго теста
Spartan-I
Рис. S. Результаты третьего теста
200 300
Частота, МГ ц
500
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity test2_mac16 is
Port ( clk і in std_logic;
a і in std_logic_vector(13 downto 0); b і in std_logic_vector(13 downto 0); sum і inout std_logic_vector(47 downto 0); res і in std_logic); end test2_mac16;
architecture Behavioral of test2_mac16 is begin
process(clk)
begin
if clk'event and clk = '1' then if res = '1'
then sum <= conv_std_logic_vector(0,48); else sum <= sum + a*b; end if; end if; end process;
end Behavioral;
В данном тесте, как и в случае ПЛИС Уи!ех [1], наблюдается практически линейный рост частоты вне зависимости от того, что устройства врайап-П/ПЕ реализовали умножение на базе логических ячеек, а более современные врайап-З/ЗЕ — на базе выделенных умножителей. Очевидно, что на результаты теста существенное влияние оказывает его синтетический характер. Средства САПР оценивают здесь и эффективность распространения сигналов в блоках ввода-вывода (без чего нельзя получить завершенный проект для анализа), тогда как внутренние частоты умножителей в враГап-З/ЗЕ существенно выше показанных на рис. 7. Конкретно они составляют 200 МГц для враГап-З и 266 МГц для врайап-ЗЕ, но только в том случае, если нет необходимости выводить результаты за пределы матрицы логических ячеек.
Третий тест реализует арифметико-логическое устройство с минимальным набором операций, задаваемых кодом стй.
library IEEE;
use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity alu is
Port ( clk : in std_logic;
a : in std_logic_vector(15 downto 0); b : in std_logic_vector(15 downto 0); cmd : in std_logic_vector(7 downto 0); result : out std_logic_vector(15 downto 0));
end alu;
architecture Behavioral of alu is
begin
process(clk)
begin
if clk'event and clk = '1' then case conv_integer(cmd) is when 0 => result <= a + b;
when 1 => result <= a — b;
when 2 => result <= a and b;
when 3 => result <= a or b;
when 4 => result <= a xor b;
when 5 => result <= a(14 downto 0) & '0';
when 6 => result <= '0' & a(15 downto 1);
when others => null; end case; end if; end process;
end Behavioral;
Картина этого теста в целом такая же. Можно заметить, правда, что Spartan-3E занимает уже второе место и практически не отстает от наиболее производительного Spartan-3. Это в целом подтверждает предположение о том, что ресурсы логических ячеек новейшего семейства ПЛИС оказались существенно урезаны. Задача же реализации элементарных арифметико-логических функций является весьма типичной.
Применение
Исходя из приведенных материалов, а особенно из упоминания о беспрецедентно низкой цене новейшего семейства FPGA, которое должно попасть на рынок в ближайшее время, достаточно актуальным становится вопрос о сферах применения low-end ПЛИС. Это относится как к новым разработкам, где ПЛИС ранее не применялись, так и к пересмотру позиций в отношении использования и роли ПЛИС в уже существующих проектах. С учетом характеристик семейств Spartan-3/3E можно сказать, что в целом эти микросхемы позволяют получить вычислитель с хорошей производительностью в задачах цифровой фильтрации, спектрального анализа и т. п., фактически привнося в проект возможности существенно более дорогих ПЛИС Virtex-II и выше по весьма низкой цене. Если не требуется чрезвычайно высокая производительность, возможностей ПЛИС Spartan-3/3E оказывается вполне достаточно для реализации довольно широкого круга задач.
Несмотря на все более и более проявляющуюся ориентированность ПЛИС (даже low-end) на задачи цифровой обработки сигналов,
не стоит забывать и о возможности их использования в качестве замены рассыпной логике и несложным интерфейсным устройствам. ПЛИС FPGA, работая в составе микропроцессорной системы, вполне может реализовать недостающие интерфейсы, регистры, мультиплексоры, очереди и буферы и множество других цифровых узлов. Недорогие ПЛИС Spartan, выполненные в удобных пластиковых корпусах и требующие относительно небольшого объема конфигурационных данных для загрузки, хорошо подходят для этой цели.
Начало работы
Для разработчиков, желающих освоить ПЛИС Xilinx, будет интересно узнать, что серия Spartan (особенно весьма дешевые устройства последних семейств) позволяет в довольно короткие сроки и с минимальными затратами ресурсов начать проектирование цифровых систем на базе ПЛИС FPGA. Для работы требуется собственно ПЛИС (рекомендуется использовать Spartan-3 как наиболее дешевый вариант, или Spartan-II как допускающий простое сопряжение с 5-вольтовым окружением), а также программатор и одна из версий САПР. САПР Webpack распространяется фирмой Xilinx бесплатно и доступен для загрузки с сайта www.xilinx.ru. Версия Webpack 7.1, поддерживающая самое современное семейство Spartan-3E, имеет объем более 300 Мбайт, поэтому имеет смысл рассмотреть возможность получения диска с дистрибутивом в офисе InlineGroup. Программатор для подключения к параллельному порту ПК может быть приобретен или собран на базе двух микросхем мелкой логики ТТЛ. ММ
Литература
1. Тарасов И.. Эволюция ПЛИС серии Virtex // Компоненты и технологии. 2005. № 1.
2. Кузелин М. О., Кнышев Д. А., Зотов В. Ю. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия — Телеком. 2004.
3. Xilinx Inc. The Programmable Logic Data Book.
1999.
4. Xilinx Inc. The Programmable Logic Data Book.
2000.
5. Тарасов И. Е. Разработка цифровых устройств на основе ПЛИС Xilinx с применением языка VHDL. М.: Горячая линия — Телеком. 2005.